盜文高手(DownFiles) Ver1.3 註冊演算法

看雪資料發表於2015-11-15

軟體名稱:盜文高手(DownFiles)

軟體版本:Ver1.3

軟體功能:
您是否常常因自己好不容易從網上查詢的寶貴資料不知放到哪裡而急得直抓頭髮嗎?您是否常常把寶貴的時間浪費在複製、貼上的重複工作上了呢?盜文高手(DownFiles)就是為了解決這些問題而寫的,本軟體可使您一次點選就能取得想要的文章,並且透過樹型目錄管理,及智慧化的自動整理文章,使您即節省時間又能把抓取的文章管理得井井有條。


未註冊版啟動時有30秒延遲

破解工具:W32Dasm、OllyDbg

破解過程:


W32Dasm反彙編


:0051C7B5 648920                  mov dword ptr fs:[eax], esp
:0051C7B8 8D55F8                  lea edxdword ptr [ebp-08]
:0051C7BB 8B83F8020000            mov eaxdword ptr [ebx+000002F8]
:0051C7C1 E81E40F5FF              call 004707E4
:0051C7C6 8B45F8                  mov eaxdword ptr [ebp-08]
:0051C7C9 50                      push eax
:0051C7CA 8D55F4                  lea edxdword ptr [ebp-0C]
:0051C7CD 8B8314030000            mov eaxdword ptr [ebx+00000314]
:0051C7D3 E80C40F5FF              call 004707E4
:0051C7D8 8B55F4                  mov edxdword ptr [ebp-0C]               |機器碼504848328369
:0051C7DB 8BC6                    mov eaxesi                              |
:0051C7DD 59                      pop ecx
:0051C7DE E88167F7FF              call 00492F64                             |關鍵Call進入
:0051C7E3 84C0                    test alal
:0051C7E5 0F84CE000000            je 0051C8B9                               |出錯跳轉
:0051C7EB B201                    mov dl, 01

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0051C77E(C)
|
:0051C7ED A1105D4400              mov eaxdword ptr [00445D10]
:0051C7F2 E81996F2FF              call 00445E10
:0051C7F7 8945FC                  mov dword ptr [ebp-04], eax
:0051C7FA BA01000080              mov edx, 80000001
:0051C7FF 8B45FC                  mov eaxdword ptr [ebp-04]
:0051C802 E8A996F2FF              call 00445EB0
:0051C807 33C0                    xor eaxeax
:0051C809 55                      push ebp
:0051C80A 68B2C85100              push 0051C8B2
:0051C80F 64FF30                  push dword ptr fs:[eax]
:0051C812 648920                  mov dword ptr fs:[eax], esp
:0051C815 B101                    mov cl, 01

* Possible StringData Ref from Code Obj ->"SOFTWAREDownFiles"
                                  |
:0051C817 BAF4C85100              mov edx, 0051C8F4
:0051C81C 8B45FC                  mov eaxdword ptr [ebp-04]
:0051C81F E8F096F2FF              call 00445F14

* Possible StringData Ref from Code Obj ->"myK"
                                  |
:0051C824 BA10C95100              mov edx, 0051C910
:0051C829 8B45FC                  mov eaxdword ptr [ebp-04]
:0051C82C E81F9AF2FF              call 00446250
:0051C831 84C0                    test alal
:0051C833 751E                    jne 0051C853
:0051C835 8D55F0                  lea edxdword ptr [ebp-10]
:0051C838 8B83F8020000            mov eaxdword ptr [ebx+000002F8]
:0051C83E E8A13FF5FF              call 004707E4
:0051C843 8B4DF0                  mov ecxdword ptr [ebp-10]

* Possible StringData Ref from Code Obj ->"myK"
                                  |
:0051C846 BA10C95100              mov edx, 0051C910
:0051C84B 8B45FC                  mov eaxdword ptr [ebp-04]
:0051C84E E87D98F2FF              call 004460D0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0051C833(C)
|

* Possible StringData Ref from Code Obj ->"myN"
                                  |
:0051C853 BA1CC95100              mov edx, 0051C91C
:0051C858 8B45FC                  mov eaxdword ptr [ebp-04]
:0051C85B E8F099F2FF              call 00446250
:0051C860 84C0                    test alal
:0051C862 751E                    jne 0051C882
:0051C864 8D55EC                  lea edxdword ptr [ebp-14]
:0051C867 8B83FC020000            mov eaxdword ptr [ebx+000002FC]
:0051C86D E8723FF5FF              call 004707E4
:0051C872 8B4DEC                  mov ecxdword ptr [ebp-14]

* Possible StringData Ref from Code Obj ->"myN"
                                  |
:0051C875 BA1CC95100              mov edx, 0051C91C
:0051C87A 8B45FC                  mov eaxdword ptr [ebp-04]
:0051C87D E84E98F2FF              call 004460D0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0051C862(C)
|
:0051C882 8B45FC                  mov eaxdword ptr [ebp-04]
:0051C885 E8F695F2FF              call 00445E80
:0051C88A 33C0                    xor eaxeax
:0051C88C 5A                      pop edx
:0051C88D 59                      pop ecx
:0051C88E 59                      pop ecx
:0051C88F 648910                  mov dword ptr fs:[eax], edx
:0051C892 68C3C85100              push 0051C8C3

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0051C8B7(U)
|
:0051C897 8B45FC                  mov eaxdword ptr [ebp-04]
:0051C89A E8B96DEEFF              call 00403658
:0051C89F A1BCBF5400              mov eaxdword ptr [0054BFBC]
:0051C8A4 C60001                  mov byte ptr [eax], 01

* Possible StringData Ref from Code Obj ->"謝謝您註冊本軟體,您註冊成功了!"
                                  |
:0051C8A7 B828C95100              mov eax, 0051C928
:0051C8AC E8C3E5F1FF              call 0043AE74
:0051C8B1 C3                      ret


:0051C8B2 E93575EEFF              jmp 00403DEC
:0051C8B7 EBDE                    jmp 0051C897

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0051C7E5(C)
|

* Possible StringData Ref from Code Obj ->"註冊碼錯誤!"
                                  |
:0051C8B9 B850C95100              mov eax, 0051C950
:0051C8BE E8B1E5F1FF              call 0043AE74
:0051C8C3 33C0                    xor eaxeax
:0051C8C5 5A                      pop edx
:0051C8C6 59                      pop ecx
:0051C8C7 59                      pop ecx
:0051C8C8 648910                  mov dword ptr fs:[eax], edx
:0051C8CB 68E5C85100              push 0051C8E5



註冊演算法:(OllyDbg動態跟蹤)

00492F64    /$ 55             PUSH EBP
00492F65    |. 8BEC           MOV EBP,ESP
00492F67    |. 51             PUSH ECX
00492F68    |. B9 04000000    MOV ECX,4
00492F6D    |> 6A 00          PUSH 0
00492F6F    |. 6A 00          PUSH 0
00492F71    |. 49             DEC ECX
00492F72    |.^75 F9          JNZ SHORT DownFile.00492F6D
00492F74    |. 51             PUSH ECX
00492F75    |. 874D FC        XCHG DWORD PTR SS:[EBP-4],ECX
00492F78    |. 53             PUSH EBX
00492F79    |. 56             PUSH ESI
00492F7A    |. 894D F8        MOV DWORD PTR SS:[EBP-8],ECX
00492F7D    |. 8955 FC        MOV DWORD PTR SS:[EBP-4],EDX
00492F80    |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
00492F83    |. E8 741AF7FF    CALL DownFile.004049FC
00492F88    |. 8B45 F8        MOV EAX,DWORD PTR SS:[EBP-8]
00492F8B    |. E8 6C1AF7FF    CALL DownFile.004049FC
00492F90    |. 33C0           XOR EAX,EAX
00492F92    |. 55             PUSH EBP
00492F93    |. 68 C2304900    PUSH DownFile.004930C2
00492F98    |. 64:FF30        PUSH DWORD PTR FS:[EAX]
00492F9B    |. 64:8920        MOV DWORD PTR FS:[EAX],ESP
00492F9E    |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]
00492FA1    |. E8 A615F7FF    CALL DownFile.0040454C
00492FA6    |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]                     
00492FA9    |. E8 5E18F7FF    CALL DownFile.0040480C                           
00492FAE    |. 8BF0           MOV ESI,EAX                                      
00492FB0    |. 85F6           TEST ESI,ESI                                    
00492FB2    |. 7E 39          JLE SHORT DownFile.00492FED                      
00492FB4    |. BB 01000000    MOV EBX,1                                        
00492FB9    |> 8BC3           MOV EAX,EBX                                      
00492FBB    |. 25 01000080    AND EAX,80000001                                
00492FC0    |. 79 05          JNS SHORT DownFile.00492FC7                     
00492FC2    |. 48             DEC EAX                                         
00492FC3    |. 83C8 FE        OR EAX,FFFFFFFE                                
00492FC6    |. 40             INC EAX                                         
00492FC7    |> 85C0           TEST EAX,EAX                                    
00492FC9    |. 75 1E          JNZ SHORT DownFile.00492FE9                      
00492FCB    |. 8D45 F0        LEA EAX,DWORD PTR SS:[EBP-10]                   
00492FCE    |. 50             PUSH EAX                                       
00492FCF    |. B9 01000000    MOV ECX,1                                      
00492FD4    |. 8BD3           MOV EDX,EBX                                    
00492FD6    |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]                  
00492FD9    |. E8 92F4FAFF    CALL DownFile.00442470                          
00492FDE    |. 8B55 F0        MOV EDX,DWORD PTR SS:[EBP-10]                   
00492FE1    |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]                   
00492FE4    |. E8 2B18F7FF    CALL DownFile.00404814                          
00492FE9    |> 43             INC EBX                                         
00492FEA    |. 4E             DEC ESI                                        
00492FEB    |.^75 CC          JNZ SHORT DownFile.00492FB9                    
00492FED    |> 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]                    
00492FF0    |. 8B55 F4        MOV EDX,DWORD PTR SS:[EBP-C]
00492FF3    |. E8 EC15F7FF    CALL DownFile.004045E4
00492FF8    |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]
00492FFB    |. E8 4C15F7FF    CALL DownFile.0040454C
00493000    |. 8D4D E8        LEA ECX,DWORD PTR SS:[EBP-18]

以上程式碼用來取機器碼的偶數位組成新的數字串504848328369→088239

00493003    |. BA 02000000    MOV EDX,2
00493008    |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]                 
0049300B    |. E8 6CF3FAFF    CALL DownFile.0044237C                           |取首2位(08)
00493010    |. 8B45 E8        MOV EAX,DWORD PTR SS:[EBP-18]                    |  
00493013    |. E8 9463F7FF    CALL DownFile.004093AC                           |0*A+8=8
00493018    |. 8BD0           MOV EDX,EAX                                      |EDX=EAX=8
0049301A    |. C1E0 03        SHL EAX,3                                        |EAX=EAX SHL 3=40
0049301D    |. 2BC2           SUB EAX,EDX                                      |EAX=EAX-EDX=38
0049301F    |. 8D55 EC        LEA EDX,DWORD PTR SS:[EBP-14]                    |
00493022    |. E8 4962F7FF    CALL DownFile.00409270                           |十六進位制到十進位制"56"
00493027    |. 8B55 EC        MOV EDX,DWORD PTR SS:[EBP-14]                    |
0049302A    |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]                     |
0049302D    |. E8 E217F7FF    CALL DownFile.00404814                           |
00493032    |. 8D4D E0        LEA ECX,DWORD PTR SS:[EBP-20]                    |
00493035    |. BA 02000000    MOV EDX,2                                        |
0049303A    |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]                     |
0049303D    |. E8 AAF3FAFF    CALL DownFile.004423EC                           |取最後2位(39)
00493042    |. 8B45 E0        MOV EAX,DWORD PTR SS:[EBP-20]                    |
00493045    |. E8 6263F7FF    CALL DownFile.004093AC                           |3*A+9=27
0049304A    |. C1E0 03        SHL EAX,3                                        |EAX=EAX SHL 3=138
0049304D    |. 8D55 E4        LEA EDX,DWORD PTR SS:[EBP-1C]                    |
00493050    |. E8 1B62F7FF    CALL DownFile.00409270                           |十六進位制到十進位制"312"
00493055    |. 8B55 E4        MOV EDX,DWORD PTR SS:[EBP-1C]                    |EDX=312
00493058    |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]                     |
0049305B    |. E8 B417F7FF    CALL DownFile.00404814                           |
00493060    |. 8D45 D8        LEA EAX,DWORD PTR SS:[EBP-28]                    |
00493063    |. 50             PUSH EAX                                         |
00493064    |. B9 02000000    MOV ECX,2                                        |
00493069    |. BA 03000000    MOV EDX,3                                        |
0049306E    |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]                     |
00493071    |. E8 FAF3FAFF    CALL DownFile.00442470                           |取中間2位(82)
00493076    |. 8B45 D8        MOV EAX,DWORD PTR SS:[EBP-28]                    |
00493079    |. E8 2E63F7FF    CALL DownFile.004093AC                           |8*A+2=52
0049307E    |. 8D0440         LEA EAX,DWORD PTR DS:[EAX+EAX*2]                 |52*3=F6
00493081    |. 8D55 DC        LEA EDX,DWORD PTR SS:[EBP-24]                    |
00493084    |. E8 E761F7FF    CALL DownFile.00409270                           |十六進位制到十進位制"246"
00493089    |. 8B55 DC        MOV EDX,DWORD PTR SS:[EBP-24]
0049308C    |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]
0049308F    |. E8 8017F7FF    CALL DownFile.00404814
00493094    |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]                     |真註冊碼56312246
00493097    |. 8B55 F8        MOV EDX,DWORD PTR SS:[EBP-8]                     |假註冊碼
0049309A    |. E8 B918F7FF    CALL DownFile.00404958
0049309F    |. 75 04          JNZ SHORT DownFile.004930A5
004930A1    |. B3 01          MOV BL,1
004930A3    |. EB 02          JMP SHORT DownFile.004930A7
004930A5    |> 33DB           XOR EBX,EBX
004930A7    |> 33C0           XOR EAX,EAX
004930A9    |. 5A             POP EDX
004930AA    |. 59             POP ECX
004930AB    |. 59             POP ECX
004930AC    |. 64:8910        MOV DWORD PTR FS:[EAX],EDX
004930AF    |. 68 C9304900    PUSH DownFile.004930C9
004930B4    |> 8D45 D8        LEA EAX,DWORD PTR SS:[EBP-28]
004930B7    |. BA 0A000000    MOV EDX,A
004930BC    |. E8 AF14F7FF    CALL DownFile.00404570
004930C1    . C3             RETN
004930C2     .^E9 250DF7FF    JMP DownFile.00403DEC
004930C7     .^EB EB          JMP SHORT DownFile.004930B4
004930C9     . 8BC3           MOV EAX,EBX
004930CB     . 5E             POP ESI
004930CC     . 5B             POP EBX
004930CD     . 8BE5           MOV ESP,EBP
004930CF     . 5D             POP EBP
004930D0     . C3             RETN


註冊演算法:

1、取機器碼(12位長度)的偶數位構成新的數字(6位長度)
   504848328369→088239

2、取新數字首2位乘7
   08:08*7 =56

3、取新數字末2位乘8
   39:39*8=312

4、取新數字中間2位,乘3
   82:82*3=246

5、將結果連線起來構成新數字56312246就是註冊碼。

相關文章