温馨提示×

CentOS反汇编指令如何查

小樊
38
2026-07-09 02:11:24
栏目: 智能运维

在 CentOS 上进行反汇编(disassembly),常用的是 binutils 里的 objdumpgdb,以及更高级的 radare2IDAGhidra 等。下面按常用程度给你一个从入门到进阶的总结。


一、最常用:objdump(推荐)

1️⃣ 查看可执行文件/目标文件的反汇编

objdump -d test

只反汇编 可执行代码段,最常用。


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

objdump -S test

前提:编译时加了 -g

gcc -g -o test test.c

3️⃣ 显示所有段(包括数据段)

objdump -D test

⚠️ 会反汇编数据段,可能看到很多乱码指令。


4️⃣ 指定架构(如 x86_64 / ARM)

objdump -M intel -d test
  • -M intel:Intel 语法(默认是 AT&T)
  • -b elf:指定文件格式
  • -m i386:x86-64:指定架构

5️⃣ 查看符号表

objdump -t test

nm test

二、用 GDB 动态反汇编(非常常用)

1️⃣ 启动 GDB

gdb ./test

2️⃣ 反汇编函数

disas main

disas 0x401000

3️⃣ 显示当前执行的汇编

disas

4️⃣ Intel 语法

set disassembly-flavor intel
disas main

5️⃣ 单步汇编级调试

si    # 汇编级单步
ni    # 汇编级单步(不进入函数)
info registers

三、快速查看二进制信息(辅助)

file

file test

readelf

readelf -h test        # ELF 头
readelf -S test        # 段表
readelf -s test        # 符号表

四、进阶工具(反编译 / 逆向)

1️⃣ radare2(强烈推荐)

yum install radare2
r2 ./test

常用命令:

aaa          # 分析
pd 20        # 反汇编 20 条
pdf          # 反汇编函数
s main
pd

2️⃣ ndisasm(简单反汇编)

yum install nasm
ndisasm -b 64 test

适合 裸二进制文件


3️⃣ objdump vs gdb vs radare2 对比

工具 适合场景
objdump 静态分析
gdb 动态调试
radare2 逆向分析
ndisasm 裸 bin

五、CentOS 安装相关工具

yum install binutils gdb nasm readelf

或(EPEL):

yum install epel-release
yum install radare2

六、常见示例合集

反汇编 main 函数(Intel 语法)

objdump -M intel -d test | grep -A 30 "<main>:"

GDB 中查看 main 汇编

gdb ./test
(gdb) set disassembly-flavor intel
(gdb) disas main

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

  • 32 位还是 64 位
  • 目标文件类型(ELF / .o / 裸 bin)
  • 是学习 / 调试 / 逆向 / 漏洞分析

我可以给你更精确的命令和实战示例

0