破解API Spy for Windows 95/98/NT/2000 《=寫得不好,初學者看一看吧 (4千字)

看雪資料發表於2001-07-03

破解API Spy for Windows 95/98/NT/2000 《=寫得不好,初學者看一看吧
破解人:4
日期:七月二日
API32spy是一個非常有用的破解工具!它可以用來偵測系統呼叫了那些函式,幫助我們決定下什麼斷點。
下載:http://madmat.hypermart.net/apis3225.exe
      http://apis32.virtualave.net/soft/apis3225.exe
      http://skyscraper.fortunecity.com/emacs/859/soft/apis3225.exe

首先,用Fileinfor2.45(FI.exe)檢查到APISpy2.5(Apis32.EXE)是用Petite1.2加密。
使用Procdump1.62脫殼它的殼吧。不是吧?ERROR!錯誤操作?
執行Blast Wave 2000 v0.2(Blast Wave 2000 是一個windows 下的脫殼輔助工具。
它能輕易的找到任何加密殼的入口點.包括ASProtect以及幻影的加密殼.)
按Trace鍵,執行Apis32.EXE. 得到Entry point: 00406360
用w32dasm開啟Apis32.EXE,反編譯後, 按Find Text鍵,打入Entry point地址:00406360
找到:004?????  E989CDFEFF            JMP 00406360
哈,寫下E989CDFEFF吧。
不如再一次使用Procdump來脫殼它的殼吧?就寫一個新的Script來脫殼Petite1.2的殼。
開啟Procdump 的Script.ini
[INDEX]
.
.
.
P1B=VGCrypt 0.75
P1C=Aspack108.4
P1D=Aspack2000
P1E=Petite1.2    《=這裡加入新的脫殼名稱

; script by GustawKit
.
.
.
加入新的脫殼資料
[Petite1.2]                《=新的脫殼名稱
L1=LOOK E9,89,CD,FE,FF    《=先前寫下的E989CDFEFF
L2=BP                      《=如果發現斷點
L3=STEP                    《=就進行一步一步的解析操作,解壓以後,儲存檔案
OPTL1=00000000
OPTL2=01000001
OPTL3=01010001
OPTL4=00030000
OPTL5=00000000

執行Procdump1.62,選擇Unpack=》選擇 Petite1.2=》選擇Apis32.EXE
等待Apis32.EXE的資訊視窗彈出,再按Procdump1.62的OK鍵,開始脫殼。成功了。

然後
用w32dasm開啟Apis32.EXE,反編譯後, 按String Data References 鍵。
找那個彈出視窗的資訊“This  copy  of  APIS32  is UN R E G I S T E R E D”

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402EA5(C)
|

* Possible StringData Ref from Data Obj ->"This  copy  of  APIS32  is U "
                                        ->"N R E G I S T E R E D" "
                                  |
:00402EA9 BF10A24000              mov edi, 0040A210
:00402EAE BA20BD4000              mov edx, 0040BD20
:00402EB3 83C9FF                  or ecx, FFFFFFFF
:00402EB6 33C0                    xor eax, eax



* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402491(U)
|
:00402494 0AC0                    or al, al        《=修改這兒。or al,01(修改0AC0=>0c01)
:00402496 7402                    je 0040249A      《=如果al=0,就跳(一跳就玩完了)
:00402498 EB09                    jmp 004024A3

果然彈出視窗不見了。

下一步,修改註冊。找那個彈出視窗的資訊"The registration information you.... "


* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004018B9(U)
|
:004018BC 0AC0                    or al, al        《=修改這兒。or al,01(修改0AC0=>0c01)
:004018BE 7402                    je 004018C2      《=如果al=0,就跳(一跳就玩完了)
:004018C0 EB2C                    jmp 004018EE

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004018BE(C)
|

* Possible StringData Ref from Data Obj ->"The registration information you "
                                        ->"provided is incorrect. Please verify "
                                        ->"that you entered your name and "
                                        ->"code properly, and try again. If "
                                        ->"you encounter difficulties, please "
                                        ->"send mail to APIS32@Biosys.net or "
                                        ->"visit our web site http://madmat.hypermart.net"
                                  |
:004018C2 BFFCA04000              mov edi, 0040A0FC
:004018C7 BA80C74000              mov edx, 0040C780
:004018CC 83C9FF                  or ecx, FFFFFFFF
:004018CF 33C0                    xor eax, eax
:004018D1 F2                      repnz
:004018D2 AE                      scasb

怎麼啦?這個程式的作者老是使用這個指令去判斷是否註冊啊。
                              or al, al
                              je 004018C2    《=如果al=0,就跳(一跳就玩完了)
算了,把所有的 or al, al更換成or al,01吧。
使用Hex workshop的Replace代替功能把所有0AC0換成0c01 (大約十個左右)
OK,破解API Spy for Windows 95/98/NT/2000 成功。

相關文章