吾爱破解2012CM大赛 -> 易 -> willJ 注册算法分析


有出错提示,但查找参考字符串不可行。

关键跳在0040125F,可爆破。


1、在函数GetDlgItemTextA()下断,F9运行

2、输入验证码11-22-33-44-55后,断在地址00401188

3、单步,程序读取5段验证码,随后就是算法,入口0040124F

4、进入算法,0040149C和004014AA处的两个call,获取时间进行闰年等一些判断,细节没搞太清,怀疑有一部分是烟雾弹

5、F8跳过以上两处call,真正的验证码的生成和判断开始于004014C8

6、验证码为:(year xor 0x7C5)-(month xor 0x2)-(day xor 0x6)-(hour xor 0x5)-(minute xor 0x14)

7、验证码与当前系统时间有关,每分钟对应一个注册码,与用户名无关。


生成验证码算法本身很简单,前面两个call费了不少时间!


总结:单步跟踪时,不要想一次就搞定,采用递进分析。

            可以按照call的层级来,第一次F7第一层的call,再深的层级F8跳过;第二次F7第二层的,依次类推,直到搞清楚!


你可能感兴趣的:(吾爱破解2012CM大赛 -> 易 -> willJ 注册算法分析)