最近调试程序时候遇到很多题目开启了PIE保护

加上大部分将符号表删除,这对于使用GDB来下断点来说比较难以定位,以下将几种常见的做法总结。

查看ELF基址

稍微复杂的方法是查看程序运行时ELF基址,然后与获取的偏移地址相加,有两种方式可以查看一种使用pamp来查看进程的地址段及其权限,另一种方法为查看生成的动态链接文件。

pmap

在GDB调试程序时先执行run命令

然后使用ps -A查看进程的PID

使用pmap PID

第一行即为ELF基址

查看动态链接文件

这种方式与pmap方式相似,在找出进程PID后,查看/proc//map_files/目录,第一个文件名称即为ELF基址

b *$rebase(addr)

pwngdb插件提供了rebase命令可以快速定位偏移地址,使用方法为b *$rebase(偏移地址)