温馨提示×

反汇编CentOS二进制方法

小樊
38
2026-08-04 08:16:51
栏目: 智能运维

CentOS 上反汇编(disassemble)二进制文件,常用工具和方法如下,按从简单到专业的顺序说明。


一、必备工具安装

1️⃣ 安装常用反汇编工具

sudo yum install -y binutils gdb nasm radare2
  • objdump:来自 binutils(最常用)
  • gdb:调试 + 反汇编
  • radare2:专业逆向工具
  • nasm:汇编器(用于对比学习)

二、使用 objdump(最常用 ✅)

1️⃣ 查看反汇编代码

objdump -d ./binary

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

objdump -D ./binary

3️⃣ 显示源码 + 汇编(如果有调试信息)

objdump -S ./binary

4️⃣ 指定架构(如 x86_64)

objdump -M intel -d ./binary

-M intel:使用 Intel 语法(默认是 AT&T)


三、使用 gdb(调试 + 反汇编)

1️⃣ 启动 gdb

gdb ./binary

2️⃣ 反汇编函数

disas main

3️⃣ 反汇编当前指令

disas

4️⃣ Intel 语法

set disassembly-flavor intel
disas main

5️⃣ 查看汇编 + 寄存器

layout asm
layout regs

四、使用 radare2(专业逆向)

1️⃣ 打开二进制

r2 ./binary

2️⃣ 分析

aaa

3️⃣ 查看函数列表

afl

4️⃣ 反汇编 main 函数

pdf @ main

5️⃣ 可视化反汇编

V

五、查看二进制基本信息

1️⃣ 查看文件类型

file ./binary

2️⃣ 查看段信息

readelf -S ./binary

3️⃣ 查看符号表

nm ./binary

六、常见示例

示例:反汇编 ELF 可执行文件

objdump -M intel -d ./a.out

示例:反汇编共享库

objdump -d /lib64/libc.so.6

七、注意事项 ⚠️

  1. stripped 二进制

    • 没有符号表,函数名不可见
    • 可用 radare2IDA 静态分析
  2. 32 位 vs 64 位

    file ./binary
    
  3. 反汇编 ≠ 源码

    • 只能看到汇编,不能还原完整 C 代码

八、推荐组合(实战)

场景 工具
快速查看 objdump
调试分析 gdb
逆向工程 radare2
商业分析 IDA Pro / Ghidra

如果你愿意,我可以:

  • ✅ 帮你 反汇编某个具体二进制
  • ✅ 逐行 解释汇编代码
  • ✅ 教你 从反汇编还原 C 逻辑
  • ✅ 专门讲 CentOS 7 / 8 的差异

只要把 二进制类型或目标 发我即可。

0