能力值:
( LV12,RANK:650 )
2 楼
少用内存注册机……
能力值:
( LV9,RANK:330 )
3 楼
你看到的注册码在哪呢?
能力值:
( LV4,RANK:50 )
4 楼
是呀,注册码应该是在4040F4那个CALL里算出来的吧,
能力值:
(RANK:410 )
5 楼
超简单的注册算法:
SN(F(code^********)) ==机器码 then
能力值:
( LV2,RANK:10 )
6 楼
SN=(ID code XOR 11720707H)的十进制数
能力值:
( LV2,RANK:10 )
7 楼
进入此CALL[004040F4 . E8 E7F0FFFF CALL JFSwitch.004031E0] ;
*********CALL JFSwitch.004031E0**********
004031E0 /$ 6A FF push -1
004031E2 |. 68 6B4E4000 push JFSwitch.00404E6B ;
004031E7 |. 64:A1 00000000 mov eax,dword ptr fs:[0]
004031ED |. 50 push eax
004031EE |. 64:8925 00000000 mov dword ptr fs:[0],esp
004031F5 |. 81EC B0000000 sub esp,0B0
004031FB |. 56 push esi
004031FC |. 8BF1 mov esi,ecx
004031FE |. 8D4C24 08 lea ecx,dword ptr ss:[esp+8]
00403202 |. E8 01140000 call <jmp.&MFC42.#354_CFile::CFile>
00403207 |. 6A 0A push 0A ;
00403209 |. 6A 00 push 0 ;
0040320B |. 6A 00 push 0 ;
0040320D |. 8D4424 10 lea eax,dword ptr ss:[esp+10] ; |
00403211 |. 6A 00 push 0 ;
00403213 |. 50 push eax ;
00403214 |. 6A 0C push 0C ;
00403216 |. 6A 00 push 0 ;
00403218 |. 68 F8824000 push JFSwitch.004082F8 ;
0040321D |. C78424 DC000000 0>mov dword ptr ss:[esp+DC],0 ; |
00403228 |. FF15 10604000 call dword ptr ds:[<&KERNEL32.GetVolumeInf>;
0040322E |. 8B5424 04 mov edx,dword ptr ss:[esp+4]
00403232 |. 8BB6 9C000000 mov esi,dword ptr ds:[esi+9C]
00403238 |. 6A 00 push 0
0040323A |. 81F2 18019711 xor edx,11970118;得到机器码
00403240 |. 68 02800000 push 8002
00403245 |. 56 push esi
00403246 |. 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
0040324A |. 895424 10 mov dword ptr ss:[esp+10],edx
0040324E |. E8 AF130000 call <jmp.&MFC42.#5186_CFile::Open>
00403253 |. 85C0 test eax,eax
00403255 |. 5E pop esi
00403256 |. 75 30 jnz short JFSwitch.00403288
00403258 |. 8D4C24 04 lea ecx,dword ptr ss:[esp+4]
0040325C |. C78424 B8000000 F>mov dword ptr ss:[esp+B8],-1
00403267 |. E8 90130000 call <jmp.&MFC42.#665_CFile::~CFile>
0040326C |. B8 01000000 mov eax,1
00403271 |. 8B8C24 B0000000 mov ecx,dword ptr ss:[esp+B0]
00403278 |. 64:890D 00000000 mov dword ptr fs:[0],ecx
0040327F |. 81C4 BC000000 add esp,0BC
00403285 |. C2 0400 retn 4
00403288 |> 6A 02 push 2
0040328A |. 68 64FFFFFF push -9C
0040328F |. 8D4C24 0C lea ecx,dword ptr ss:[esp+C]
00403293 |. E8 5E130000 call <jmp.&MFC42.#5773_CFile::Seek>
00403298 |. 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
0040329C |. 68 9C000000 push 9C
004032A1 |. 51 push ecx
004032A2 |. 8D4C24 0C lea ecx,dword ptr ss:[esp+C]
004032A6 |. E8 45130000 call <jmp.&MFC42.#5442_CFile::Read>
004032AB |. 8B9424 C0000000 mov edx,dword ptr ss:[esp+C0]
004032B2 |. 8B4C24 00 mov ecx,dword ptr ss:[esp]
004032B6 |. 8BC2 mov eax,edx
004032B8 |. 35 07077211 xor eax,11720707;输入的注册码与11720707相异或
004032BD |. 3BC1 cmp eax,ecx;比较与机器码是否相等
004032BF |. 8B4424 38 mov eax,dword ptr ss:[esp+38]
004032C3 |. 74 64 je short JFSwitch.00403329;相等刚跳向成功处理
004032C5 |. 3BC1 cmp eax,ecx
004032C7 |. 74 27 je short JFSwitch.004032F0
004032C9 |. 894C24 38 mov dword ptr ss:[esp+38],ecx
004032CD |. 6A 02 push 2
004032CF |. 68 64FFFFFF push -9C
004032D4 |. 8D4C24 0C lea ecx,dword ptr ss:[esp+C]
004032D8 |. E8 19130000 call <jmp.&MFC42.#5773_CFile::Seek>
能力值:
( LV2,RANK:10 )
8 楼
这样的加密用windows的计算器就可算出sn,呵呵。
能力值:
( LV2,RANK:10 )
9 楼
谢谢龙岱客等大虾的指导,呵呵.
以下为C语言的注册机
#include <stdio.h>
int main()
{
unsigned long int a;
printf("Please input your machine id:");
scanf("%ld",&a);
printf("Your register number is:%ld",a^292685575);
getch();
}