感谢YYHD,原贴在下面玩玩破解——小白实战6,再上一层楼,做个注册机 - 『脱壳破解区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn
由于这个Key-Crackme2比较简单,正好适合我们小白练习一下算法注册机。
分析了一下算法:
[Asm] 纯文本查看 复制代码 004012F3 | C2 1000 | ret 10 |
004012F6 | 68 38304000 | push key-crackme2.403038 | 403038:"wgc3306"//输入的用户名
004012FB | E8 30010000 | call <JMP.&lstrlen> | //取用户名长度
00401300 | 33F6 | xor esi,esi | //注册码清零
00401302 | 8BC8 | mov ecx,eax |
00401304 | B8 01000000 | mov eax,1 |
00401309 | 8B15 38304000 | mov edx,dword ptr ds:[403038] | 00403038:"wgc3306"
0040130F | 8A90 37304000 | mov dl,byte ptr ds:[eax+403037] |
00401315 | 81E2 FF000000 | and edx,FF | //循环顺序取出用户名的每一位16进制ASC码
0040131B | 8BDA | mov ebx,edx |
0040131D | 0FAFDA | imul ebx,edx | //循环取出的每位用户名ASC码的平方
00401320 | 03F3 | add esi,ebx | //注册码+每位用户名ASC码的平方
00401322 | 8BDA | mov ebx,edx |
00401324 | D1FB | sar ebx,1 | //每位用户名ASC码的右移一位
00401326 | 03F3 | add esi,ebx | //注册码+每位用户名ASC码的右移一位
00401328 | 2BF2 | sub esi,edx | //注册码-每位用户名ASC码
0040132A | 40 | inc eax |
0040132B | 49 | dec ecx |
0040132C | 75 DB | jne key-crackme2.401309 | //循环取用户名
0040132E | 56 | push esi | //16进制真码
0040132F | 68 38314000 | push key-crackme2.403138 | 403138:"999999999999"//输入的假码
00401334 | E8 4A000000 | call key-crackme2.401383 |
00401339 | 5E | pop esi |
0040133A | 3BC6 | cmp eax,esi | //比较注册码
0040133C | 75 15 | jne key-crackme2.401353 | //关键跳转
0040133E | 6A 00 | push 0 |
00401340 | 68 62344000 | push key-crackme2.403462 | 403462:"Key/CrackMe #2 "
00401345 | 68 B8344000 | push key-crackme2.4034B8 | 4034B8:" Good Job, I Wish You the Very Best"//成功信息
0040134A | 6A 00 | push 0 |
0040134C | E8 9D000000 | call <JMP.&MessageBoxA> |
00401351 | EB 13 | jmp key-crackme2.401366 |
00401353 | 6A 00 | push 0 |
00401355 | 68 62344000 | push key-crackme2.403462 | 403462:"Key/CrackMe #2 "
0040135A | 68 86344000 | push key-crackme2.403486 | 403486:" You Have Enter A Wrong Serial, Please Try Again "//失败信息
0040135F | 6A 00 | push 0 |
00401361 | E8 88000000 | call <JMP.&MessageBoxA> |
00401366 | EB 15 | jmp key-crackme2.40137D |
00401368 | FF75 14 | push dword ptr ss:[ebp+14] |
0040136B | FF75 10 | push dword ptr ss:[ebp+10] |
0040136E | FF75 0C | push dword ptr ss:[ebp+C] |
00401371 | FF75 08 | push dword ptr ss:[ebp+8] |
00401374 | E8 3F000000 | call <JMP.&NtdllDefWindowProc_A> |
00401379 | C9 | leave |
0040137A | C2 1000 | ret 10 |
0040137D | 33C0 | xor eax,eax |
0040137F | C9 | leave |
00401380 | C2 1000 | ret 10 |
假设用户名每位ASC码为X,注册码为Y:
Y=Y+X*X+X>>1-X
我的win11-X64用keymake2.0修正版生成算法注册机错误,无法使用。 不知道各位有没有好用的keymake。
找了个PYGKeyGenMaker做了个注册机
|