工具介绍:
GDB:调试工具,必备武器;
objdump:对代码快速反编译的简洁方法;
objdump -D <elf-object> //查看所有ELF文件所有节的数据或代码
objdump -d <elf-object> //只查看程序
objdump -tT <elf-object> //查看elf文件中所有符号
strace: 系统调用跟踪,可用来收集运行时系统调用相关的信息;
strace /bin/ls -o ls.out //输出ls命令的系统调用
strace -p <pid> -o deamon.out //将strace命令附加到某个进程上
readelf命令: readelf -S <object> //查询节头表
readelf -l <object> //查询程序头表
readelf -s <object> // 查询符号表
readelf -d <object> //查询动态段
readelf -e <object> //查询ELF文件头数据
ERESI---ELF反编译系统接口
重要的文件:
/proc/<pid>/maps: 进程镜像的布局; /proc/kcore:linux 内核动态核心文件; /boot/System.map:包含内核的所有符号;
/proc/kallsyms:kallsyms是内核所属的/proc的入口并且可以动态更新;
/proc/iomem:非常有用的proc入口,跟/proc/<pid>/maps类似,但是是跟系统相关的。