檔案密使2.1破解及註冊演算法,請偽哥幫忙些個機! (4千字)

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

目標軟體:檔案密使2.1
破解人  :TAE![CCG BCG FCG]
保護方法:註冊碼
下載地址:http://newhua.infosail.com/down/jiami.exe

前面的步驟不再敷述,下面是重點!
跟蹤到這裡:
:00415C85 E80E4E0000              Call 0041AA98
:00415C8A 8D8E50160000            lea ecx, dword ptr [esi+00001650]
:00415C90 E82BC3FFFF              call 00411FC0        \\進入
:00415C95 85C0                    test eax, eax
:00415C97 752E                    jne 00415CC7
:00415C99 6A40                    push 00000040

* Possible Reference to Dialog: 
                                  |
:00415C9B 6890814200              push 00428190

* Possible StringData Ref from Data Obj ->"註冊碼錯誤,請重新輸入"
                                  |
:00415CA0 68288F4200              push 00428F28
:00415CA5 8BCB                    mov ecx, ebx

下面是第一段:
:0041204A 8A1C0F                  mov bl, byte ptr [edi+ecx]
:0041204D 8D340F                  lea esi, dword ptr [edi+ecx]
:00412050 8BC3                    mov eax, ebx
:00412052 25FF000000              and eax, 000000FF
:00412057 99                      cdq
:00412058 F7F9                    idiv ecx
:0041205A 8BD0                    mov edx, eax
:0041205C 8AC3                    mov al, bl
:0041205E F6E9                    imul cl
:00412060 02D0                    add dl, al
:00412062 41                      inc ecx
:00412063 83F920                  cmp ecx, 00000020
:00412066 88142E                  mov byte ptr [esi+ebp], dl
:00412069 7CDF                    jl 0041204A
這段程式是算第一個資料串依次放入了esi+ebp,待會說說它的演算法!下面會用到。

:0041206B 8B6C2410                mov ebp, dword ptr [esp+10]
:0041206F 33FF                    xor edi, edi
:00412071 33F6                    xor esi, esi
:00412073 8BC6                    mov eax, esi
:00412075 33C9                    xor ecx, ecx
:00412077 99                      cdq
:00412078 83E203                  and edx, 00000003
:0041207B C6443C1000              mov [esp+edi+10], 00
:00412080 03C2                    add eax, edx
:00412082 C1F802                  sar eax, 02
:00412085 8D440414                lea eax, dword ptr [esp+eax+14]

再看下面這裡:
又一個迴圈!
:00412089 8A1408                  mov dl, byte ptr [eax+ecx]
:0041208C 8A5C3C10                mov bl, byte ptr [esp+edi+10]
:00412090 32DA                    xor bl, dl
:00412092 41                      inc ecx
:00412093 83F908                  cmp ecx, 00000008
:00412096 885C3C10                mov byte ptr [esp+edi+10], bl
:0041209A 7CED                    jl 00412089                  \\內層的小迴圈
將上面得到的資料和使用者名稱連線進行計算!

:0041209C 83C620                  add esi, 00000020      \\大迴圈每迴圈一次esi+20
:0041209F 47                      inc edi               
:004120A0 81FE80000000            cmp esi, 00000080      \\也就是迴圈4次嘍!
:004120A6 7CCB                    jl 00412073            \\外面一層大迴圈!
經過以上四次大迴圈可以得到四個數值!
:004120AE 33C9                    xor ecx, ecx
:004120B0 8A4C040C                mov cl, byte ptr [esp+eax+0C]
:004120B4 03E9                    add ebp, ecx
:004120B6 85C0                    test eax, eax
:004120B8 7406                    je 004120C0
:004120BA C1E508                  shl ebp, 08
:004120BD 48                      dec eax
:004120BE 79EE                    jns 004120AE
這裡試講算出的四個數值連線起來放入ebp,於是這個ebp中數的10進位制值就是正確的註冊碼了!
:004120C0 8B542444                mov edx, dword ptr [esp+44]
:004120C4 8D4C2440                lea ecx, dword ptr [esp+40]
:004120C8 2BEA                    sub ebp, edx
:004120CA C7442438FFFFFFFF        mov [esp+38], FFFFFFFF
:004120D2 F7DD                    neg ebp
:004120D4 1BED                    sbb ebp, ebp
:004120D6 45                      inc ebp
:004120D7 8BF5                    mov esi, ebp

註冊演算法:
姓名以“1234”為例,有4個字元,用名字的最後一個字元
0x34/4=0xD
0x34*4=0xD0
0xD0+0xD=0xDD//資料串中的第一個數
然後就是用
0xDD/5=0x2C
0xDD*5=0xFF51
0x51+0x2C=0x7D//資料串中的第二個數
算出20個數後,將名字和這20個數連線起來形成"31323334DD7D020E7105322AFBD282EE20F0E0AC871"
0x31^0=0x31
0x31^0x32=03
03^0x33=30
做8次這樣的操作以後得到一個數0xA8
外面的大迴圈做4次,於是得到四個數0xA8、0xE0、0x3E、0x00,將四個數反相連線起來得到3EE0A8,
這就是註冊碼的16進位制數,那麼將它換算成十進位制就是正確的註冊碼了!   
一個可用的註冊碼!
使用者名稱:TAE![CCG]
註冊碼:45677

我的序號產生器已經寫了一大半了,可是有些實現為程式的細節不太清楚,所以請偽裝者大哥給寫個序號產生器,
好讓我學協!多謝了!!

相關文章