第73部分- Linux x86 64位汇编 反汇编objdump
通过objdump可以进行反汇编操作。
通过objdump -d xxx可以查看二进制目标程序。
准备一个经典代码如下,我们进行编译,gcc -S disass.c -o disass.s,得到汇编代码。
#include <unistd.h>
int main(void) {
write(1, "Hello World\n", 15);
return 0;
}
得到的汇编代码如下:
.file "disass.c"
.text
.section .rodata
.LC0:
.string "Hello World\n"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
movl $15, %edx
leaq .LC0(%rip), %rsi
movl $1, %edi
call [email protected]
movl $0, %eax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0"
.section .note.GNU-stack,"",@progbits
也可以编译成二进制文件后通过命令objdump命令进行反汇编。