Easy Crack
程序运行效果演示
- 从Reversing.kr下载到一个可执行程序。
- 执行程序后,显示一个对话框,要求输入passwd。
- 输入错误的passwd会弹出一个“incorrect”,所以这里就是需要我们找到正确的passwd 。
分析及破解过程
1.主要反汇编代码
注意:这里四张图片是按顺序截下来的,中间没有地址中断。
2.关键语句含义讲解
- “congratulation!!",显然这里是passwd输入正确之后显示的窗口,也是我们魂牵梦绕的目的地。
- “incorrect password”,passwd输入错误,oops!我们被挡在门外。记住这里的入口地址“00401135”,后面我们要做的就是努力不让程序跑到这里。
- 调用“GetDigItemTextA”函数,获取我们输入的passwd,这里的过程我们不必关注。
- 有没有看到“jnz XEasy_Cra.00401135"?如果上面比较的结果不相等,就会将我们带到”00401135”。这是输入的passwd与程序预期的passwd的第一部分比较,只比较了一个字符。我们在这里下一个断点。
- 第二部分比较。基本可以确定这里的“5y"就是预期的输入了,后面“call Easy_Cra.00401150"跳转到“00401150”,注意看,这是比较逻辑!
- 第三部分比较。同样,可以猜想到”R3versing"也是预期输入。
在地址“00401102”处,“sbb eax,eax"先是对eax完成借位减法,这样eax变为0,然后"sbb eax,-0x1"又将eax减去-1,所以eax又变为1,最终经过指令“test