• 标 题:极速火龙 CD压缩器 (1千字)
  • 作 者:xiejialiang
  • 时 间:2001-8-28 12:17:15
  • 链 接:http://bbs.pediy.com

我所说的是极速火龙 CD压缩器的注册机,它的注册码生成过程是这样的:

0167:00476907  MOV      EAX,[EBP-08]//读取用户名前面的4位字符
0167:0047690A  MOV      AL,[EAX]//获取ASCII码
0167:0047690C  MOV      [EBP-04],AL
0167:0047690F  MOV      EAX,[EBP-08]
0167:00476912  MOV      AL,[EAX+01]
0167:00476915  MOV      [EBP-03],AL
0167:00476918  MOV      EAX,[EBP-08]
0167:0047691B  MOV      AL,[EAX+02]
0167:0047691E  MOV      [EBP-02],AL
0167:00476921  MOV      EAX,[EBP-08]
0167:00476924  MOV      AL,[EAX+03]
0167:00476927  MOV      [EBP-01],AL
0167:0047692A  LEA      EDX,[EBP-0C]
0167:0047692D  MOV      EAX,[EBX+02EC]
0167:00476933  CALL    0042D598
0167:00476938  MOV      EAX,[EBP-0C]
0167:0047693B  CALL    00408704
0167:00476940  MOV      EBX,EAX
0167:00476942  XOR      EAX,EAX
0167:00476944  POP      EDX
0167:00476945  POP      ECX
0167:00476946  POP      ECX
0167:00476947  MOV      [FS:EAX],EDX
0167:0047694A  JMP      SHORT 00476958
0167:0047694C  JMP      004032B0
0167:00476951  XOR      EBX,EBX
0167:00476953  CALL    0040360C
0167:00476958  MOVSX    EAX,BYTE [EBP-04]//将4个ASCII码相加
0167:0047695C  MOVSX    EDX,BYTE [EBP-03]
0167:00476960  ADD      EAX,EDX
0167:00476962  MOVSX    EDX,BYTE [EBP-02]
0167:00476966  ADD      EAX,EDX
0167:00476968  MOVSX    EDX,BYTE [EBP-01]
0167:0047696C  ADD      EAX,EDX
0167:0047696E  IMUL    EAX,EAX,00BC614E//将加后的和转换成16制数字,并且乘以BC614E,获取16制的数字
0167:00476974  MOV      ECX,BB//将ECX赋值10制数字187
0167:00476979  CDQ//将EAX*BC614E的16制的数字转换成10制 
0167:0047697A  IDIV    ECX//然后除以187
0167:0047697C  CMP      EBX,EAX//EAX就是正确的注册码。

上面的注册码生成过程,在您的帮助下,我还是没有办法用VB写出注册机,也许是我的水平太差了吧。上面的过程您可以写出注册机,无论是VB或者是VC,请告诉我正确的注册机该怎样写,谢谢了。

  • 标 题:帖这个的注册机~~~~~~~ (580字)
  • 作 者:伪装者[CCG]
  • 时 间:2001-8-28 13:48:36

#include "stdio.h"
main()
{
static char string[20];
int i;
long c,e=0;
start:printf("*********SpeedDragon 1.2*********\nThis keygen is made by Pretender\nPlease input your name : ");
gets(string);
for(i=0;i<4;i++)
{c=string[i];e+=c;}
e*=0xbc614e;
e/=0xbb;
if(e>1000) printf("Your Register code is  : %ld",e);
else {printf("You must change your username!\n");goto start;}
printf("\n *****************************      ---    ---    ---\n *Welcome to WWW.CRACKNOW.COM*      /      /      / --\n *****************************      ---    ---    --/\n");
}