温馨提示×

centos反汇编指令区别在哪

小樊
48
2026-09-09 05:02:43
栏目: 智能运维

在 CentOS(以及大多数 Linux 发行版)里,“反汇编”通常不是某一条专属命令,而是用不同的工具把二进制文件翻译成汇编代码。常见工具包括 objdumpgdbndisasmradare2 等。

下面重点说 CentOS 下最常见的反汇编指令/工具区别,尤其是 objdump 的各种参数区别


一、最常用:objdump(CentOS 自带)

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

objdump -d test
  • -d:disassemble,只反汇编可执行代码段
  • 输出:地址 + 机器码 + 汇编指令

2️⃣ 反汇编所有段(包括数据段)

objdump -D test
  • -D:Disassemble all sections
  • 会把 .data.rodata 也当代码拆
  • 常用于分析 shellcode、混淆程序

✅ 区别:

参数 范围
-d 仅代码段
-D 所有段

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

objdump -S test
  • -S:Source + Assembly
  • 要求编译时加 -g
  • 非常适合学习 / 调试

4️⃣ 指定架构反汇编

objdump -m i386 -b binary -D file.bin
  • -m:architecture(i386 / x86-64 / arm)
  • -b binary:把文件当纯二进制

常用于:

  • bootloader
  • shellcode
  • 固件

5️⃣ Intel 语法(更直观)

objdump -M intel -d test
  • 默认是 AT&T 语法
  • Intel 语法更接近 Windows 习惯

二、GDB 中的反汇编(动态调试)

当前函数反汇编

disassemble

指定函数

disassemble main

指定地址范围

disassemble 0x400000, 0x400100

✅ 特点:

  • 运行时反汇编
  • 可结合寄存器、内存
  • 适合动态分析

三、ndisasm(纯二进制反汇编)

ndisasm -b 32 file.bin
  • 不依赖 ELF 格式
  • 适合 shellcode
  • CentOS 需安装 nasm

四、radare2(高级逆向)

r2 -d ./test
pdf
  • 专业逆向工具
  • 支持流程图、交叉引用

五、CentOS 下的核心区别总结

工具 特点 使用场景
objdump -d 静态、ELF 分析程序
objdump -D 全段 shellcode
objdump -S 源码对照 学习
gdb disas 动态 调试
ndisasm 二进制 裸代码
radare2 逆向 安全

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

  • 你是 学汇编 / 逆向 / 漏洞 / 编译优化
  • ELF 程序、内核、shellcode

我可以给你更针对性的命令示例。

0