在CentOS系统中,你可以使用objdump
命令来进行反汇编。以下是一些常用的objdump
命令及其输出解释:
objdump [选项] 文件名
-d
或 --disassemble
:反汇编所有段。-D
或 --disassemble-all
:反汇编所有段,包括调试信息。-M intel
或 -M att
:选择Intel或AT&T语法。-b binary
:指定二进制文件。-s
或 --full-contents
:显示所有段的内容。-l
或 --line-numbers
:显示行号。-S
或 --source
:显示源代码(如果可用)。objdump -d /path/to/your/binary
输出示例:
00000000 <_start>:
0: 31 ed xor %ebp,%ebp
2: 5e pop %esi
3: 89 e1 mov %esp,%ecx
5: 83 e4 f0 and $0xfffffff0,%esp
8: 50 push %eax
9: 54 push %esp
a: 52 push %edx
b: 68 20 80 00 00 push $0x8020
10: 68 80 20 00 00 push $0x2080
15: 50 push %eax
16: e8 10 ff ff ff call 1 <_start+0x1>
1b: 5a pop %edx
1c: 59 pop %ecx
1d: 5e pop %esi
1e: 89 ec mov %ebp,%esp
20: 5d pop %ebp
21: c3 ret
00000000
)表示指令的起始地址。xor %ebp,%ebp
)显示反汇编后的指令。objdump -d -j .text /path/to/your/binary
输出示例:
/path/to/your/binary: file format elf64-x86-64
Disassembly of section .text:
0000000000401136 <function>:
401136: 55 push %rbp
401137: 48 89 e5 mov %rsp,%rbp
40113a: 48 83 ec 10 sub $0x10,%rsp
40113e: 89 7d fc mov %edi,-0x4(%rbp)
401141: 89 75 f8 mov %esi,-0x8(%rbp)
401144: 8b 45 fc mov -0x4(%rbp),%eax
401147: 8b 55 f8 mov -0x8(%rbp),%edx
40114a: 01 d0 add %edx,%eax
40114c: 89 45 f4 mov %eax,-0xc(%rbp)
40114f: 8b 45 f4 mov -0xc(%rbp),%eax
401152: c9 leave
401153: c3 ret
objdump
时,可能需要安装binutils
包,可以通过yum install binutils
进行安装。通过这些命令和输出解释,你可以有效地在CentOS系统上进行反汇编操作并理解其输出结果。