第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指令進行反彙編。