兩步快速脫yoda's cryptor 1.2殼--esp定律和記憶體斷點完美組合應用
軟體名稱:
兩步快速脫yoda's cryptor 1.2殼--esp定律和記憶體斷點完美組合應用
軟體簡介:
yoda's cryptor 1.2,老殼了。公開了原始碼,謝謝作者無私!
下載地址:
本地下載
------------------------------------------------------------
破解作者:
springkang[DFCG]
破解工具:
OD,loadpe,impr,winxp
破解目的:
學習和推廣esp定律。
------------------------------------------------------------
[破解過程]
詳細過程:
首先,忽略所有異常,再載入加殼的winxp記事本。
01013060 > 60 PUSHAD //載入加殼程式後停在這裡。首先使用esp定律!
01013061 E8 00000000 CALL NOTEPAD.01013066 //esp為0006ffa4
01013066 5D POP EBP //esp為0006ffa0
01013067 81ED F31D4000 SUB EBP,401DF3 //esp為0006ffa4,從這裡開始執行幾步esp的值均無變化。好了,可以在這裡下0006ffa4 硬體訪問--word(dword)斷點了,也可以再走幾步下斷,問題不大。F9執行。
0101306D B9 7B090000 MOV ECX,97B
01013072 8DBD 3B1E4000 LEA EDI,DWORD PTR SS:[EBP+401E3B]
0101375D 50 PUSH EAX ; NOTEPAD.0101370C //中斷到這裡了,取消硬體斷點,下記憶體訪問斷點。
0101375E 33C0 XOR EAX,EAX
01013760 64:FF30 PUSH DWORD PTR FS:[EAX]
01013763 64:8920 MOV DWORD PTR FS:[EAX],ESP
01013766 EB 01 JMP SHORT NOTEPAD.01013769
01013768 8700 XCHG DWORD PTR DS:[EAX],EAX
0101376A 0000 ADD BYTE PTR DS:[EAX],AL
0101376C 0000 ADD BYTE PTR DS:[EAX],AL
記憶體映象,專案 27
地址=01001000
大小=00007000 (28672.)
Owner=NOTEPAD 01000000
區段=.text
包含=code //老規矩了,在這裡下記憶體斷點 ,f9執行
型別=Imag 01001008
訪問=RW CopyOnWr
初始訪問=RWE
01006AE0 6A 70 PUSH 70 //很臉熟吧,用loadpe和impr就可以dump和修復了,執行正常。
01006AE2 68 88180001 PUSH NOTEPAD.01001888
01006AE7 E8 BC010000 CALL NOTEPAD.01006CA8
01006AEC 33DB XOR EBX,EBX
01006AEE 53 PUSH EBX
最後補充一下,如果用OD的外掛dump加殼的yoda's cryptor 1.2主程式,impr修復,雖然執行正常,但無法加密。而用loadpe的dump再修復就沒有這種問題。具體原因偶是個大菜鳥,也無法得知。
破解小結:
此法對加殼的主程式同樣有效! 下硬體斷點的地址有很多,如0012ffa0,12ffc0,12ffac,12ffa4等,不一而足,不同的殼有不同的下法。關鍵是看載入加殼的程式後執行幾步觀察暫存器的esp的值,多試幾次,就會有收穫。例如petite2.2的殼就是下在0012ffc0處。
最後感謝weiyi75,fly,loveboom(偶的老鄉),shinegood,forgot,temerata等等高手,還有DFCG的我要大哥,你們的文章給予我很多幫助,謝謝你們!!!
------------------------------------------------------------
版權公有,人權私有。如有轉載,註明作者。