可以的,GDB(GNU Debugger)能够对 Linux 下的程序进行反汇编,无论是否有源码、是否带调试信息都可以。
下面从几个方面说明:
GDB 本身集成了反汇编功能,常见用途包括:
disassemble main
disassemble
disassemble 0x400500, 0x400600
disassemble /m main
-g)gcc -g test.c -o test
gdb ./test
nm、objdump 辅助)gdb ./a.out
stepi # 单步一条汇编指令
nexti # 类似 next,但不进入函数
info registers
print $rax
| 工具 | 特点 |
|---|---|
| GDB | 动态反汇编,可结合运行时状态 |
| objdump | 静态反汇编,适合整体分析 |
示例:
objdump -d ./a.out
可结合:
layout asm(TUI 汇编视图)pwndbg / gef(GDB 插件,反汇编更友好)layout asm
GDB 完全可以对 Linux 程序进行反汇编,而且是动态分析中最核心的工具之一。
如果你愿意,我可以:
你更想看哪一种?