0x04_工具准备
-
gdb
- 一款UNIX及UNIX-like下的调试工具。
gdb <文件名>进入调试,输入disassemble main查看指定函数的反汇编机器代码。set disassembly-flavor intel转换为Intel风格的汇编break *main:在main函数设置断点run:运行程序info registers:查看寄存器信息si:执行一条指令(step instruction),若该指令有函数调用则进入该函数,相当于step into(单步跟踪进入)ni:执行一条指令(next instruction),若该指令有函数则直接执行该函数,相当于step over(单步跟踪)
-
常用工具命令
hexdump <filename>: 将二进制文件转换成十六进制查看,-C以三列格式展示file <filename>:查看文件信息,file *查看当前目录下所有文件的信息strings <filename>:扫描文件,打印可打印的字符序列objdump <filename>:反汇编目标文件,-d反汇编文件中的需要执行指令的那些section,-x显示全部headers信息strace <filename>:用于跟踪程序执行时进程系统调用(system call)和所接收的信号ltrace <filename>:与strace类似,但跟踪库函数- radare2:一个开源的逆向工程和二进制分析框架。
- 安装:
git clone https://github.com/radareorg/radare2.git,进入安装目录输入./sys/install.sh - 使用:radare教程
- 一篇使用笔记:radare2逆向笔记
- 常用命令:
aaaa:分析全部二进制代码,radare2会自动为我们划分各个程序并进行命名afl:列出所有的方程信息,包括内存地址,size,bbs,名称pdf:打印出反汇编后的汇编语言代码s <address>:跳转到指定地址。s sym.main跳转到main函数,sym.main代表函数符号afvn <var1> <var2>:将变量var1重命名为var2dc:继续执行先前的程序,直到到达下一个断点db <address>:设置断点VV:可视化界面(控制流图)V!:可视化界面。【可视化界面下键入:可以进入命令模式,然后键入Ctrl+C或直接回车可以重回可视化界面】
- 安装:
