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