CrackMe07

CrackMe07

 

 常规分析  用户名不能小于4

CrackMe07

 

 CrackMe07

 

 

计算的是用户名的第一位和最后一位的乘积,然后再乘以一个固定的
值。外层循环变换用户名最后一位,每次往前移动一位。内层循环变换用户名第一位,每次往后移动一位。接着将结
果保存到eax。

CrackMe07

 

 CrackMe07

 

密码换成16进制储存

接着将eax对0xA2C2A取模,记为结果1,然后将输入的密码除以0x59加上密码模以0x50再加1的值,记为结果2。然
后比较结果1和结果2是否相等。相等则返回1,消失按钮。不相等则返回0。
这里发现在输入错误得不是数字得密码 会返回那个固定得值
CrackMe07

 

 长度不能小于5

CrackMe07

 

这里如果是17倍数 累加值就是 37b+x*5 x=输入值

CrackMe07

 0x579

核心就是算法逆向
ebx = (0x50 - ((eax - 1) * 0x59 % 0x50)) + (eax - 1) * 0x59;   就是输入结果
 

CrackMe07

上一篇:JVM知识一(类加载过程)


下一篇:问题 B: 子序列