温馨提示×

Linux反汇编指令在哪里

小樊
60
2026-08-31 05:27:35
栏目: 智能运维

Linux 下,“反汇编指令”通常指 反汇编(disassemble)一个可执行文件或一段机器码,一般不是单一命令,而是 工具+指令。下面按常见场景给你一个清晰说明。


一、最常用的反汇编工具

1️⃣ objdump(最常用,系统自带)

几乎所有 Linux 发行版都自带。

objdump -d 可执行文件

示例:

objdump -d ./a.out

常见参数:

objdump -M intel -d ./a.out   # Intel 语法(默认是 AT&T)
objdump -S ./a.out            # 源码 + 汇编混合

✅ 适合:ELF 可执行文件、.o、共享库


2️⃣ gdb(调试时反汇编)

用于运行时反汇编。

gdb ./a.out

进入后:

disassemble main
disassemble 0x4005f0

带机器码:

disassemble /r main

设置 Intel 语法:

set disassembly-flavor intel

✅ 适合:调试、函数级反汇编


3️⃣ ndisasm(专门用于 x86 裸二进制)

常用于 shellcode、bootloader。

ndisasm -b 32 file.bin
ndisasm -b 64 file.bin

⚠️ 不适合完整 ELF 文件


4️⃣ radare2(逆向工程神器)

功能极强,但学习曲线陡。

r2 ./a.out

进入后:

pd 20        # 反汇编 20 条指令
pdf @ main   # 反汇编 main 函数

✅ 适合:逆向分析、CTF


5️⃣ capstone / pycdas(Capstone 引擎)

不是系统自带,需要安装。

pycdas ./a.out

二、反汇编“指令”在哪里?

如果你问的是 反汇编指令本身在哪执行,答案是:

场景 位置
ELF 程序 .text
内存中 代码段(code section)
调试器 gdb / radare2
文件分析 objdump

查看代码段位置:

readelf -S ./a.out

三、快速对照表

工具 是否默认安装 适合
objdump 静态分析
gdb 调试
ndisasm 裸二进制
radare2 逆向
capstone 高级分析

四、推荐入门组合 ✅

objdump -M intel -d ./a.out

或调试时:

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

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

  • 你是 刚学汇编 / 逆向 / 安全 / 内核 / CTF
  • 你想反汇编 ELF / 二进制 / 内核模块 / shellcode

我可以给你更精确的命令和示例。

0