在 CentOS(本质就是 Linux)上做“反汇编”,常用工具和指令如下,按场景给你列一下:
适合反汇编可执行文件 / .o 文件
objdump -d 程序名
常见用法:
# 反汇编整个可执行文件
objdump -d ./a.out
# 反汇编并看源代码(如果有 -g 编译)
objdump -S ./a.out
# 反汇编某个 section
objdump -d -j .text ./a.out
# Intel 语法(默认是 AT&T)
objdump -M intel -d ./a.out
先安装 gdb(一般都有):
yum install -y gdb
使用:
gdb ./a.out
进入 gdb 后:
disassemble # 反汇编当前函数
disassemble main # 反汇编 main
disassemble 0x400500, 0x400600
换 Intel 语法:
set disassembly-flavor intel
适合shellcode / boot / 二进制片段
yum install -y nasm
ndisasm -b 32 file.bin
ndisasm -b 64 file.bin
yum install -y radare2
使用:
r2 ./a.out
[0x000000]> aaa
[0x000000]> pdf @ main
编译时加:
gcc -g -O0 -o test test.c
objdump -S test
objdump -dgdb + disassemblendisasmradare2如果你能说下你是:
我可以给你更精确的命令。