在 Linux 下“找反汇编指令”通常分几种情况:
查看反汇编、定位反汇编命令、学习反汇编用法。下面按常见需求给你一个清晰清单。
objdump(最常用)objdump -d test
反汇编整个可执行文件(或 .o、.so)。
常用参数:
objdump -d test # 反汇编可执行代码段
objdump -S test # 反汇编 + 源码对照
objdump -M intel test # Intel 语法(默认 AT&T)
objdump -s -j .text test # 查看 .text 段原始数据
✅ 适合:ELF 可执行文件、库、目标文件
gdb(调试时反汇编)gdb ./test
(gdb) disassemble main
常用:
disassemble # 当前函数
disassemble main # 指定函数
disassemble 0x401000,0x401100
切换 Intel 语法:
set disassembly-flavor intel
✅ 适合:动态调试、跟踪执行
ndisasm(针对裸二进制)ndisasm -b 32 test.bin
参数:
ndisasm -b 64 test.bin
✅ 适合:Shellcode、boot、裸机代码
x64dbg / radare2 / Ghidra(进阶)| 工具 | 用途 |
|---|---|
| radare2 | 命令行逆向神器 |
| Ghidra | 反汇编 + 伪代码 |
| IDA | 商业逆向工具 |
objdump -d test | less
搜索:
call
jmp
ret
mov
push
pop
objdump -d test | grep -A 20 "<main>:"
或 GDB:
gdb ./test
disassemble main
objdump -d test | grep 401125
或:
gdb ./test
x/10i 0x401125
readelf -h test
看 Entry point address
| 语法 | 示例 |
|---|---|
| AT&T | mov %eax, %ebx |
| Intel | mov ebx, eax |
推荐用 Intel:
objdump -M intel -d test
gcc test.c -o test
objdump -M intel -d test | less
推荐学习顺序:
objdump -dcall / ret / jmppush rbp, mov rbp, rspsyscall如果你愿意,可以告诉我:
我可以直接给你“手把手反汇编示例”。