查殼:
ASPack 2.12 -> Alexey Solodovnikov
很簡單的壓縮殼,脫殼就不介紹了,一個esp定律就搞定。
OD載入,運行軟件先看一看
有錯誤提示,這就好辦了,F12暫停,調用堆棧,在最后一行右鍵,顯示 調用
然后來到這里
有個JMP跳過錯誤提示,可是沒跳,我們看到下面有個跳轉進來了,我們跟過去看看
這個JE跳過成功,跳向了失敗,那這就是關鍵跳了,那關鍵CALL呢?我們發現它上面并沒有CALL,只把一個地址常量給了eax,然后和0做比較,相等就錯誤,這說明注冊版的那個地址值應該是1,好,那樣我們就在紅框中的MOV下斷,然后重新注冊,好,完美斷下,F8下,此時EAX中放的地址是011477F0,結果為0,而我們現在就想知道誰什么時候給它寫入的0,我們數據窗口跟隨,下硬件寫入斷點
再次重新注冊,好斷下了
但這里賦值沒什么用,還是會被清零的,繼續F9,好又斷下了,
這時寄存器和堆棧窗口都出現了真碼(我試過了),重點是反匯編窗口,看箭頭所指,一個給EAX賦值1,一個賦值0,明顯它跳過了賦值1。來到賦值0,所以這里我們有兩種方法,一是把上面的JNZ NOP掉,二是把賦值0也改為賦值1,我們這里用第二種方法,記得把EAX的值在數據窗口改成1,因為上面已給它賦值0了,操作如下
好了,我們F9運行吧
跳轉沒有實現,顯示注冊成功
標題,下面和注冊窗口都顯示已注冊,這說明我們已經一字節爆破了它,好了,今天的教程就到這里吧,借用一句話,這是給像我這樣的新手看的,老鳥就飄過吧
PS:分享的思路,學的是技術而不是某一個軟件,所以,這次就不放成品了,請各位見諒,路過的也不要忘記打點賞,畢竟做圖文真的很辛苦,謝謝了
|