Universe 1.63註冊碼生成分析及序號產生器原碼(上)
作者:Maomao[CCG][BCG][CNCG]
下載:
http://www.diardsoftware.com/ (最新版本1.63)
說明: 本程式是一個專門用於製作美麗星空圖的軟體,可生成各種各樣的星雲、星空、行星、星系等,可自由調節,效果非常棒,而且沒有加殼。
用TRW載入後下getwindowtexta,執行並註冊,輸入使用者名稱Maomao[CCG]與註冊碼87654321後OK,被中斷,按F5,又被中斷(第一次取使用者名稱,第二次取註冊碼),下BD
*, pmodule後,來到這裡:
0177:00462D65 CALL `USER32!GetWindowTextA`
0177:00462D6B MOV ECX,[EBP+10] <=====游標在這裡
0177:00462D6E PUSH BYTE -01
0177:00462D70 CALL 00456056
0177:00462D75 JMP SHORT 00462D82
按住F10,一直來到這裡:
0177:0040AC87 MOV EDX,[EBP-0C]
0177:0040AC8A ADD EDX,9C
0177:0040AC90 PUSH EDX
0177:0040AC91 MOV ECX,00497950
0177:0040AC96 CALL 00416D8E <=====可疑的call
0177:0040AC9B MOV [EBP-04],EAX
0177:0040AC9E CMP DWORD [EBP-04],BYTE +00
0177:0040ACA2 JZ 0040ACDC <=====跳走就Over了
0177:0040ACA4 MOV EAX,[EBP-0C]
在0177:0040AC96行上設斷,重新註冊跟進去,這個call裡有這樣一段程式:
0177:00416D8E PUSH EBP
0177:00416D8F MOV EBP,ESP
0177:00416D91 SUB ESP,BYTE +08
0177:00416D94 MOV [EBP-04],ECX
0177:00416D97 CMP DWORD [EBP+0C],BYTE +00
0177:00416D9B JNG 00416DA5
0177:00416D9D MOV EAX,[EBP+0C]
0177:00416DA0 MOV [EBP-08],EAX
0177:00416DA3 JMP SHORT 00416DAE
0177:00416DA5 MOV ECX,[EBP-04]
0177:00416DA8 MOV EDX,[ECX+10]
0177:00416DAB MOV [EBP-08],EDX
0177:00416DAE MOV EAX,[EBP+08]
0177:00416DB1 PUSH EAX
0177:00416DB2 CALL 00416844 <=====算註冊碼的call
0177:00416DB7 ADD ESP,BYTE +04
0177:00416DBA XOR ECX,ECX
0177:00416DBC CMP [EBP-08],EAX <=====這裡?EAX可以看到真正註冊碼"603700860"
? EBP-8是輸入的註冊碼"87654321"
0177:00416DBF SETZ CL
<=====設定標誌
0177:00416DC2 MOV EAX,ECX
0177:00416DC4 MOV ESP,EBP
0177:00416DC6 POP EBP
0177:00416DC7 RET 08
程式執行時,時刻檢測所輸註冊碼,直接暴破是沒有用的。修改標誌為1可以使用程式不彈出錯誤框,但無法完成註冊。現在我們得到一個正確的註冊碼:User
Name:Maomao[CCG] User Key:603700860
如果僅滿足於在0177:00416DBC處找出一個註冊碼,對破解水平的提高沒有任何幫助。我們還是要追進算碼的那個call。
(上篇完~~~)