日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ESP定律

發(fā)布時(shí)間:2023/12/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP定律 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

當(dāng)程序載入OD之后?

004AC460?>?$??60????????????pushad;程序停在這里?F8?指向pushad指令

pushad是把寄存器中數(shù)據(jù)入棧?棧中數(shù)據(jù)如下:

0012FFA4???7C930208???|EDI? <--?ESP指向棧頂

0012FFA8???FFFFFFFF |ESI

0012FFAC???0012FFF0 |EBP

0012FFB0???0012FFC4 |ESP

0012FFB4???7FFDE000 |EBX

0012FFB8???7C92E4F4???|EDX??

0012FFBC???0012FFB0 |ECX

0012FFC0???00000000 |EAX

此時(shí)ESP指向棧頂?地址為0012FFA4?,脫殼從這里開始-.-~

來(lái)到數(shù)據(jù)段即內(nèi)存地址0012FFA4?在這下斷點(diǎn)?-?硬件訪問?-?word

然后F9??--?這里就能找到OEP

那么我的理解就是?匯編指令之前前先把各個(gè)寄存器保存起來(lái),然后執(zhí)行殼的操作比如解壓,

等殼的工作完成之后需要恢復(fù)各個(gè)寄存器的值?,我們?cè)跅V幸呀?jīng)設(shè)置了一個(gè)斷點(diǎn),所以當(dāng)程序訪問棧中數(shù)據(jù)(popad,我們?cè)?/span>0012FFA4?下斷點(diǎn)是EDI的值,當(dāng)程序恢復(fù)EDI寄存器)時(shí)就被我們給斷了下來(lái)?,當(dāng)然并不是斷在pop?EDI指令上,而是斷在popad的下一條指令,因?yàn)?/span>popad是一步到位恢復(fù)寄存器的。

然后在尋找OEP,一般是jmp大跳?然后就看到了期待已久的55機(jī)器碼了?dump-.-~

可以理解為殼的執(zhí)行是一個(gè)子程序?,子程序運(yùn)行前都要保持寄存器,完事之后恢復(fù)寄存器,返回主程序

我們?cè)诨謴?fù)寄存器的地方下斷點(diǎn),然后???...

以上就是我對(duì)ESP定律的理解,雖然還未成功脫的一殼,但是各大網(wǎng)站論壇都在談?wù)?/span>ESP之威武,據(jù)說(shuō)可脫所以壓縮殼,所以大概找了些文章看看,ESP定律就是利用堆棧平衡找到程序結(jié)束繼而找到OEP

以上為個(gè)人理解,為了不誤人子弟,有錯(cuò)誤大神請(qǐng)指出?

?

popad:相當(dāng)于

push EAX

push ECX

push EDX

push EBX

push ESP

push EBP

push ESI

push EDI

總結(jié)

以上是生活随笔為你收集整理的ESP定律的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。