Add Remove Plus! 2000 v2.0破解手記 附:Windows 優化大師 3.3的破解方法 (4千字)

看雪資料發表於2001-02-02

Add Remove Plus! 2000 v2.0破解手記 附:Windows 優化大師 3.3的破解方法
目標軟體:Add Remove Plus! 2000 v2.0
破 解 人:TAE!
保護機制:Nag視窗
破解方法:暴力破解
下載地址:http://www.aurelitec.com/ 
 

  先執行程式,出現了一個類似Vbox的Nag,著實嚇了我一跳.心想:一個幾百K的軟體
也用Vbox封裝?
  用FileInfo檢測發現是一個delphi程式,頓時鬆了口氣.
  用Trw載入程式.
 
:0046B440 55                      push ebp

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0046B3F9(C)
|
:0046B441 8BEC                    mov ebp, esp
:0046B443 83C4F4                  add esp, FFFFFFF4
:0046B446 B818B24600              mov eax, 0046B218
:0046B44B E8A8ADF9FF              call 004061F8

* Possible StringData Ref from Code Obj ->"INSTALL.DA2"
                                  |
:0046B450 B9B8B44600              mov ecx, 0046B4B8

* Possible StringData Ref from Code Obj ->"INSTALL.DA1"
                                  |
:0046B455 BACCB44600              mov edx, 0046B4CC

* Possible StringData Ref from Code Obj ->"INSTALL.DA0"
                                  |
:0046B45A B8E0B44600              mov eax, 0046B4E0
:0046B45F E83C90FFFF              call 004644A0    //這句執行後便出現Nag
:0046B464 84C0                    test al, al      //選擇 "Try"後回到了這裡
:0046B466 7441                    je 0046B4A9      //此時不跳轉;若選了Quit,這裡便會跳走
:0046B468 A160D04600              mov eax, dword ptr [0046D060]
:0046B46D 8B00                    mov eax, dword ptr [eax]
:0046B46F E81409FEFF              call 0044BD88
:0046B474 A160D04600              mov eax, dword ptr [0046D060]
:0046B479 8B00                    mov eax, dword ptr [eax]

* Possible StringData Ref from Code Obj ->"Add/Remove Plus! 2000"

既然知道了產生Nag的call,那我就用 tKC常用的Return大法來超度它!
進入那個產生Nag的call,便到了這裡:
* Referenced by a CALL at Address:
|:0046B45F 
|
:004644A0 55                      push ebp  //就在這一行做做手腳吧
:004644A1 8BEC                    mov ebp, esp
:004644A3 83C4E0                  add esp, FFFFFFE0
:004644A6 53                      push ebx
:004644A7 56                      push esi
:004644A8 57                      push edi
:004644A9 33DB                    xor ebx, ebx
:004644AB 895DF0                  mov dword ptr [ebp-10], ebx
:004644AE 895DF8                  mov dword ptr [ebp-08], ebx
:004644B1 8BD8                    mov ebx, eax
:004644B3 33C0                    xor eax, eax
:004644B5 55                      push ebp
:004644B6 68EA464600              push 004646EA
:004644BB 64FF30                  push dword ptr fs:[eax]
:004644BE 648920                  mov dword ptr fs:[eax], esp
:004644C1 C645FF00                mov [ebp-01], 00
:004644C5 33C0                    xor eax, eax
:004644C7 55                      push ebp
:004644C8 68AF464600              push 004646AF
:004644CD 64FF30                  push dword ptr fs:[eax]
:004644D0 648920                  mov dword ptr fs:[eax], esp
:004644D3 8D55F0                  lea edx, dword ptr [ebp-10]
:004644D6 33C0                    xor eax, eax
:004644D8 E8C7E3F9FF              call 004028A4
:004644DD 8B45F0                  mov eax, dword ptr [ebp-10]

在004644A0這行,將55改為C3即Ret
這樣程式執行到這裡後,就會立即返回撥用它的地方,也就是0046B464,程式就不會出現Nag了.
然後再將  0046B466 處的 7441
  改為:                9090
  程式已經被破解啦!
其實 tKC 的這種Ret大法非常適合於以下這種情況:
有許多地方呼叫這個call.
比如:        00000000:Call 11111111
              00000001:test al,1
             
              11111111:push
              XXXXXXXX: ...
可以改為:     
              00000000:Call 11111111
              00000001:test al,1
             
              11111111:mov al,1
              XXXXXXXX:ret
    這樣所有呼叫這裡的地方,返回的al值都是1了!cool吧?
    當然這兒可以充分發揮你的想象力,讓我們改的更好!
    已經3點多了,該睡了!


      Windows 優化大師 3.3的破解方法
Aspack 2.11加的殼,先脫殼,都會吧?
然後...

查詢:83f8147407bb01000000
改為:      EB   

查詢:83f8147423bba1860100
改為:      EB             

成為隨意註冊版!

相關文章