温馨提示×

怎么输出CentOS反汇编结果

小樊
37
2026-08-30 10:42:06
栏目: 智能运维

在CentOS上输出(查看)反汇编结果,通常取决于你想反汇编的是可执行文件/库,还是正在运行的程序/内核。下面按常见场景给你一个完整说明。


一、使用 objdump 反汇编 ELF 文件(最常用)

1️⃣ 安装 binutils(一般已安装)

yum install -y binutils

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

objdump -d /bin/ls

常见参数:

objdump -d -M intel a.out      # Intel 语法(默认 AT&T)
objdump -S a.out               # 反汇编 + 源码对照
objdump -s -j .text a.out      # 查看 .text 段内容

3️⃣ 只反汇编指定函数

objdump -d a.out | grep -A 20 "<main>:"

二、使用 gdb 实时反汇编(调试、学习常用)

1️⃣ 安装 gdb

yum install -y gdb

2️⃣ 启动 gdb

gdb ./a.out

3️⃣ 常用反汇编命令

disassemble main
disassemble 0x4005f0
disassemble /m main     # 反汇编 + 源码

切换 Intel 语法:

set disassembly-flavor intel
disassemble main

三、反汇编运行的程序(运行时)

1️⃣ attach 到进程

ps aux | grep app
gdb -p PID

2️⃣ 反汇编当前函数

disassemble

四、使用 radare2(专业逆向工具)

1️⃣ 安装

yum install -y radare2

2️⃣ 使用

r2 /bin/ls

常用命令:

aaa          # 自动分析
pdf @ main   # 反汇编 main
pd 20        # 反汇编 20 条指令

五、反汇编内核模块(进阶)

objdump -d your_module.ko

或:

nm your_module.ko

六、对比总结

工具 场景 推荐
objdump 静态分析 ELF ⭐⭐⭐⭐
gdb 调试 + 反汇编 ⭐⭐⭐⭐⭐
radare2 逆向工程 ⭐⭐⭐⭐
nm 查看符号 ⭐⭐

七、示例:完整反汇编 C 程序

// test.c
#include <stdio.h>
int main() {
    puts("hello");
}
gcc -g -O0 test.c -o test
objdump -d -M intel test

如果你能具体说明:

  • 反汇编可执行文件 / 库 / 内核?
  • 是否用于漏洞分析 / 逆向 / 学习汇编?
  • 是否需要 Intel 语法?

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

0