C代码转化为VB6.0代码
发表于:
2006-9-19 01:25
5092
下面一段代码我看不懂,(呵呵,只会VB),请教大家,如何转化为VB6.0的代码?
谢谢大家帮助。
======================================================
void DataProcess(char *name,char *hdid,char *sn)
{
/*
name:用户名
hdid:机器码
sn:注册码
*/
char buf[200];
int hdidlen;
int namelen;
int len;
char *p;
hdidlen=strlen(hdid);
namelen=strlen(name);
memset(buf,0,sizeof(buf));
memcpy((char *)&buf[100],hdid,hdidlen);
memcpy((char *)&buf[76],name,namelen);
strlwr((char *)&buf[76]);
len =strlen((char *)&buf[100]);
p=(char *)&buf[100];
while(len<20)
{
BYTE num=(BYTE)(*p++);
num+=(BYTE)*p;
buf[100+len]=num;
len++;
}
len=strlen((char *)&buf[76]);
p=(char *)&buf[76];
while(len<20)
{
BYTE num=(BYTE)(*p++);
num+=(BYTE)*p;
buf[76+len]=num;
len++;
}
len=0;
p=(char *)&buf[100];
while(len<20)
{
BYTE tmp;
BYTE num=(BYTE)(*p);
_asm
{
xor eax,eax
mov al,num
MOV ESI,EAX
MOV EAX,0x66666667
IMUL ESI
SAR EDX,0x2
MOV EAX,EDX
SHR EAX,0x1F
ADD EDX,EAX
MOV EAX,ESI
mov tmp,DL;
MOV ESI,0x0A
CDQ
IDIV ESI
INC ECX
mov num,DL;
}
*(p-44)=tmp;
*(p-64)=num;
p++;
len++;
}
len=0;
p=(char *)&buf[76];
while(len<10)
{
BYTE num=(BYTE)p[len];
BYTE num2=(BYTE)p[10+len];
num=num^num2;
p[len]=num;
num2=num;
num=p[34+len];
num=num^num2;
num2=p[24+len];
num2=num2^num;
p[24+len]=num2;
len++;
}
len=0;
p=(char *)&buf[36];
while(len<20)
{
BYTE num=p[len];
BYTE num2=p[num+64];
num=p[len+20];
num2=num+num2;
p[len+88]=num2;
len++;
}
len=0;
p=(char *)&buf[124];
while(len<20)
{
BYTE num=p[len];
if(num<0x30)
{
num+=0x30;
p[len]=num;
}
else if(num<=0x7a)
{
}
else if(num>=0x30)
{
num=num%0x4a+0x30;
p[len]=num;
}
len++;
}
len = strlen(p);
memmove((char *)sn,p,len);
}
=================================================================
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)