兩步快速脫yoda's cryptor 1.2殼--esp定律和記憶體斷點完美組合應用

看雪資料發表於2004-07-26

兩步快速脫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的我要大哥,你們的文章給予我很多幫助,謝謝你們!!!
   
------------------------------------------------------------
   
版權公有,人權私有。如有轉載,註明作者。

相關文章