温馨提示×

如何快速反汇编linux代码

小樊
33
2026-10-20 23:45:00
栏目: 智能运维

在 Linux 下“快速反汇编”通常指把可执行文件 / 动态库 / 内核模块 / 一段内存或指令反汇编成汇编代码。下面按常见场景给你一套最实用的方法。


一、最常用:用 objdump(首选)

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

objdump -d ./a.out

2️⃣ 反汇编并混源代码(如果有调试信息)

objdump -S ./a.out

3️⃣ 只反汇编某个函数

objdump -d ./a.out | grep -A 30 '<main>:'

或:

objdump -d --start-address=0x401000 --stop-address=0x401100 ./a.out

二、最快交互式:gdb

1️⃣ 反汇编当前函数

disassemble

2️⃣ 反汇编指定函数

disassemble main

3️⃣ 反汇编指定地址

disassemble 0x401000, 0x401100

4️⃣ 带源码反汇编(推荐)

layout split

或

disassemble /m main

三、AT&T vs Intel 语法(很重要)

objdump 使用 Intel 语法

objdump -d -M intel ./a.out

gdb 切换 Intel 语法

set disassembly-flavor intel

四、反汇编动态库 (.so)

objdump -d -M intel libxxx.so

查看导出函数:

nm -D libxxx.so

五、反汇编原始二进制 / Shellcode

objdump -b binary -m i386 -M intel -D shellcode.bin

或:

ndisasm -b 32 shellcode.bin

六、内核 / 驱动反汇编

1️⃣ 内核函数

objdump -d vmlinux | grep -A 50 '<sys_open>:'

2️⃣ 内核模块

objdump -d -M intel mydriver.ko

七、进阶工具(更快更专业)

工具 用途
radare2 / rizin 逆向神器
Ghidra 图形化反编译
IDA (Wine) 最强商业工具
capstone 编程级反汇编

示例(rizin):

rizin -c 'pdf @ main' ./a.out

八、推荐“最快组合”

✅ 快速看代码

objdump -d -M intel -S ./a.out

✅ 调试看运行

gdb ./a.out
(gdb) set disassembly-flavor intel
(gdb) disassemble main

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

  • 是 用户态程序 / 内核 / 驱动 / shellcode
  • 是 x86 / x64 / ARM
  • 是想 学习 / 逆向 / 漏洞分析

我可以直接给你最合适的一条命令链。

0 踩