新狐傳真群發2.0註冊演算法分析

看雪資料發表於2003-06-29

新狐傳真群發2.0註冊演算法分析

物件:新狐傳真群發2.0
作者:lordor[CCG][BCG][DFCG]
Mail:lordor@sina.com
QQ:88378557
目的:屬技術交流,無其它目的,請不要任意散佈或用用商業用途。初學破解,如有不對的地方歡迎批評指出。
工具:ollydbg1.09C,fi301,dede3.2

軟體下載地址:http://www.8715.com

假設:
軟體序列號碼:424844352
登記註冊碼:87654321

一、使用dede查詢核心模組:

使用dede開啟程式,找到
speedbutton10click
在這裡有註冊資訊,抄下第一句,為後面動態分析
004D1B04   55                     push    ebp

二、動態分析,瞭解註冊過程

用ollydbg載入程式,在004D1B04下斷,輸入註冊碼,會斷到這裡

004D1B04  /.  55            PUSH EBP
004D1B05  |.  8BEC          MOV EBP,ESP
004D1B07  |.  83C4 E0       ADD ESP,-20
004D1B0A  |.  53            PUSH EBX
004D1B0B  |.  33C9          XOR ECX,ECX
004D1B0D  |.  894D E0       MOV DWORD PTR SS:[EBP-20],ECX
004D1B10  |.  894D F4       MOV DWORD PTR SS:[EBP-C],ECX
004D1B13  |.  8BD8          MOV EBX,EAX
004D1B15  |.  33C0          XOR EAX,EAX
004D1B17  |.  55            PUSH EBP
004D1B18  |.  68 201C4D00   PUSH faxsky.004D1C20
004D1B1D  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004D1B20  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004D1B23  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
004D1B26  |.  BA 341C4D00   MOV EDX,faxsky.004D1C34                  ;  ASCII "00000000"
004D1B2B  |.  E8 5C35F3FF   CALL faxsky.0040508C
004D1B30  |.  8D4D F4       LEA ECX,DWORD PTR SS:[EBP-C]
004D1B33  |.  BA 481C4D00   MOV EDX,faxsky.004D1C48
004D1B38  |.  B8 681C4D00   MOV EAX,faxsky.004D1C68
004D1B3D  |.  E8 C2CEF6FF   CALL faxsky.0043EA04                     ;  取得輸入的註冊碼
004D1B42  |.  3C 01         CMP AL,1
004D1B44  |.  0F85 B8000000 JNZ faxsky.004D1C02                      ;  沒輸入則跳走
004D1B4A  |.  8D55 E0       LEA EDX,DWORD PTR SS:[EBP-20]
004D1B4D  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  註冊碼
004D1B50  |.  E8 837BF3FF   CALL faxsky.004096D8
004D1B55  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]
004D1B58  |.  E8 CB7EF3FF   CALL faxsky.00409A28                     ;  註冊碼轉換為十六進位制表示

,eax=05397FB1
004D1B5D  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX             ;  數05397FB1儲存
004D1B60  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX
004D1B63  |.  6A 00         PUSH 0
004D1B65  |.  6A 42         PUSH 42
004D1B67  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004D1B6A  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
004D1B6D  |.  E8 7A44F3FF   CALL faxsky.00405FEC                     ;  eax=05397FB1/42
004D1B72  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX             ;  eax儲存
004D1B75  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX             ;  餘數儲存
004D1B78  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004D1B7B  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
004D1B7E  |.  2D 33590100   SUB EAX,15933                            ;  eax=eax-15933
004D1B83  |.  83DA 00       SBB EDX,0                                ;  sbb
004D1B86  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX             ;  儲存eax
004D1B89  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX             ;  儲存
004D1B8C  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
004D1B8F  |.  E8 2CE5FFFF   CALL faxsky.004D00C0                     ;  取cup日id,此為6b1
004D1B94  |.  8B4D E4       MOV ECX,DWORD PTR SS:[EBP-1C]
004D1B97  |.  8BC1          MOV EAX,ECX
004D1B99  |.  99            CDQ
004D1B9A  |.  3B55 FC       CMP EDX,DWORD PTR SS:[EBP-4]             ;  比較1,註冊碼必須被42(hex)

整除
004D1B9D  |.  75 4E         JNZ SHORT faxsky.004D1BED
004D1B9F  |.  3B45 F8       CMP EAX,DWORD PTR SS:[EBP-8]             ;  比較2,與cupid比較
004D1BA2  |.  75 49         JNZ SHORT faxsky.004D1BED
004D1BA4  |.  33D2          XOR EDX,EDX
004D1BA6  |.  8B83 88030000 MOV EAX,DWORD PTR DS:[EBX+388]
004D1BAC  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]
004D1BAE  |.  FF51 64       CALL DWORD PTR DS:[ECX+64]
004D1BB1  |.  B2 01         MOV DL,1
004D1BB3  |.  8B83 08030000 MOV EAX,DWORD PTR DS:[EBX+308]
004D1BB9  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]
004D1BBB  |.  FF51 64       CALL DWORD PTR DS:[ECX+64]
004D1BBE  |.  33D2          XOR EDX,EDX
004D1BC0  |.  8B83 94030000 MOV EAX,DWORD PTR DS:[EBX+394]
004D1BC6  |.  E8 9939F7FF   CALL faxsky.00445564
004D1BCB  |.  8B83 B0030000 MOV EAX,DWORD PTR DS:[EBX+3B0]
004D1BD1  |.  E8 E2F3FEFF   CALL faxsky.004C0FB8
004D1BD6  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
004D1BD8  |.  66:8B0D 741C4>MOV CX,WORD PTR DS:[4D1C74]              ; |
004D1BDF  |.  B2 02         MOV DL,2                                 ; |
004D1BE1  |.  B8 801C4D00   MOV EAX,faxsky.004D1C80                  ; |
004D1BE6  |.  E8 FDCCF6FF   CALL faxsky.0043E8E8                     ; \成功
004D1BEB  |.  EB 15         JMP SHORT faxsky.004D1C02
004D1BED  |>  6A 00         PUSH 0                                   ; /Arg1 = 00000000
004D1BEF  |.  66:8B0D 741C4>MOV CX,WORD PTR DS:[4D1C74]              ; |
004D1BF6  |.  B2 01         MOV DL,1                                 ; |
004D1BF8  |.  B8 9C1C4D00   MOV EAX,faxsky.004D1C9C                  ; |
004D1BFD  |.  E8 E6CCF6FF   CALL faxsky.0043E8E8                     ; \出錯框
004D1C02  |>  33C0          XOR EAX,EAX
004D1C04  |.  5A            POP EDX

反推註冊碼:取得cpuid=6b1(hex),加上15933(hex)得15FE4(hex),然後再乘42(hex),得5AB8C8,轉換為十進位制即為5945544

-------------------------------------

三、總結。
註冊碼是出來了,但還是暈倒,註冊完後才發現軟體是不完整的程式,不過可以學一下dede與od配合查詢註冊碼的思路。

cracked by lordor
03.6.29


相關文章