温馨提示×

怎样查看反汇编代码

小樊
44
2026-08-20 05:58:26
栏目: 编程语言

查看反汇编代码的方法取决于你使用的操作系统、开发工具和目标文件类型。下面按常见场景给你一个清晰、实用的说明。


一、使用编译器直接生成反汇编(最常见)

1️⃣ GCC / G++(Linux / macOS / WSL)

从源文件生成反汇编

gcc -S main.c        # 生成汇编文件 main.s

从可执行文件生成反汇编

objdump -d a.out

只查看 main 函数:

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

显示源码 + 汇编(推荐)

objdump -S a.out

编译时需要加 -g

gcc -g -o a.out main.c

2️⃣ MSVC(Windows / Visual Studio)

使用 dumpbin

dumpbin /DISASM test.exe

在 Visual Studio 中查看

  1. 设置断点
  2. 调试运行
  3. 右键 → Go To Disassembly
    调试 → 窗口 → 反汇编

二、使用调试器查看反汇编

1️⃣ GDB(Linux)

gdb ./a.out

常用命令:

disassemble main          # 反汇编 main 函数
disassemble 0x401000       # 指定地址
layout asm                # TUI 汇编视图
info registers            # 查看寄存器

2️⃣ WinDbg(Windows 内核 / 用户态)

uf main

3️⃣ x64dbg / OllyDbg(Windows 逆向常用)

  • 直接拖入 exe
  • CPU 窗口即为反汇编视图
  • 可单步、下断点、查看内存

✅ 非常适合逆向分析


三、查看二进制文件/目标文件

1️⃣ .o / .obj 文件

objdump -d main.o

2️⃣ 裸二进制(Bootloader / 固件)

ndisasm -b 32 boot.bin

四、在线工具(无需本地环境)

✅ 推荐:

  • https://godbolt.org
    可直接看 C/C++ → 汇编
  • https://defuse.ca/online-x86-assembler.htm

五、常见架构对应工具

架构 工具
x86 / x64 objdump, gdb, x64dbg
ARM objdump -b elf32-littlearm -d
MIPS objdump -M mips -d
AArch64 aarch64-linux-gnu-objdump -d

六、实用建议(非常重要)

✅ 反汇编 ≠ 你写的代码
✅ 开启优化后(-O2)结构变化很大
✅ 查看库函数反汇编有助于理解调用约定(cdecl / stdcall / fastcall)


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

  • 系统(Windows / Linux / macOS)
  • 语言(C / C++ / Rust / Go)
  • 目的(学习 / 调试 / 逆向)

我可以给你一句命令或一步到位的具体操作

0