脫殼時常用的ESP定律主要原理是什麼?脫殼過程中,什麼關鍵點需要重新對esp位址下斷呢?

時間 2021-05-31 22:16:04

1樓:

經典的殼一般是這樣的過程:

前面一堆亂七八糟的

++執行乙個解壓過程

-- (可能還有一堆亂七八糟的)

執行 在++記下esp,然後等到esp回來可以幫你快速找到--這個位置。。一般就快到oep了

2樓:

esp定律就是利用堆疊平衡快速找到OEP,所謂堆疊平衡是指call進乙個函式後,在ret前保證esp指向call前的位址,簡單說就是call的時侯棧頂在哪兒,call完棧頂必須仍然在那兒。通常保持堆疊平衡的做法是在call進入後儲存暫存器上下文,如果你用反彙編偵錯程式跟進去,會看到push ebp,push esp,push eax等等,在ret前會逆序把它們pop回來。殼的解壓器通常以pushad開始,也要遵守堆疊平衡,所以在解壓器把程式復原後肯定要呼叫popad把所有暫存器pop回來,所以可以在pushad前記錄下esp的位址,打上記憶體斷點,然後就能在popad的時侯斷下來,這時候就離OEP不遠了。

如果沒懂的話,你可能需要認真分析棧幀結構,動手單步一下call,仔細觀察棧幀變化來弄懂這個規律。

平時常用Solidwork和Ug,這樣的配置怎麼樣?有必要這麼貴的嗎?有沒有哪個配件是可以縮減預算的?

寒食 看你個人的使用深度了,我公司用的最低配置,經常卡頓,時而崩潰,除了影響工作效率,正常使用還是可以的。我自己的電腦,基本所有配置都比你這個低了一檔,跑這兩個軟體一點問題沒有,非常舒服。我覺得你完全可以在前三項砍掉至少兩千多,當你感覺砍掉這幾千之後的配置都不夠你用的時候,你應該不會在乎公升級配置的...

C C 這類更底層的語言,如果把平時常用的高階函式和功能都實現,能否達到 Python 的開發效率?

可以通過某些編譯器把Python編譯成二進位制讓它和c 差不多快,但是對於c c 無論你再怎麼寫類庫,某些語言特性決定了開發效率就是那個水平。 劉縉 不能。你會花和Python差不多的時間構思。Python兩倍的時間打字。Python一百倍的時間編譯。比以上加起來還多十倍的時間debug記憶體越界和...

目前想要準備考公,需要乙個平板(會時常用手寫筆)8代ipad和華為matepadpro哪個好呢

無名柿 iPad air3價效比最高,8代iPad非全貼合螢幕寫字不舒服,華為matepadpro雖然是全貼合但是體驗感都不如8代iPad,螢幕素質差,仔細看有斜紋,寫字不舒服延遲比較大 2塘主 預算夠的話8代iPad首選,要用手寫筆的話,iOS有很豐富的應用生態,體驗會非常好!matepadpro...