OD破解Crackme1.exe密码

以前做的一个小练习,单步运行了好多遍才捋清楚

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,有字符不相等就跳转结束。代码段如下:
OD破解Crackme1.exe密码_第1张图片
输入口令A与0x20异或为M则为正确口令,系统值D+0xFB为M’正确,
因此将M’与0x20异或可得出正确口令A。即CL=BL异或0x20。因此做如下计算:

你可能感兴趣的:(网络安全)