下面以 Linux 下使用 objdump(OD 通常指 objdump,不是 Windows 的 OllyDbg) 反汇编 ELF 文件为例,系统说明常见用法。如果你说的是 OllyDbg 在 Linux 上,那它原生不支持 Linux,需要用 Wine 或改用 GDB / radare2 / GHIDRA。
# 安装 binutils(包含 objdump)
sudo apt install binutils
确认文件类型:
file ./test
# test: ELF 64-bit LSB executable, x86-64, ...
objdump -d ./test
objdump -S ./test
编译时需加
-g:
gcc -g -o test test.c
objdump -d ./test | grep -A 30 "<main>:"
objdump -d --start-address=0x401000 --stop-address=0x401050 ./test
objdump -h ./test
objdump -t ./test
objdump -r ./test
默认是 AT&T 语法,可切换:
objdump -d -M intel ./test
objdump -D -M intel ./test
或:
objdump -s -j .text ./test
Linux 下常用:
gdbradare2 / rizinlldb示例(GDB):
gdb ./test
(gdb) disassemble main
# 最实用的一条
objdump -d -M intel -S ./test
如果你愿意,可以告诉我:
我可以直接给你针对场景的命令或分析思路。