• 标 题:X梦网页特效精灵3.6. */注册码分析!+TC注册机源码!  
  • 作 者:hongjian
  • 时 间:2003/06/05 10:54am
  • 链 接:http://bbs.pediy.com

/* X梦网页特效精灵3.6. */注册码分析!

  十分多谢: PaulYoung  兄的帮助!

软件名称:X梦网页特效精灵3.6
软件介绍:不清楚
软件下载:
破解时间:2003-06-4
破解工具:


开始:......略略,来到这里(注册计算分析的地方):

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B92D1(C)
|
:004B9297 8D45F0                  lea eax, dword ptr [ebp-10]
:004B929A 50                      push eax
:004B929B 8D55EC                  lea edx, dword ptr [ebp-14]
:004B929E 8B45FC                  mov eax, dword ptr [ebp-04]
:004B92A1 8B80F8020000            mov eax, dword ptr [eax+000002F8]
:004B92A7 E868FBF8FF              call 00448E14
:004B92AC 8B45EC                  mov eax, dword ptr [ebp-14]
:004B92AF B901000000              mov ecx, 00000001
:004B92B4 8B55F8                  mov edx, dword ptr [ebp-08]
:004B92B7 E8A8B6F4FF              call 00404964                   ///  读硬件序列号
:004B92BC 8B45F0                  mov eax, dword ptr [ebp-10]
:004B92BF E840B6F4FF              call 00404904
:004B92C4 8A00                    mov al, byte ptr [eax]
:004B92C6 25FF000000              and eax, 000000FF
:004B92CB 03F0                    add esi, eax             ///  序列号的ASC码值累加=sum!                    
:004B92CD FF45F8                  inc [ebp-08]
:004B92D0 4B                      dec ebx
:004B92D1 75C4                    jne 004B9297

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B928E(C)
|
:004B92D3 8D55E8                  lea edx, dword ptr [ebp-18]
:004B92D6 8B45FC                  mov eax, dword ptr [ebp-04]
:004B92D9 8B80FC020000            mov eax, dword ptr [eax+000002FC]
:004B92DF E830FBF8FF              call 00448E14
:004B92E4 8B45E8                  mov eax, dword ptr [ebp-18]
:004B92E7 50                      push eax

* Possible StringData Ref from Data Obj ->"LL"           ////   第一个注册码
                                 |
:004B92E8 6898934B00              push 004B9398         ///  固定值"L"
:004B92ED 8D55E0                  lea edx, dword ptr [ebp-20]
:004B92F0 8D04B6                  lea eax, dword ptr [esi+4*esi]   ////  esi=累加和,sum+4*sum
:004B92F3 E89CF8F4FF              call 00408B94
:004B92F8 FF75E0                  push [ebp-20]

* Possible StringData Ref from Data Obj ->"WW"       ////   第二个注册码
                                 |
:004B92FB 68A4934B00              push 004B93A4       ///  固定值"W"
:004B9300 8D55DC                  lea edx, dword ptr [ebp-24]
:004B9303 8BC6                    mov eax, esi          ////  esi=累加和,=eax=sum
:004B9305 C1E003                  shl eax, 03          //// esi=sum,  sum << 3  -sum
:004B9308 2BC6                    sub eax, esi         ////
:004B930A E885F8F4FF              call 00408B94
:004B930F FF75DC                  push [ebp-24]

* Possible StringData Ref from Data Obj ->"JJ"     ////   第三个注册码
                                 |
:004B9312 68B0934B00              push 004B93B0        ///  固定值"J"
:004B9317 8D55D8                  lea edx, dword ptr [ebp-28]
:004B931A 8BC6                    mov eax, esi      ////  esi=累加和,=eax=sum
:004B931C C1E002                  shl eax, 02        //// sum <<2
:004B931F E870F8F4FF              call 00408B94
:004B9324 FF75D8                  push [ebp-28]

* Possible StringData Ref from Data Obj ->"tx30"    ////   第四个注册码
                                 |
:004B9327 68BC934B00              push 004B93BC        ///  固定值"tx30"
:004B932C 8D55D4                  lea edx, dword ptr [ebp-2C]    
:004B932F 6BC60B                  imul eax, esi, 0000000B       ////  esi=sum,eax=sum * 0x0b
:004B9332 E85DF8F4FF              call 00408B94
:004B9337 FF75D4                  push [ebp-2C]
:004B933A 8D45E4                  lea eax, dword ptr [ebp-1C]
:004B933D BA08000000              mov edx, 00000008
:004B9342 E885B4F4FF              call 004047CC              ///进行合并
:004B9347 8B55E4                  mov edx, dword ptr [ebp-1C]
:004B934A 58                      pop eax
:004B934B E800B5F4FF              call 00404850        ////  真假比较
:004B9350 7504                    jne 004B9356
:004B9352 B301                    mov bl, 01
:004B9354 EB02                    jmp 004B9358

算法总结:
1、先用硬件序列号生成累加和(sum)
2、用累加和分别计算出注册码的四部份!
公式是:

第一部份:sum+4*sum
第二部份:sum << 3  -sum
第三部份:sum <<2
第四部份:sum *  0x0b

3、中间有几个固定值穿插其中:分别是:“L”、"W"、"J" 和 "tx30"

==============================================================
附:TC 注册机:


main()
{
int i,sn1,sn2,sn3,sn4,sum=0;
unsigned char sn[80];

  clrscr();
  printf("\n\n\n //// X梦网页特效精灵3.6keygen  ////");
  printf("\n===============================================");
  printf("\n\         Made by -= HONGJIAN =-  ");
  printf("\n................................................");
  printf("\n\n** Please Your code: ");
gets(sn);
for (i=0;sn[i]!='\0';i++)
sum+=sn[i];

sn1=sum*4+sum;
sn2=(sum<<3)-sum;
sn3=sum <<2;
sn4=sum*0xB;
printf("\n   Your  Serial  Number: L%dW%dJ%dtx30%d\n\n",sn1,sn2,sn3,sn4);
}