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 處,想知道外層的外層時誰調用的,就需要在得了外層函數(通過斷點處的LR)位置,分析函數棧結構下,再再R13(SP)棧幀中尋找存放的上一個LR的位置,以此類推,祝你好運,Guy!