温馨提示×

Linux反汇编指令怎么找

小樊
66
2026-08-31 05:28:36
栏目: 智能运维

在 Linux 下“找反汇编指令”通常分几种情况:
查看反汇编、定位反汇编命令、学习反汇编用法。下面按常见需求给你一个清晰清单。


一、最常见的反汇编命令

1️⃣ objdump(最常用)

objdump -d test

反汇编整个可执行文件(或 .o、.so)。

常用参数:

objdump -d test           # 反汇编可执行代码段
objdump -S test           # 反汇编 + 源码对照
objdump -M intel test    # Intel 语法(默认 AT&T)
objdump -s -j .text test # 查看 .text 段原始数据

✅ 适合:ELF 可执行文件、库、目标文件


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

gdb ./test
(gdb) disassemble main

常用:

disassemble              # 当前函数
disassemble main         # 指定函数
disassemble 0x401000,0x401100

切换 Intel 语法:

set disassembly-flavor intel

✅ 适合:动态调试、跟踪执行


3️⃣ ndisasm(针对裸二进制)

ndisasm -b 32 test.bin

参数:

ndisasm -b 64 test.bin

✅ 适合:Shellcode、boot、裸机代码


4️⃣ x64dbg / radare2 / Ghidra(进阶)

工具 用途
radare2 命令行逆向神器
Ghidra 反汇编 + 伪代码
IDA 商业逆向工具

二、如何“找”反汇编指令(你问的重点)

✅ 1. 看程序里有哪些指令

objdump -d test | less

搜索:

call
jmp
ret
mov
push
pop

✅ 2. 找某个函数的汇编

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

或 GDB:

gdb ./test
disassemble main

✅ 3. 找某个地址对应的指令

objdump -d test | grep 401125

或:

gdb ./test
x/10i 0x401125

✅ 4. 找到程序入口点

readelf -h test

看 Entry point address


三、区分 AT&T 和 Intel 语法

语法 示例
AT&T mov %eax, %ebx
Intel mov ebx, eax

推荐用 Intel:

objdump -M intel -d test

四、一个完整示例(新手推荐)

gcc test.c -o test
objdump -M intel -d test | less

五、如果你是想“学反汇编指令”

推荐学习顺序:

  1. objdump -d
  2. 理解 call / ret / jmp
  3. 栈帧:push rbp, mov rbp, rsp
  4. 系统调用:syscall
  5. GDB 单步调试

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

  • ✅ 你是 初学者 / 逆向 / 漏洞分析 / CTF
  • ✅ 用的是 x86 / x64 / ARM
  • ✅ 想找 某条指令 / 某个函数 / 漏洞点

我可以直接给你“手把手反汇编示例”。

0 踩