2017年9月9日 星期六

[逆向分析] 用Ollydbg詳細分析指標與值

看到指標,一堆人極大可能直接排斥,但是....

我用OD直接下去解釋,希望本篇文章能夠讓大家以最輕鬆的方式理解。
若要轉貼文章,請附加註明。(其他大神,請忽略此篇)



我們用OD開啟執行檔



依照之前的經驗,很快就能找到進入點。

mov    esp+0x18, 0x1
依照經驗,直接判斷為 變數a
lea eax,esp+0x18
這行 可以分析成 把1的位址 放入eax上
也就是把0061FEA8放入eax  暫存器可以明顯看到。



mov   esp+0x1C,eax
這行我們看圖去理解
0061FEA8 放入0061FEAC 堆疊內,很明顯的堆疊可以看出來。



lea   eax,esp+0x18
lea 指令就是取得位址
把0061FEA8位址放入eax
堆疊也就顯示了eax的內容



mov   esp+0x4,eax

可以看到堆疊內 0061FEA8放入0061FE94 讓他去顯示
然後你們可以看到下圖printf 輸出變數a的指標



mov   eax,esp+0x1C
把0061FEAC裡面的東西放到eax暫存器內



mov   eax,ds[eax]
這段程式碼很重要,eax原本為0061FEA8位址,ds的意義就是抽取eax位址裡面的值,放入eax他自己裡面,直接把原本的eax狀態給取代了。

從堆疊裡面可以看出來,簡單來說 eax的變化就是從0061FEA8變成數值1。



最後,輸出的結果為1



OD指標的分析到此結束。
看圖稍微理解就好了,不會難,希望各位都能夠藉由這篇小程式看懂指標的流程走向。

有著作權,請勿轉載。若要分享,請註明本篇來源。


沒有留言:

張貼留言

Ollydbg 2.01 繁體中文版

Ollydbg 2.01 繁體中文版 Ollydbg 2.01 繁體中文版下載: Mega:   https://mega.nz/#!I2Qy1aQD!-T5zO3PaANjBHU73I4NlkY8SHMxRptbBV8TpmeFt1fo GD: h...