ida調試到了PUSH這一步如何查看上一步地址(本人小白,,求大佬解答一下。萬分感謝)
分三種情況,,如果是單步進入此CALL,,按下ECS可以返回到上一步代碼段,如果是中斷在此CALL看堆棧返回地址,,如果是多線程中斷此CALL需要具體分析觸發(fā)點
一樓回答是x86的指令,,你圖是ARM指令;在push {R3-R7},LR 處斷點停下(執(zhí)行該指令前),,返回地址在LR寄存器中(LR寄存器也是R14寄存器),;若更往深一點學習,想知道調用層次,,可以在斷下時,,記錄R3到R7以及LR(或R14)、SP(或R13)的值,,執(zhí)行該指令,,觀察各寄存器再棧中的入棧情況,,LR在棧中位置等。比如斷在push {R3-R7},LR 處,,想知道外層的外層時誰調用的,,就需要在得了外層函數(shù)(通過斷點處的LR)位置,分析函數(shù)棧結構下,,再再R13(SP)棧幀中尋找存放的上一個LR的位置,,以此類推,祝你好運,,Guy,!