您的位置:首页 > 理论基础 > 计算机网络

OD破解Crackme1.exe密码

2016-04-25 15:03 369 查看
以前做的一个小练习,单步运行了好多遍才捋清楚

OD打开crackme,在跳转地址00401060设置断点输入口令单步运行(每次输入不同长度的口令)





经过多次尝试发现EDX中存放的数据为输入口令的长度,而ECX始终为14,应该是正确口令的长度。所以输入长度为14的字符串12345678901234继续单步运行,情况如下:







输入口令存入ESI中,将ESI+EDX的值存入AL,ESI存入EDI,从第一位“1”开始,AL与0x20异或存放ascii码,循环14次。代码段如下:



BL中存EDX+ESP+0xC,CL存EAX+ESI,比较BL与CL,有字符不相等就跳转结束。代码段如下:



输入口令A与0x20异或为M则为正确口令,系统值D+0xFB为M’正确,

因此将M’与0x20异或可得出正确口令A。即CL=BL异或0x20。因此做如下计算:





(“68 57 19 48 50 6E 58 78 54 6A 19 58 5E 06”+0xFB)异或0x20

计算可得“43 72 34 63 6B 49 73 53 6F 45 34 73 79 21”

转换成字符为:Cr4ckIsSoE4sy!

Can you Guess the Code:Cr4ckIsSoE4sy!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息