温馨提示×

CentOS反汇编指令如何选

小樊
41
2026-07-09 02:15:31
栏目: 智能运维

在 CentOS(或其他 Linux 发行版)里做反汇编(disassembly),通常取决于你要分析的对象(可执行文件、内核、固件、内存等)以及你使用的工具链。下面给你一个实用选型指南 + 常见场景示例


一、先明确你要反汇编什么

分析对象 推荐工具
ELF 可执行文件 / 共享库 objdumpgdb
二进制文件(无符号) objdumpradare2r2
正在运行的进程 gdb
内核 / 驱动 objdumpcrashgdb vmlinux
快速交互式分析 radare2GhidraIDA
脚本化 / 自动化 objdumppyelftools

二、最常用:objdump(必会)

1️⃣ 基本反汇编

objdump -d ./a.out
  • -d:反汇编可执行段
  • 适合 ELF 可执行文件 / .o / .so

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

objdump -S ./a.out

⚠️ 需要编译时加 -g

gcc -g -O0 test.c -o test

3️⃣ 反汇编指定函数

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

4️⃣ 显示符号表(辅助分析)

objdump -t ./a.out

三、用 gdb 反汇编(调试必备)

1️⃣ 启动 gdb

gdb ./a.out

2️⃣ 反汇编当前函数

disassemble

或指定函数:

disassemble main

3️⃣ Intel 语法(更直观)

set disassembly-flavor intel
disassemble main

强烈推荐 Intel 语法


4️⃣ 反汇编指定地址范围

disassemble 0x4005f0,0x400620

四、radare2(进阶 / 逆向神器)

安装

yum install radare2
# 或
dnf install radare2

基本用法

r2 ./a.out

进入后:

aaa        # 自动分析
pdf @ main # 反汇编 main 函数

五、选择哪种指令?一句话总结

只想看汇编

objdump -d ./a.out

调试 + 汇编

gdb ./a.out
disassemble

无符号 / 逆向分析

radare2

内核 / crash 分析

crash vmlinux

六、常见误区

❌ 用 cat 看二进制
❌ 没加 -g 却想看源码
❌ 用 AT&T 语法却看不懂
✅ 明确目标 → 选工具 → 用对应指令


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

  • ✅ 你分析的是 用户程序 / 内核 / 驱动 / 恶意样本
  • ✅ 是 x86 / x64 / ARM
  • ✅ 是否 有符号 / 调试信息

我可以直接给你 最合适的一套命令组合

0