在 Linux 下进行反汇编(disassembly),常见的“格式”通常可以从两个层面理解:
objdump(最常用)objdump -d test
典型输出格式:
0000000000401136 <main>:
401136: 55 push %rbp
401137: 48 89 e5 mov %rsp,%rbp
40113a: 5d pop %rbp
40113b: c3 ret
说明:
40113655push %rbpmovl %eax, %ebx
特点:
%$b/w/l/q)mov ebx, eax
特点:
% 和 $在 Linux 中使用 Intel 语法:
objdump -M intel -d test
gdb 反汇编格式disassemble main
或:
disas /r main
输出示例:
Dump of assembler code for function main:
0x0000000000401136 <+0>: push %rbp
0x0000000000401137 <+1>: mov %rsp,%rbp
End of assembler dump.
radare2 / ghidra / IDApd 10Linux 下常见的是:
file test
# test: ELF 64-bit LSB executable, x86-64
反汇编主要针对:
.text 段(代码段).o 目标文件裸二进制反汇编:
objdump -b binary -m i386:x86-64 -D file.bin
Linux 反汇编默认是 ELF + AT&T 语法,常用
objdump -d,可加-M intel切换为 Intel 格式。
如果你是想问:
可以告诉我,我给你更针对性的说明。