標 題:Seekyou v4.32 註冊演算法 給CRACKABC一個交代 (2千字)
發信人:XF[BCG] [發短訊息]
時 間:2003-09-10 10:39:45
詳細資訊:
Seekyou v4.32 註冊演算法
工具:TRW 1.23
作者:XF[BXG][CCG]
寫這個文章是為了給CRACKABC一個交代,我很早就答應給他寫一個,可是一直沒有寫,今天因為一些事,就寫了這個,也算是一個交待吧...
執行程式,只有輸入註冊碼的地方,其他沒有...
輸入任意註冊碼,沒有反映,跟了一下:在41c1d2開始處現在比較,註冊碼限制為:A-Z,12位。
因為主要是講演算法,寫序號產生器,就不詳寫了...
輸入:ABCDEFGHIJKL,注意下面是關鍵:
* Reference To: MFC42.Ordinal:0320, Ord:0320h
|
:0041C2CD E8C25B0000 Call 00421E94
:0041C2D2 8B7C241C mov edi, dword ptr [esp+1C]
:0041C2D6 8B6C2418 mov ebp, dword ptr [esp+18]
:0041C2DA 8B742420 mov esi, dword ptr [esp+20]
:0041C2DE 8B5C2414 mov ebx, dword ptr [esp+14] //取位置
:0041C2E2 8A0F mov cl, byte ptr [edi]
:0041C2E4 8A5500 mov dl, byte ptr [ebp+00]
:0041C2E7 8A06 mov al, byte ptr [esi]
:0041C2E9 8A1B mov bl, byte ptr [ebx] //取相對位置的註冊
:0041C2EB 0FBED2 movsx edx, dl //取G
:0041C2EE 0FBEC9 movsx ecx, cl //取D
:0041C2F1 2BCA sub ecx, edx //相減 D-G
:0041C2F3 0FBED0 movsx edx, al //取A
:0041C2F6 0FBEC3 movsx eax, bl //取J
:0041C2F9 03CA add ecx, edx //相加 D-G+A
:0041C2FB 40 inc eax //加1,J+1
:0041C2FC 3BC8 cmp ecx, eax //是否相同
:0041C2FE 740B je 0041C30B
:0041C300 C644243004 mov [esp+30], 04
:0041C305 8D4C2414 lea ecx, dword ptr [esp+14]
:0041C309 EB5D jmp 0041C368
下面的也是分別對各個註冊碼位置的提出,並進行比較,分析如下:
設字元為K,各位為0-11,則註冊碼要符合以下公式:
k[3]-k[6]+k[0]=k[9]+1
k[7]-k[1]=k[10]-k[4]
k[8]-k[5]+k[2]=k[11]-1
序號產生器如下:TC2.0透過
#include
#include
#include
main()
{
char k[]={"AAAAAAAAAAAA"};
unsigned long a,b;
clrscr();
printf("Seeyou V4.32 Keygen by: CHINA\n\n");
randomize();
/*printf("%d\n", random(100) );*/
a=random(100);
b=a%25;
k[6]=k[6]+b;
k[3]=k[6];
b=a%24;
k[0]=k[0]+b+1;
k[9]=k[0]-1;
a=random(122);
b=a%25;
k[7]=k[7]+b;
k[10]=k[7];
a=random(133);
b=a%25;
k[1]=k[1]+b;
k[4]=k[1];
a=random(144);
b=a%24;
k[8]=k[8]+b;
k[11]=k[8]+1;
a=random(155);
b=a%25;
k[2]=k[2]+b;
k[5]=k[2];
printf("Your Reglist sn : %s\n",k);
}