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