能力值:
( LV2,RANK:10 )
|
-
-
26 楼
诚如nig前辈所说,只要改一个二进制位即可。
不过,不是改那个标志位,我昨天晚上把那个标志位改成0,结果程序依然无法运行。后来我找到存放时间常数的地方,年的计算是由 493B XOR 4EED之后得到。我把49改成了46,这样异或之后的结果就从07D6变成了08D6,年的限制就成了2262年。改完后测试成功。
现在还有个小bug,因为狗壳生成的.his文件还在,所以电脑系统的时间在改小之后,程序依然会提示找不到狗,今天一定要把这个bug搞定。
|
能力值:
( LV6,RANK:90 )
|
-
-
27 楼
最初由 北溟 发布 诚如nig前辈所说,只要改一个二进制位即可。
不过,不是改那个标志位,我昨天晚上把那个标志位改成0,结果程序依然无法运行。后来我找到存放时间常数的地方,年的计算是由 493B XOR 4EED之后得到。我把49改成了46,这样异或之后的结果就从07D6变成了08D6,年的限制就成了2262年。改完后测试成功。
现在还有个小bug,因为狗壳生成的.his文件还在,所以电脑系统的时间在改小之后,程序依然会提示找不到狗,今天一定要把这个bug搞定。
呵,修改狗壳时间限制及上面所说的BUG是没问题,网上类似的破解教程多得很,下面还有一个关口,到2007年一过期后就要进行注册,呵,狗+序列号注册,不过没关系,照样可以搞掉,还是比较简单的。呵呵
要是能下载到这个公司的其他软件就好了,最好是网络版,哈
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
注册机代码,没事的试试,看看可以不,我这能注册
//本人写代码习惯不好,请各位将就看吧。
#include "string.h"
#include "stdio.h"
#include <conio.h>
unsigned long getd(unsigned long d) //这段程序代码是从他原程序中抄出来的
{
_asm{
mov eax,d
push ebx
push esi
push edi
push ebp
sub esp,0xC
mov bl,1
lea esi,dword ptr ds:[eax+1]
jmp short _A64
_A26: mov dword ptr ss:[esp+8],esi
fild dword ptr ss:[esp+8]
fsqrt
fstp qword ptr ss:[esp]
wait
fld qword ptr ss:[esp]
call _F4
xor edi,edi
mov ecx,eax
sub ecx,2
jl short _A5B
inc ecx
mov ebp,2
_A4B: mov eax,esi
cdq
idiv ebp
mov eax,edx
test eax,eax
jnz short _A57
inc edi
_A57: inc ebp
dec ecx
jnz short _A4B
_A5B: test edi,edi
jnz short _A63
xor ebx,ebx
jmp short _A64
_A63: inc esi
_A64: test bl,bl
jnz short _A26
mov eax,esi
add esp,0xC
pop ebp
pop edi
pop esi
pop ebx
mov d,eax
jmp next
_F4: sub esp,0xC
fstcw word ptr ss:[esp]
fstcw word ptr ss:[esp+2]
wait
or word ptr ss:[esp+2],0xF00
fldcw word ptr ss:[esp+2]
fistp qword ptr ss:[esp+4]
wait
fldcw word ptr ss:[esp]
pop ecx
pop eax
pop edx
ret
next:
}
return(d);
}
char mkc(char c)
{
if(c<='Z'&&c>='Q'){return('Z'-c+0x30);}
else if(c>='K'&&c<='P'){return(0x50-c+0x41);}
else return('0');
}
char mkc1(char c)
{
if(c>=0x41&&c<=0x4a)return(c-0x11);
else if(c>=0x4b&&c<=0x50)return(c-0xa);
else return('0');
}
int get_c(char c)
{
if(c>='0'&&c<='9')return(c-'0');
else if(c>='A'&&c<='F')return(c-'A'+10);
else return(0);
}
void jc()
{
char oldsn[100]="ZOTTQVZTWQLNBDFFHCDEM";
char newsn[26],shuchu[30];
char c;
int i;
unsigned long sn1,sn2,sn3,sn4;
next:
printf("请输入序列号(大写):");
scanf("%s",oldsn);
if(strlen(oldsn)!=21){printf("序列号必须是21位!!!!\r\n");goto next;}
for(i=0;i<12;i++){
oldsn[i]=mkc(oldsn[i]);
}
for(i=12;i<21;i++){
oldsn[i]=mkc1(oldsn[i]);
}
memset(newsn,0,25);
memset(shuchu,0,30);
memcpy(newsn,oldsn,6);
sscanf(newsn,"%lX",&sn1);
memcpy(newsn,oldsn+6,6);
sscanf(newsn,"%lX",&sn2);
memcpy(newsn,oldsn+12,7);
sscanf(newsn,"%ld",&sn3);
sscanf(oldsn+19,"%lX",&sn4);
sn3=getd(sn3);
sprintf(newsn,"%08X%08X%07d",sn1,sn2,sn3);
sn4=0;
for(i=0;i<23;i++){sn4+=get_c(newsn[i]);}
sn1*=sn4;
sn2*=sn4;
sprintf(newsn,"%08X%08X%07d%02X",sn1,sn2,sn3,sn4);
for(i=0;i<16;i++)
{
newsn[i]=15-get_c(newsn[i])+0x4b;
}
for(i=16;i<23;i++)
{
newsn[i]=10-get_c(newsn[i])+0x41;
if(newsn[i]==0x51)newsn[i]='A';
}
for(i=23;i<25;i++)
{
newsn[i]=get_c(newsn[i])+0x41;
}
for(i=0;i<5;i++)
{
memcpy(shuchu+i*6,newsn+i*5,5);
if(i!=4){shuchu[i*6+5]='-';}
}
printf("注册码:%s\r\n按任意键退出.......",shuchu);
_getch();
}
int main(int argc, char* argv[])
{
jc();
return 0;
}
还有不知道为什么,脱壳后的程序只能在脱壳的机子上运行,换个就非法操作了,比较晕呀.
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
最初由 okpj 发布 呵,修改狗壳时间限制及上面所说的BUG是没问题,网上类似的破解教程多得很,下面还有一个关口,到2007年一过期后就要进行注册,呵,狗+序列号注册,不过没关系,照样可以搞掉,还是比较简单的。呵呵
要是能下载到这个公司的其他软件就好了,最好是网络版,哈
昨天晚上已经全搞定,2007年的注册问题是个小case,我懒得算注册码,就暴掉了。
答应朋友十月一日搞定,没想到居然连一天都没提前,幸好没失信。没办法,第一次破东西,太没经验了。
谢谢okpj前辈的注册机,以后多向您请教,不知道可不可以?
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
最初由 okpj 发布 呵,修改狗壳时间限制及上面所说的BUG是没问题,网上类似的破解教程多得很,下面还有一个关口,到2007年一过期后就要进行注册,呵,狗+序列号注册,不过没关系,照样可以搞掉,还是比较简单的。呵呵
要是能下载到这个公司的其他软件就好了,最好是网络版,哈
你用IE打开 http://218.9.66.138/hwkjwz/download/ 看看吧,应该有这个软件的网络版的,应该是这个文件吧nzglwlbV4.0.rar
可以返回到上一级目录看网页.
|