温馨提示×

什么是linux反汇编工具

小樊
47
2026-10-18 03:37:47
栏目: 智能运维

Linux 反汇编工具指的是在 Linux 系统上,用于将机器码(二进制指令)转换回汇编语言,或用于分析、调试、逆向工程程序的软件工具。

下面从概念、常见工具、使用场景三个方面说明。


一、什么是反汇编

  • 汇编:汇编语言 → 机器码(编译)
  • 反汇编:机器码 → 汇编语言(逆向)
  • 反汇编不能还原源码,只能得到汇编级表示

常见于:

  • 分析未知程序
  • 漏洞研究
  • 恶意代码分析
  • 理解程序运行机制

二、常见 Linux 反汇编工具

1️⃣ objdump(最常用)

系统自带,适合快速查看汇编

objdump -d ./a.out

常用选项:

  • -d:反汇编可执行段
  • -S:源码+汇编(需 -g 编译)
  • -M intel:Intel 语法

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

动态调试时反汇编

gdb ./a.out
(gdb) disassemble main

适合:

  • 单步执行
  • 查看寄存器
  • 动态分析

3️⃣ nm / readelf

查看符号和 ELF 结构

nm ./a.out
readelf -h ./a.out

不是反汇编,但是逆向分析基础工具


4️⃣ radare2(r2)

强大命令行逆向框架

r2 ./a.out
[0x000000]> aaa
[0x000000]> pdf

特点:

  • 静态 + 动态
  • 脚本化
  • 免费开源

5️⃣ Ghidra(GUI)

NSA 开源逆向工具

  • Java 编写
  • 支持反编译为 C 伪代码
  • Linux / Windows / macOS

6️⃣ IDA Pro(商业)

工业级逆向工具

  • 最强反汇编/反编译
  • Linux 有版本
  • 收费(有免费版)

7️⃣ ndisasm

简单 x86 反汇编器

ndisasm -b 64 file.bin

三、典型使用场景

  • 分析没有源码的程序
  • CTF 逆向题
  • 漏洞利用研究
  • 学习编译器如何生成汇编

四、一句话总结

Linux 反汇编工具 = 把二进制程序“翻译”成汇编语言,用于分析、调试和逆向工程的一套工具链。

如果你愿意,我可以:

  • 给你一个实际反汇编示例
  • 对比 AT&T vs Intel 语法
  • 教你用 gdb + objdump 入门逆向

你想从哪一步开始?

0 踩