• 标 题:WinRAR v3.0 Beta 4 破解過程-我是這樣破 (3千字)
  • 作 者:夢幻紫雲
  • 时 间:2002-3-7 16:55:31
  • 链 接:http://bbs.pediy.com

破解工具:TRW V1.23、W32DASM、HIEW v6.81
首先解決啟動WINRAR 在左上會看到evaluation copy字樣、在 About Winrar看到 40 days trial copy 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0043621E(C)
|
:00436610 833D9CC5490000          cmp dword ptr [0049C59C], 00000000
:00436617 754D                    jne 00436666
:00436619 803D6C4B480000          cmp byte ptr [00484B6C], 00
:00436620 7544                    jne 00436666
:00436622 803D14494A0000          cmp byte ptr [004A4914], 00
:00436629 753B                    jne 00436666
:0043662B 803D38CC480000          cmp byte ptr [0048CC38], 00  -->>這個就是關鍵
:00436632 7532                    jne 00436666
:00436634 A1D0CE4900              mov eax, dword ptr [0049CED0]
:00436639 83F828                  cmp eax, 00000028 -->>40天的限制,向上看
:0043663C 7F04                    jg 00436642
:0043663E 85C0                    test eax, eax
:00436640 7D24                    jge 00436666

看看是那裡使[0048CC38]值改變

* Reference To: USER32.FlashWindow, Ord:0000h
                                  |
:0043E13D E8B82B0400              Call 00480CFA
:0043E142 B001                    mov al, 01
:0043E144 E8E7D7FCFF              call 0040B930  進去看看囉
:0043E149 A238CC4800              mov byte ptr [0048CC38], al 這裡會改變, 向上看
:0043E14E 6A00                    push 00000000
:0043E150 FF35009F4900            push dword ptr [00499F00]


* Referenced by a CALL at Addresses:
|:004360C0  , :004362EE  , :0043E144  , :0043EA90 
|
:0040B930 55                      push ebp
:0040B931 8BEC                    mov ebp, esp
:0040B933 81C404F0FFFF            add esp, FFFFF004
:0040B939 50                      push eax
:0040B93A 81C448FDFFFF            add esp, FFFFFD48
:0040B940 53                      push ebx
:0040B941 56                      push esi
:0040B942 57                      push edi
:0040B943 8885E3FEFFFF            mov byte ptr [ebp+FFFFFEE3], al
:0040B949 BE34C64800              mov esi, 0048C634

* Possible Reference to Dialog: 
                                  |
:0040B94E B838224800              mov eax, 00482238
:0040B953 E854770600              call 004730AC
:0040B958 8D95C8FAFFFF            lea edx, dword ptr [ebp+FFFFFAC8]

* Possible StringData Ref from Data Obj ->"rarreg.*" 這是KeyFile
                                  |
:0040B95E B85F1E4800              mov eax, 00481E5F
:0040B963 E815F5FFFF              call 0040AE7D
:0040B968 84C0                    test al, al
:0040B96A 7514                    jne 0040B980  如果沒有這個檔案就跳
:0040B96C 33C0                    xor eax, eax  就改這裡~ 33 C0 =>> B0 01 就是 mov al,1
:0040B96E 8B95E4FEFFFF            mov edx, dword ptr [ebp+FFFFFEE4]
:0040B974 64891500000000          mov dword ptr fs:[00000000], edx
:0040B97B E9CF050000              jmp 0040BF4F

到這裡已解決啟動 evaluation copy字樣、40 days trial copy字樣

接下來是解功能限制 Put authenticity vetification
ALT+A後,在右下看到Archiving options中其中一個選項~選則後,
出現 Available in registered version only

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00440D82(C)
|
:00440DAA 803D38CC480000          cmp byte ptr [0048CC38], 00
:00440DB1 7410                    je 00440DC3
:00440DB3 803D34C6480000          cmp byte ptr [0048C634], 00
:00440DBA 7507                    jne 00440DC3
:00440DBC C60538CC480000          mov byte ptr [0048CC38], 00 看~這裡被設0
                                                            把 C60538CC480000
                                改 C60538CC480001

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00440DB1(C), :00440DBA(C)
|
:00440DC3 C605E8484A0001          mov byte ptr [004A48E8], 01
:00440DCA 803DD9484A0000          cmp byte ptr [004A48D9], 00
:00440DD1 7410                    je 00440DE3
:00440DD3 33C9                    xor ecx, ecx