首頁
社區(qū)
課程
招聘
IDA怎么查看上一步地址
pumag 2022-1-9 908

圖片描述
ida調試到了PUSH這一步如何查看上一步地址
(本人小白,求大佬解答一下。萬分感謝)

收藏
2條回答
恒大 2022-1-11

分三種情況,如果是單步進入此CALL,按下ECS可以返回到上一步代碼段,如果是中斷在此CALL看堆棧返回地址,如果是多線程中斷此CALL需要具體分析觸發(fā)點

回復
pumag: 如果是直接斷點打在這呢
回復 2022-1-11
SZUCEST 2022-1-11 2022-1-11編輯

一樓回答是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!

回復
pumag: 感謝大佬指點!
回復 2022-1-11