[問題] 印出return addr
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
linux+gcc
問題(Question):
突然想來寫程式印出function的return address
可是我發現程式印不出來
有找到gcc的calling convention如下
parameter...
parameter 3
parameter 2
parameter 1
return address
ebp
local var 1
local var 2
local var 3
local var ...
我試著在main function去呼叫的函數裡面宣告一個local var 1
利用這個local var 1的指標位置加上偏移值
可是都沒找到該回到的main address,但是有找到傳入的參數
我在想傳入的參數和local var 1之間應該會有一段記憶體的內容
和我
printf("%p\n",main);
印出來的值是一樣的?
還是說return addr沒有辦法這樣找到呢?
thanks!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.67.69
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1420897603.A.EDA.html
※ 編輯: HowLeeHi (36.226.67.69), 01/10/2015 21:50:52
→
01/10 21:57, , 1F
01/10 21:57, 1F
→
01/10 21:58, , 2F
01/10 21:58, 2F
→
01/10 21:59, , 3F
01/10 21:59, 3F
→
01/10 22:00, , 4F
01/10 22:00, 4F
→
01/10 22:01, , 5F
01/10 22:01, 5F
→
01/11 02:56, , 6F
01/11 02:56, 6F
推
01/11 11:18, , 7F
01/11 11:18, 7F
→
01/11 16:51, , 8F
01/11 16:51, 8F
→
01/12 06:26, , 9F
01/12 06:26, 9F
→
01/12 06:34, , 10F
01/12 06:34, 10F