objdump反彙編用法示例
原文:-d:將**段反彙編
-s:將**段反彙編的同時,將反彙編**和源**交替顯示,編譯時需要給出-g,即需要除錯資訊。
-c:將c++符號名逆向解析。
-l:反彙編**中插入源**的檔名和行號。
-j section:僅反彙編指定的section。可以有多個-j引數來選擇多個section。
有**如下:
class main
int geta(void)
};
$objdump -d a.out # 簡單反彙編
08048456 <_zn4mainc1ev>:
8048456: 55 push %ebp
8048457: 89 e5 mov %esp,%ebp
8048459: 8b 45 08 mov 0x8(%ebp),%eax
804845c: c7 00 00 00 00 00 movl $0x0,(%eax)
8048462: 5d pop %ebp
8048463: c3 ret
08048464 <_zn4main4getaev>:
8048464: 55 push %ebp
8048465: 89 e5 mov %esp,%ebp
8048467: 8b 45 08 mov 0x8(%ebp),%eax
804846a: 8b 00 mov (%eax),%eax
804846c: 5d pop %ebp
804846d: c3 ret
$objdump -s a.out # 反彙編**中混入對應的源**
08048456 <_zn4mainc1ev>:
class main
8048462: 5d pop %ebp
8048463: c3 ret
08048464 <_zn4main4getaev>:
int geta(void)
8048464: 55 push %ebp
8048465: 89 e5 mov %esp,%ebp
804846c: 5d pop %ebp
804846d: c3 ret
$objdump -c -s a.out # c++符號名逆向解析
08048456 :
class main
8048462: 5d pop %ebp
8048463: c3 ret
08048464 :
int geta(void)
8048464: 55 push %ebp
8048465: 89 e5 mov %esp,%ebp
804846c: 5d pop %ebp
804846d: c3 ret
objdump -j .text -l -c -s a.out # 列印源檔名和行號
08048456 :
_zn4mainc2ev():
~/objdump/main.h:5
class main
8048462: 5d pop %ebp
8048463: c3 ret
08048464 :
_zn4main4getaev():
~/objdump/main.h:10
int geta(void)
8048464: 55 push %ebp
8048465: 89 e5 mov %esp,%ebp
~/objdump/main.h:12
804846c: 5d pop %ebp
804846d: c3 ret
簡單例項分析objdump反彙編用法
objdump rds 可可執行檔案 objdump命令是用檢視目標檔案或者可執行的目標檔案的構成的gcc 工具。1.準備 hello.c include include include module license gpl module author baoli module descriptio...
objdump 反彙編乙個函式的指令碼
1 使用system.map檔案查詢函式的起始位址和結束位址 2 使用objdump d 反彙編,然後通過 start address和 stop address引數指定函式區間 3 使用nm n out.elf system.map 命令生成system.map檔案 bin sh routine ...
反彙編 迴圈
includeint main 00401010 55 push ebp 00401011 8bec mov ebp,esp 00401013 83ec 44 sub esp,44 00401016 53 push ebx 00401017 56 push esi 00401018 57 push ...