温馨提示×

linux反汇编指令参数咋用

小樊
54
2026-09-09 11:14:49
栏目: 智能运维

在 Linux 下做反汇编(disassembly),常用工具有 objdump、gdb、radare2、objdump、ndisasm 等。下面按最常用场景给你讲清楚「指令 + 参数怎么用」。


一、objdump(最常用)

1️⃣ 反汇编整个可执行文件

objdump -d test
  • -d:反汇编 .text 段(代码段)

2️⃣ 反汇编指定段

objdump -D test
  • -D:反汇编所有段(包括数据段)

3️⃣ 显示源代码 + 汇编(调试用)

objdump -S test

⚠️ 需要编译时加 -g

gcc -g -o test test.c

4️⃣ Intel 语法(默认是 AT&T)

objdump -d -M intel test

常用参数组合:

objdump -d -M intel -S test

5️⃣ 只反汇编某个函数

objdump -d test | grep -A 20 "<main>:"

二、gdb(动态调试 + 反汇编)

1️⃣ 进入 gdb

gdb ./test

2️⃣ 反汇编当前函数

disassemble

3️⃣ 反汇编指定函数

disassemble main

4️⃣ Intel 语法

set disassembly-flavor intel
disassemble main

5️⃣ 反汇编指定地址范围

disassemble 0x400500, 0x400600

三、ndisasm(裸二进制)

适合 shellcode / boot / 裸机

ndisasm -b 32 shellcode.bin
  • -b 32:32 位
  • -b 64:64 位

四、radare2(进阶神器)

r2 ./test

进入后:

aa        # 分析
pdf       # 反汇编当前函数
pdf @ main
s main    # 跳到 main

五、常见参数速查表

工具 参数 作用
objdump -d 反汇编代码段
objdump -D 全段反汇编
objdump -S 源码+汇编
objdump -M intel Intel 语法
gdb disassemble 反汇编
gdb set disassembly-flavor intel Intel 语法
ndisasm -b 64 64 位二进制

六、AT&T vs Intel 语法区别(速记)

AT&T:

mov %rax, %rbx

Intel:

mov rbx, rax

如果你愿意,可以告诉我:

  • ✅ 你是 学习逆向 / 漏洞 / 编译原理 / CTF
  • ✅ 是 32 位还是 64 位
  • ✅ 用的是 Ubuntu / CentOS / Arch

我可以直接给你针对性命令模板

0