objdump 反彙編乙個函式的指令碼

2021-06-05 22:08:31 字數 495 閱讀 5362

1)使用system.map檔案查詢函式的起始位址和結束位址

2)使用objdump -d 反彙編, 然後通過--start-address和--stop-address引數指定函式區間

3)使用nm -n out.elf > system.map 命令生成system.map檔案

#!/bin/sh

routine=memset

start=`grep " "$routine"$" system.map | awk ''`

end=`grep -a 1 " "$routine"$" system.map | awk ''`

echo "routine $routine, star address $start, end address $end"

/opt/toolchain/arm-eabi-4.4.0/bin/arm-eabi-objdump -d u-boot --start-address=$start --stop-address=$end

乙個簡單函式的反彙編

void myfunction int a,int b int c a b 1 儲存ebp。ebp總是被我們用來儲存這個函式執行前的esp的值。執行完畢後,我們用ebp恢復esp 同時,呼叫此函式的上層函式也用ebp做同樣的事情。所以先把ebp壓入堆疊,返回之前彈出,避免ebp被我們改動。push ...

C 反彙編揭秘1 乙個簡單的C 程式反彙編解析

本系列主要從彙編角度研究c 語言機制和彙編的對應關係。第一篇自然應該從最簡單的開始。c 的源 如下 class my class void method int n my class private int m member int tmain int argc,tchar argv 可以直接deb...

反彙編之C 的虛函式

先來檢視一簡單例子 includeusing namespace std class base class derive public base int main 用vs2015除錯一番.檢視pb儲存子物件的位址.以上pb儲存了子類物件的位址,位址為0x003bfb64.來看看.這個子類物件的首4個...