標 題:Tutor 10 How to crack AutoZip 98 v4.0
發信人:dREAMtHEATER
時 間:15/16th, August 1999
詳細資訊:
作者:dREAMtHEATER
E-mail:dreamtheater@263.net
寫作日期: 15/16th, August 1999
軟體背景資料
執行平臺: Win9X
檔名稱: azp32v41.exe(版本號可能有誤)
程式型別: 解壓縮類工具
下載地點: http://www.mfsoft.com
檔案大小: 771KB
使用的工具
W32Dasm V8.93--Win9X Dissembler
Hex WorkShop V2.54--Hex Editor
RegSnap V2.51--Registry Analyzing Tool
Registry Studio V1.01--Enhanced Registry Editor
難易程度
Easy(x) Medium( ) Hard( ) Pro( )
----------=======宣告========----------
未經作者同意,不得修改、引用原文,一切權利保留。
本教程只供教學用,其他一切用途皆被禁止。
----------=======軟體介紹========----------
軟體的作者這樣說:
AutoZip is a tool that lets you extract zip files directly
from Netscape and
Internet Explorer. If the zip file contains a setup program, AutoZip can extract
the
archive temporarily and run the setup file.
----------=======軟體的保護機制========-------
這個shareware做的很體貼人,沒有nag,程式中也沒有任何地方可註冊,應該是線上(
on-line)註冊,只有你使用超過30天以後,才出現提示視窗告訴你必須註冊,否則休想再繼續使用
。沒關係,你可以用RegSnap在軟體安裝前後分別給登錄檔做個快照,然後進行比較。比較後,憑直
覺我認為程式第一次執行時間儲存在:HKEY_USERS\.DEFAULT\Software\MFSoft\AutoZip\Config40
,驗證的方法直接從登錄檔刪除這個鍵值,重新啟動程式。congratulate!你又獲得了三十天的試用
期。
----------========正文========----------
Part1 如何用W32Dasm的Debugger功能快速破解本程式
線索
首先將主執行程式在W32Dasm中反彙編,然後看看“String Data References”中有沒有跟“
共享”、時間限制等相關的詞彙,這可是你快速破解的最好方式!很可惜,沒有找到任何有參考價
值的詞彙,這會讓你不知所措嗎?想一想,還有什麼蛛絲馬跡可讓你來跟蹤的。請看下面:
"Color"
"Columns"
"comctl32.dll"
"commdlg_FindReplace"
"commdlg_help"
"Config40" 〈==看到了嗎?
"CONGRATULATIONS! "
"Content Type"
"ControlOfs%.8X%.8X"
"Convert EXE to ZIP"
"Convert ZIP to EXE"
"Copy"
"CoReleaseServerProcess"
"CoResumeClassObjects"
"CoSuspendClassObjects"
"Couldn"
"Create directory"
"Config40"是從登錄檔中讀寫記錄時間的鍵值!在"W32Dasm List of String Data
Items"窗
口中高亮顯示這一行,並用滑鼠雙擊這一行,你會發現程式碼視窗中有兩處與此相關的部分。
1)
* Possible StringData Ref from Code Obj ->"Software\MFSoft\AutoZip"
|
:00492364 BA98234900 mov edx,
00492398
:00492369 8BC3
mov eax, ebx
:0049236B E8344DFCFF call 004570A4
:00492370 8BCE
mov ecx, esi
* Possible StringData Ref from Code Obj ->"Config40"
|
:00492372 BAB8234900 mov edx,
004923B8
:00492377 8BC3
mov eax, ebx
:00492379 E8864FFCFF call 00457304
2)
* Possible StringData Ref from Code Obj ->"Software\MFSoft\AutoZip"
|
:004923F9 BA5C244900 mov edx,
0049245C
:004923FE 8B45FC mov eax, dword ptr [ebp-04]
:00492401 E89E4CFCFF call 004570A4
:00492406 33C0
xor eax, eax
:00492408 55
push ebp
:00492409 682D244900 push 0049242D
:0049240E 64FF30 push dword ptr fs:[eax]
:00492411 648920 mov dword ptr fs:[eax], esp
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0049239B(C)
|
* Possible StringData Ref from Code Obj ->"Config40"
|
:00492414 BA7C244900 mov edx,
0049247C
:00492419 8B45FC mov eax, dword ptr [ebp-04]
:0049241C E8F74EFCFF call 00457318
這兩部分程式碼驗證了我前面說的,你可以看到在每個"Config40"前面數行都有
"Software\MFSoft\AutoZip",這分明在讀取登錄檔的"Config40"的鍵值。
那麼,到底哪部分是我們所需要的呢?請在W32dasm的Debugger狀態下,分別在出現"Config40"
字串的下面一行的偏移地址設斷點,即:00492372、:00492414兩處,然後press F9,程式停在
:00492414y一行。
上面過程說明程式是在我上面列出的第二部分的程式碼處讀取安裝時間的(請保證你不是第一次
執行該程式)。如果這時你的此程式還沒有過期,請退出W32Dasm的Debugger狀態,往後調整系統時
間,迫使程式過期,再重新進入W32Dasm的Debugger狀態,設斷點在:00492414;否則,你只須取消所
有的斷點,press F6,繼續跟蹤,你會發現程式很快呼叫出過期的提示視窗:
:00492591 83F81E
cmp eax, 0000001E <==與30天比較
:00492594 7E25
jle 004925BB <==小於30天跳轉
:00492596 B9085A4900 mov ecx,
00495A08
:0049259B A1304B4900 mov eax,
dword ptr [00494B30]
:004925A0 8B00
mov eax, dword ptr [eax]
:004925A2 8B15F4204900 mov edx, dword
ptr [004920F4]
:004925A8 E8F7AAFBFF call 0044D0A4
:004925AD A1304B4900 mov eax,
dword ptr [00494B30]
:004925B2 8B00
mov eax, dword ptr [eax]
:004925B4 E86BABFBFF call 0044D124
<==呼叫過期的提示視窗
:004925B9 B301
mov bl, 01
多麼直接了當的一段程式碼,不用我說了,應該知道怎麼改吧!
----------=======The
Patch========----------
在檔案AutoZip.exe的offset:00091994處,修改7E25為EB25
---------========The
Final========----------
W32Dasm的一些具體操作我沒有很仔細地講,如若有不清楚的地方,請看它的Help檔案。
Debugger狀態下,如想能在很短的時間內找出呼叫象Nag Screen這樣的視窗的CALL,如果你
沒有其他好的方法可以使用(比如下合適的API函式斷點),那就必須找到與此有關聯的部分,例如
從登錄檔讀取安裝時間、註冊資訊的程式碼部分,這些都是很好的線索,呼叫nag的CALL與這些程式碼應
該離得很近,此種方法在大多數情況下都很有效,再不濟的,如果你實在找不到任何資訊,那你就
從程式的入口點(Entry Point)一行一行地執行程式碼,直到執行到呼叫出nag的那個CALL,到這還沒
完,如果你在這裡修改程式,往往會使程式@#^&*!,這是因為這個CAll裡面還包含著很多的CAll,你
還須trace into 這個CALL,然後有可能且極有可能再trace into.....天啊!是不是把你已經累死了
!不要認為這種方法不可行,我曾經不止一次這樣trace過,而且成功地破解過數個shareware,不過
,還好,沒有把我完全累死,只是咳咳.... :-)
從本章內容,你會了解到W32Dasm的Debug功能也蠻強的,不過他遠不如SoftIce的斷點設定
能力強,尤其在windows API函式斷點設定方面簡直就是白痴!其Debugger狀態下,最大的優點就是
非常容易觀察程式的變化。不要再迷信SoftIce了,他絕對不是你唯一的選擇!
W32Dasm,kool!