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。
(上篇完~~~)