能力值:
( LV2,RANK:10 )
|
-
-
2 楼
支持一下
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
看落点,两头凑,观走位,上补丁。自己总结了一大本破解要诀。只是恨没有传人。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
建议不要破解注册,只爆破功能限制就好。爆破功能后,注册界面就没有了。
最后于 2021-3-3 10:31
被pizazzboy编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
毕竟想学点东西。爆破后来试下也确实爆了,这玩意你是什么思路爆的,断点又是如何下的?讨论下。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
//算法源代码.
void KeyGen(char * hwid)
{
char pars[2][20] = {0};
sscanf(hwid, "%[^-]-%s", pars[0], pars[1]);
unsigned char place[] = {'8','6','4','0','5','2','9','1','3','7'};
int len = strlen(pars[1]);
char sn0[20] = { 0 };
for (int i = 0; i < len;i++)
{
sn0[i] = place[pars[1][i] - 0x30];
}
int code1 = 0 , code2=0 , code3=0;
char sn1[20] = { 0 };
code3 = sn0[len - 1];
code1 = sn0[len - 2];
for (int i = 0; i < len;i++)
{
code2 = code3 & sn0[i];
code3 = code1 | sn0[i];
if (code1 > 127)
{
code1 = 0x100 - code1;
}
if (code3 > 127)
{
code3 = 0x100 - code3;
}
sn1[i]= code3 * code2 % 0x34 + 'A' ;
code1 = (code2 + code3) & 0xff;
}
srand((unsigned int)time(NULL));
printf("Serial: %s-871%d-%s\n", sn0 , rand()%9 ,sn1);
}
//注册码存放位置:
004314CF 68 C4814000 PUSH FindKey.004081C4 ; REGCODE 004314D4 68 C4814000 PUSH FindKey.004081C4 ; REGCODE 004314D9 68 986C4000 PUSH FindKey.00406C98 ; FindKey 004314DE FF15 DC114000 CALL DWORD PTR DS:[<&MSVBVM60.#689>] ; msvbvm60.rtcGetSetting
//注册码格式的分析 004391FB FF15 44114000 CALL DWORD PTR DS:[<&MSVBVM60.#711>] ; msvbvm60.rtcSplit 分割 - 符号
机器码:FK-6528208200 注册码:9243483488-8719-UIUTYMAAQA
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
受教了。
|
|
|