温馨提示×

如何用od反汇编linux文件

小樊
74
2026-09-03 09:18:54
栏目: 智能运维

下面以 Linux 下使用 objdump(OD 通常指 objdump,不是 Windows 的 OllyDbg) 反汇编 ELF 文件为例,系统说明常见用法。如果你说的是 OllyDbg 在 Linux 上,那它原生不支持 Linux,需要用 Wine 或改用 GDB / radare2 / GHIDRA。


一、准备环境

# 安装 binutils(包含 objdump)
sudo apt install binutils

确认文件类型:

file ./test
# test: ELF 64-bit LSB executable, x86-64, ...

二、最常用反汇编命令

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

objdump -d ./test

2️⃣ 反汇编并显示源码(如有调试信息)

objdump -S ./test

编译时需加 -g:

gcc -g -o test test.c

三、只看某一段(如 main)

方法 1:反汇编指定函数

objdump -d ./test | grep -A 30 "<main>:"

方法 2:使用符号 + 地址

objdump -d --start-address=0x401000 --stop-address=0x401050 ./test

四、查看节区与结构

查看所有节

objdump -h ./test

查看符号表

objdump -t ./test

查看重定位信息

objdump -r ./test

五、Intel 语法(更接近 Windows OD)

默认是 AT&T 语法,可切换:

objdump -d -M intel ./test

六、结合反汇编与十六进制

objdump -D -M intel ./test

或:

objdump -s -j .text ./test

七、进阶:动态调试替代 OD

Linux 下常用:

  • gdb
  • radare2 / rizin
  • lldb

示例(GDB):

gdb ./test
(gdb) disassemble main

八、总结常用组合

# 最实用的一条
objdump -d -M intel -S ./test

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

  • 是 x86 / x64 / ARM?
  • 是否 有源码 / 无源码 / 加壳?
  • 想做 逆向分析 / 漏洞研究 / CTF?

我可以直接给你针对场景的命令或分析思路。

0 踩