今天这个CM主要的是算法逆向的问题…一段简单的算法代码:
/************************************************/
00401199 . 33C9 xor ecx, ecx
0040119B . 33DB xor ebx, ebx
0040119D > 36:0FB69429 3>movzx edx, byte ptr ss:[ecx+ebp-C4]
004011A6 . 03DA add ebx, edx
004011A8 . 6BDB 10 imul ebx, ebx, 10
004011AB . 41 inc ecx
004011AC . 3BC8 cmp ecx, eax
004011AE .^ 75 ED jnz short 0040119D
/************************************************/
其中eax==KeyLen
明显这个CM的验证格式是 f1(Name)==f2(Key);
写注册机的时候f1是非逆,所以f1(Name)的值很容易得到,写注册机的关键是逆f2();
这里的注册机只逆了当NameLen<=0x05的情况….
完美的注册机可以参考这注册机代码后再斟酌斟酌
一组可以Key:
Kong
=416530
注册机f2()逆完全是我个人推算出 和CM本身算法有点小区别
可以在Key前面加任何多个任何字符都OK~