温馨提示×

linux反汇编用啥指令合适

小樊
47
2026-09-06 13:21:52
栏目: 智能运维

在 Linux 下进行反汇编(把二进制/可执行文件转成汇编代码),常用工具和指令如下,按场景给你推荐:


一、最常用、最推荐:objdump

几乎必会

objdump -d ./a.out

常用参数:

objdump -d -M intel ./a.out     # Intel 语法(更像 Windows)
objdump -d -M att   ./a.out     # AT&T 语法(Linux 默认)
objdump -d -S ./a.out           # 反汇编 + 源代码(需 -g 编译)
objdump -d -M intel -j .text ./a.out  # 只反汇编 .text 段

适合:

  • ELF 可执行文件
  • .o 目标文件
  • 内核模块

二、动态调试反汇编:gdb

调试时实时看汇编

gdb ./a.out

进入后:

disassemble main
disassemble
disassemble /m main     # 汇编 + 源码

设置 Intel 语法:

set disassembly-flavor intel

适合:

  • 运行时反汇编
  • 函数级分析
  • 调试 bug / 漏洞

三、专业逆向工具:radare2 / ghidra

逆向工程首选

radare2

r2 ./a.out
[0x000000]> aaa
[0x000000]> pdf @ main

优势

  • 交互式
  • 支持 shellcode、裸二进制
  • 强大的分析能力

四、裸二进制 / Shellcode:ndisasm

无 ELF 结构时

ndisasm -b 32 shellcode.bin
ndisasm -b 64 shellcode.bin

五、快速查看符号 & 段:readelf

虽然不是反汇编,但常配合用:

readelf -h ./a.out      # 文件头
readelf -S ./a.out      # 段表
readelf -s ./a.out      # 符号表

六、快速选择建议

场景 推荐
静态看汇编 objdump -d -M intel
调试看汇编 gdb + disassemble
逆向分析 radare2 / ghidra
shellcode ndisasm
内核 / 模块 objdump

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

  • 用户态程序 / 内核 / 嵌入式 / malware
  • 想用 命令行还是 GUI
  • x86 还是 ARM

我可以给你更精确的一套命令。

0