逆向反汇编基础之二十二:算法逆

今天这个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~

http://dl.dbank.com/c0jglan3as

发表评论

邮箱地址不会被公开。 必填项已用*标注