温馨提示×

CentOS反汇编指令如何设置

小樊
45
2026-07-09 01:58:32
栏目: 智能运维

在 CentOS 上进行反汇编(disassembly)通常依赖 binutils、gdb、objdump、radare2、IDA、Ghidra 等工具。下面按常用场景给你一个完整说明。


一、CentOS 常见反汇编工具

1️⃣ objdump(最常用)

来自 binutils,CentOS 默认一般已安装。

objdump -d test

常用参数

objdump -d test              # 反汇编可执行段
objdump -D test              # 反汇编所有段
objdump -M intel test        # Intel 语法(默认 AT&T)
objdump -S test              # 源码+汇编(需 -g 编译)

✅ 推荐:

objdump -d -M intel ./a.out

2️⃣ gdb(调试 + 反汇编)

适合动态分析。

gdb ./test

GDB 反汇编命令

disassemble main
disassemble 0x4005f6
disassemble /r main     # 显示机器码

设置 Intel 语法

set disassembly-flavor intel

永久生效:

echo "set disassembly-flavor intel" >> ~/.gdbinit

3️⃣ ndisasm(x86 专用)

来自 nasm

yum install nasm
ndisasm -b 32 test.bin
ndisasm -b 64 test.bin

适合裸二进制文件。


4️⃣ radare2(专业逆向工具)

功能强大,支持多种架构。

yum install radare2
r2 ./test

常用命令:

aaa          # 自动分析
pd 20        # 反汇编 20 条
pdf          # 反汇编函数

二、CentOS 安装反汇编工具

1️⃣ 检查是否已安装

which objdump gdb ndisasm r2

2️⃣ 安装常用工具

yum install -y binutils gdb nasm radare2

如果是 CentOS 8 / Stream

dnf install -y binutils gdb nasm radare2

三、编译程序(便于反汇编)

1️⃣ 编译示例

gcc -g -o test test.c

2️⃣ 去掉符号表(真实程序常见)

strip test

反汇编仍然可用:

objdump -d test

四、反汇编示例

示例 C 程序

int main() {
    return 1;
}

编译

gcc -g -o test test.c

反汇编

objdump -d -M intel test

五、常见架构设置

x86 / x64

objdump -d -M intel test

ARM(交叉编译环境)

objdump -d -M arm test

六、常见问题

❓ CentOS 没有 objdump?

yum install binutils

❓ AT&T 语法看不懂?

objdump -M intel

❓ 反汇编看不到 main?

objdump -d test | grep -A 20 "<main>:"

七、推荐组合(实战)

静态分析

  • objdump + readelf + strings

动态分析

  • gdb + peda / pwndbg

逆向工程

  • radare2 / Ghidra / IDA

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

  • ✅ CentOS 版本(6 / 7 / 8 / Stream)
  • ✅ 分析目标(ELF / 二进制 / 内核 / 驱动)
  • ✅ 是否用于 CTF / 漏洞分析 / 内核调试

我可以给你更精确的配置方案。

0