Visual CHM 4.0的演算法“特別破解” (8千字)
標 題:Visual CHM 4.0的演算法“特別破解” (8千字)
發信人:NewHand
時 間:2004-02-10 16:48:48
詳細資訊:
Visual CHM 4.0的演算法“特別破解”
【軟體名稱】:Visual CHM 4.0
【軟體簡介】:執行於多種 Windows 平臺,包括 Windows 95/98/Me/NT 4.0/2000/XP。一款不錯的CHM製作和反編譯於一身的利器!
Features of Visual CHM:
Compile and decompile HTML help files
Add a batch of HTML files at one time
Integrate with windows explorer
WYSIWYG (What you see is what you get)
Easily edit HTML files
Support multiple language (Include English, Chinese, German, Spanish, and more)
【軟體大小】:1570 KB 主程式:407KB
【軟體主頁】:http://www.wekasoft.com/vchm
【作者】:NewHand[BCG]
【作者宣告】:只是感興趣,沒有其他目的。失誤之處敬請諸位大俠賜教!
【除錯環境】:Win98、OllDBG、PEiD、Aspackdie1.4
―――――――――――――――――――――――――――――――――
【過程】: 請出PEiD,偵得是Aspack,那就先用Aspackdie1.4脫殼,雖然手脫很容易,但用此工具脫會C身些!會知編寫語言是:Borland Delphi 6.0 - 7.0,軟體說有編輯15個標題的限制,就執行軟體試試,然後知道軟體在你匯入編輯標題時進行數量統計,如你沒註冊,則統計到數量為16時就彈出提示;若你註冊假碼則不會提示你。並且“編譯”的選單和按鈕會變灰,在Language的中文.ini裡發現:
[RegForm]
Caption=註冊
LabelReg.Caption=註冊成功!
Label1.Caption=機器碼:
Label2.Caption=使用者名稱:
Label3.Caption=註冊碼:
ButtonOK.Caption=確定
ButtonCancel.Caption=退出
ButtonBuyNow.Caption=購買
ButtonBuyNow.Hint=線上時點選
Error=使用者名稱的長度必須在 6 到 32 個字元之間!
Over=請重新啟動本軟體,檢查註冊!
Dede的使用我還不行,好了就用OD調戲它!
既然“匯入編輯標題時進行數量統計,如你沒註冊,則統計到數量為16時就彈出提示”,即有會使用Messageboxa對話方塊函式:有了OD,又豈用在這函式下斷,用OD載入主程式或Attach它,匯入標題,使其彈出提示對話方塊,然後在OD裡暫停並在當前指令下斷點,回主程式點“確定”,會提示OD攔截成功,點return按鈕或“Ctrl+F9”,按一下F8,是否返回了主程式領空?爽嗎?那麼你會想到判斷的地方多數在附近吧,於是你就要向上翻找找Cmp register,(fh,10h)+Jmp類的指令了,懷疑的就斷來看看改改的^_^
改了(參:☆★☆:***爆破①)後就是為了避開檢測註冊資訊同時也使程式省省力氣--太過疲勞不好^_^;再來驗證是否成功了,結果是“編譯”按鈕和選單沒再變灰,但點“編譯”時標題的數量在某程度上會不工作,呵呵,看來是有暗樁的,有人說Delph程式很清晰條理,果然,我們查詢一下“字串參考”,看看有沒有“Compile”的傢伙,發現了嗎:
004E3577 . 68 2C394E00 PUSH VCHM.004E392C ASCII "Start Building ... "
004E357C . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
004E357F . 50 PUSH EAX
004E3580 . A1 00164F00 MOV EAX,DWORD PTR DS:[4F1600]
004E3585 . 8B00 MOV EAX,DWORD PTR DS:[EAX]
004E3587 . B9 48394E00 MOV ECX,VCHM.004E3948 ASCII "BeginCompile"
004E358C . BA 60394E00 MOV EDX,VCHM.004E3960 ASCII "MainForm"
同樣也是向上找找一些關鍵的比較、跳轉作分析,然後跟蹤看看改改的^_^(參:☆★☆:***爆破②),你也完全可以在點按下“編譯”前,下斷一些你認為能夠中斷的函式……進行你自己的跟蹤^_^
輸入的“使用者名稱:”和“註冊碼:”只檢測使用者名稱長度,並會分別儲存到登錄檔"SoftWare\XgSoft\Visual CHM 3.0\"的"Email"和"RegisterCode",在重啟才計算註冊碼和使用者名稱》
004D46A9 |. E8 1628FAFF CALL VCHM.00476EC4
004D46AE |. B1 01 MOV CL,1
004D46B0 |. BA 28484D00 MOV EDX,VCHM.004D4828 ASCII "SoftWare\XgSoft\Visual CHM 3.0\"
……
004D46ED |. 83F8 21 CMP EAX,21
004D46F0 |. 7E 2B JLE SHORT VCHM.004D471D
004D46F2 |> 68 50484D00 PUSH VCHM.004D4850 ASCII "The length of the user name must range from 6 to 32"
……
004D4755 |. /74 26 JE SHORT VCHM.004D477D
004D4757 |> |68 B0484D00 PUSH VCHM.004D48B0 ASCII "Please restart the progamme and make sure of the successful registration !"
004D40BB |. BA F0434D00 MOV EDX,VCHM.004D43F0 ASCII "RegForm"
004D40C0 |. 8BC3 MOV EAX,EBX 註冊對話方塊標題
……
004D40E1 |. B1 01 MOV CL,1 下面是對“註冊對話方塊”輸入內容進行讀取
004D40E3 |. BA 00444D00 MOV EDX,VCHM.004D4400 ASCII "SoftWare\XgSoft\Visual CHM 3.0\"
004D40E8 |. 8BC6 MOV EAX,ESI
004D40EA |. E8 392EFAFF CALL VCHM.00476F28
004D40EF |. 8D4D FC LEA ECX,DWORD PTR SS:[EBP-4]
004D40F2 |. BA 28444D00 MOV EDX,VCHM.004D4428 ASCII "Email"
……
004D4107 |. E8 80B8F7FF CALL VCHM.0044F98C
004D410C |. 8D4D F8 LEA ECX,DWORD PTR SS:[EBP-8]
004D410F |. BA 38444D00 MOV EDX,VCHM.004D4438 ASCII "RegisterCode"
004E3071 . 8338 00 CMP DWORD PTR DS:[EAX],0 是否匯入了*.VCM
004E3074 . 75 10 JNZ SHORT VCHM.004E3086
004E3076 . 8B15 70144F00 MOV EDX,DWORD PTR DS:[4F1470] VCHM.004F2C3C
004E307C . 8B12 MOV EDX,DWORD PTR DS:[EDX]
004E307E . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004E3081 . E8 3EAEFFFF CALL VCHM.004DDEC4 詢問儲存位置和型別
004E3086 > A1 04124F00 MOV EAX,DWORD PTR DS:[4F1204]
004E308B . 8338 00 CMP DWORD PTR DS:[EAX],0 是否點按了“取消”
004E308E . 0F84 21080000 JE VCHM.004E38B5
--往後有一段段驗證算碼的,呵呵這裡就不貼了……
☆★☆:
多次跟蹤,發現重啟只對註冊碼和使用者名稱進行計算,而不作比較,驗證會放在匯入標題數目過15、點選“編譯”標題數目超過52項、和開啟註冊對話方塊。
那麼光解除功能限制,只需爆破兩處地方:
004E430A |. 83F8 10 CMP EAX,10 限制編譯15個標題跳向驗證的地方
004E430D |. 7D 34 JGE SHORT VCHM.004E4343 ***爆破①:將這句指令改成nop***
004E3433 . 83F8 34 CMP EAX,34 比較是否超過 52 項跳向驗證的地方
004E3436 . 7E 0A JLE SHORT VCHM.004E3442 ***爆破②:將Jle改成Jmp***
004E3438 . 807D EF 00 CMP BYTE PTR SS:[EBP-11],0 [EBP-11]=[77FA23]值關鍵比較之一
004E335A 32C0 XOR AL,AL ***爆破②:關鍵點之一 改成XOR AL,DL***
004E335C . 74 04 JE SHORT VCHM.004E3362
004E335E > 33C0 XOR EAX,EAX
004E3360 . EB 02 JMP SHORT VCHM.004E3364
004E3362 > B0 01 MOV AL,1 標誌位之一
004E3364 > 8845 EF MOV BYTE PTR SS:[EBP-11],AL
★☆★:
改演算法(有侷限性:只支援等於10位長度的使用者名稱):
由於計碼實在太長,要看個清清楚楚明明白白實在折磨人(烤你耐性),有機會再搞出來,偶只是找出生成關鍵比較碼的某地方!
004E6F5D |. 8B00 MOV EAX,DWORD PTR DS:[EAX] 啟動檢測
004E6F5F |. BA EC874E00 MOV EDX,VCHM.004E87EC ASCII "Email"
004E6F64 |. E8 B702F9FF CALL VCHM.00477220
004E6F69 |. 8B85 28FEFFFF MOV EAX,DWORD PTR SS:[EBP-1D8] 使用者名稱
……往後有一大段檢測和算碼的,這裡就不貼了……
004E771E |. E8 B1D9F1FF |CALL VCHM.004050D4
004E7723 |. 885C30 FF |MOV BYTE PTR DS:[EAX+ESI-1],BL ***這裡產生最終之一計算使用者名稱(與使用者名稱長度相等)關鍵比較碼的地方***
……
004E7B26 |. E8 A9D5F1FF |CALL VCHM.004050D4
004E7B2B |. 8B55 E0 |MOV EDX,DWORD PTR SS:[EBP-20]
004E7B2E |. 885C10 FF |MOV BYTE PTR DS:[EAX+EDX-1],BL ***這裡生成10位關鍵對比碼的地方 ***
在驗證比較時,會取和,如果的長度不為10,就會再度進行計算,這會令比較碼又變來變去了,但好像始終沒變,呵呵,偶就想了個偷懶的辦法(使用者名稱要求必須10位長度,使用者名稱、註冊碼任意!)
……
004E770C 83FB 61 CMP EBX,61 改成:"MOV BL,41"+"Nop"
004E770F 7D 05 JGE SHORT VCHM.004E7716 改成:JMP SHORT 004E7716
……
004E7AD5 48 DEC EAX 改成:Nop去
004E7AD6 83F8 00 CMP EAX,0
004E7AD9 |. 7C 60 JL SHORT VCHM.004E7B3B
……
004E7B14 83FB 61 CMP EBX,61 改成: "MOV BL,41"+"Nop"
004E7B17 7D 05 JGE SHORT VCHM.004E7B1E 改成: JMP SHORT 004E7B1E
這樣改了:輸入特定長度使用者名稱後重啟開啟註冊對話方塊時,就發現了“註冊成功!”字樣和“購買”按鈕不見了,同時註冊填寫處鎖死了、功能開放了,應該跟真正註冊差不多吧!
相關文章
- Visual Zip Password Recovery 4.0破解
(1千字)2000-10-13
- Visual CHM2.x的加密演算法 (1千字)2001-10-13加密演算法
- 用W32DASM破解JPEG Optimizer 4.0 (8千字)2000-02-21ASM
- 如何破解CuteFTP 4.0 (5千字)2000-07-20FTP
- CHM瀏覽器破解+演算法分析2004-06-04瀏覽器演算法
- ACDSEE4.0的破解手記 (1千字)2002-01-20
- dfx V4.0破解過程 (10千字)2000-09-24
- winimage完全破解 (8千字)2001-07-04
- Java 程式的破解方法 (8千字)2002-08-15Java
- 我的破解心得(8) (2千字)2001-03-13
- 破解心得之CDRWin 4.0A BETA篇 (18千字)2001-04-24
- 密碼大師4.0破解過程 (3千字)2001-05-06密碼
- 破解<<破解堅盾磁碟加密系統 V4.0>>的全過程 (10千字)2001-10-23加密
- 破解Don't Panic! 4.0(我又來了) (5千字)2001-06-22
- PwlTool的功能限制的破解---DDXia[CCG] (8千字)2001-03-10
- 《chm幫助編輯器V2.61》註冊碼破解心得: (11千字)2001-02-17
- 《漂葉網咖管理系統4.0》破解心得: (9千字)2001-01-14
- 電腦幽靈pcGhost4.0破解實錄 (7千字)2001-03-07
- 破解OICQ的密碼演算法 (6千字)2001-06-25密碼演算法
- ThemeFreak V1.6破解 (8千字)2001-03-07
- 炒股理財1.65破解方法 (8千字)2001-04-13
- Trojan Remover 4.3.0破解手記 (8千字)2001-08-31REM
- 破解GIF Movie Gear 3.01 (8千字)2002-03-13
- Lockup2000 v4.0破解實戰 (7千字)2001-11-06
- 如何完美破解winhex9.73的功能限制! (8千字)2001-03-13
- Embird32 防破解技術的分析 (8千字)2001-04-29
- 乾涸的(Asp maker version 2.2 破解手記) (8千字)2015-11-15
- 《NetStat4.0的破解實錄》---->為申請FCG而做 (10千字)2001-06-17
- 菜鳥破解錄之 GIF Construction Set Pro及演算法分析
(8千字)2000-09-01Struct演算法
- winxp總管破解筆記(一) (8千字)2002-10-07筆記
- 破解WS_FTP Pro 7.02 (8千字)2001-10-28FTP
- SeaMoon Pic Hunter 1.2破解手記 (8千字)2015-11-15
- 破解Visual Zip Password Recovery Processor
v3.2 初級 (3千字)2000-02-27
- 有聲有色4.0註冊演算法 一 (11千字)2001-05-01演算法
- 國產新軟破解實錄(二) -- 電子收藏家4.0 (1千字)2001-02-27
- ACDSee 4.0 Trial
Version和FotoCanvas Lite Trial Version時間限制破解 (7千字)2002-03-30Canvas
- Password Keeper v6.3破解過程 (8千字)2002-04-12
- 破解華琦庫管精靈1.2.4 (8千字)2000-09-11