Posted on 2009-09-24 11:42
S.l.e!ep.¢% 閱讀(2987)
評論(0) 編輯 收藏 引用 所屬分類:
Crack
新手必須懂得什么叫OEP,以及查找的常用方式軟件破解什么是oep?
original entry point 原始入口點
常見脫殼知識:1.PUSHAD (壓棧) 代表程序的入口點
2.POPAD (出棧) 代表程序的出口點,與PUSHAD想對應,一般找到這個OEP就在附近拉!
3.OEP:程序的入口點,注意這點:軟件加殼就是隱藏了OEP(或者用了假的OEP),
只要我們找到程序真正的OEP,就可以立刻脫殼。
方法一:
1.用OD載入,不分析代碼!
2.單步向下跟蹤F8,是向下跳的讓它實現
3.遇到程序往回跳的(包括循環),我們在下一句代碼處按F4(或者右健單擊代碼,選擇斷點——運行到所選)
4.綠色線條表示跳轉沒實現,不用理會,紅色線條表示跳轉已經實現!
5.如果剛載入程序,在附近就有一個CALL的,我們就F7跟進去,這樣很快就能到程序的OEP
6.在跟蹤的時候,如果運行到某個CALL程序就運行的,就在這個CALL中F7進入
7.一般有很大的跳轉,比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETE的一般很快就會到程序的OEP。
方法二:
ESP定理脫殼(ESP在OD的寄存器中,我們只要在命令行下ESP的硬件訪問斷點,就會一下來到程序的OEP了?。?
1.開始就點F8,注意觀察OD右上角的寄存器中ESP有沒出現。
2.在命令行下:dd 0012FFA4(指在當前代碼中的ESP地址),按回車!
3.選種下斷的地址,下硬件訪問WORD斷點。
4.按一下F9運行程序,直接來到了跳轉處,按下F8,到達程序OEP,脫殼
方法三:
內存跟蹤:
1:用OD打開軟件!
2:點擊選項——調試選項——異常,把里面的忽略全部√上!CTRL+F2重載下程序!
3:按ALT+M,DA 打開內存鏡象,找到第一個.rsrc.按F2下斷點,
然后按SHIFT+F9運行到斷點,接著再按ALT+M,DA 打開內存鏡象,找到.RSRC上面的CODE,按
F2下斷點!然后按SHIFT+F9,直接到達程序OEP,脫殼!
方法四:
一步到達OEP(前輩們總結的經驗)
1.開始按Ctrl+F,輸入:popad(只適合少數殼,包括ASPACK殼),然后按下F2,F9運行到此處
2.來到大跳轉處,點下F8,脫殼之!
方法五:
1:用OD打開軟件!
2:點擊選項——調試選項——異常,把里面的√全部去掉!CTRL+F2重載下程序!
3:一開是程序就是一個跳轉,在這里我們按SHIFT+F9,直到程序運行,記下從開始按F9到程序
運行的次數!
4:CTRL+F2重載程序,按SHIFT+F9(次數為程序運行的次數-1次
5:在OD的右下角我們看見有一個SE 句柄,這時我們按CTRL+G,輸入SE 句柄前的地址!
6:按F2下斷點!然后按SHIFT+F9來到斷點處!
7:去掉斷點,按F8慢慢向下走!
8:到達程序的OEP,脫殼!
以上方法,針對不同的殼,至于OEP是什么樣子,這個就不好說了,不同的語言寫出來的樣子就不一樣,有高手能總結下OEP的樣子嗎???
新手朋友可以記住這幾種方式,一般殼脫掉是沒有什么問題的。
再用一個最幼稚的比喻來形容加殼的軟件,那個帶殼的軟件,就是穿了衣服的人,要看它到底是男是女,就把衣服脫掉,不可能哪個生出來就穿了衣服吧,就像軟件一樣,寫出來不可能就帶殼的,都是后面加上去的。脫下來了,就一目了然了。。。不知道這個比喻形容的清楚不~~呵呵~~~
基礎東西,老鳥繞過,新手要學破解的,必須掌握~~我也在學習中。。。很多殼有專用的脫法,慢慢來學,不急~~