Easy_CrackMe练习
2017-04-11 00:00
197 查看
Reversing.Kr上的第一个题目---Easy_CrackMe
1.先打开程序看看:
一个标准的输入框和一个按钮,试着输入‘123456’然后点击按钮,看看有什么反应......
果然,它easily弹出一个错误框,显示‘Incorrect Password’。看到此处我试着把它放进IDA。
2.IDA分析:
通过View->String我看到了弹窗显示的字符串,直接双击跟到代码窗口,
此处可以看到‘Incorrect Password’与‘Congratulation!!’均被引用,Ctrl+x跟踪上去。
跟踪到弹出错误消息框处,发现有4处可到达弹出错误消息框,此处跟踪上去看太劳神,返回看看成功消息框的调用,
发现只有一处能调用弹出成功消息框。此时可以大胆猜测一下,程序的关键逻辑是判断输入的Password是否满足条件,不满足则直接跳转到弹出错误消息框,满足则顺下继续判断...最后所有的条件都满足了则直接弹出成功消息框。
3.尝试OD动态调试:
大致清楚程序逻辑后,将它放入OD动态调试。首先Ctrl+G转到401135(IDA中可知)下断点,然后F9运行,输入‘123456’并按下按钮,断点起效。
跟踪左侧红线直达调用处
看到jnz跳转指令之上还有GetDlgItemTextA用于获取我们输入的‘123456’。说明从GetDlgItemTextA之后就是对我们的输入内容进行对比(与正确的Password),经过分析得到下图......
4.总结:
由此,我们得到Password为‘Ea5yR3versing’,程序首先判断第二个字符是否是‘a’(0x61),其次在判断二三字符是否为‘5y’,接下来循环判断后面的字符是否为‘R3versing’,最后判断第一个字符是否为‘E’(0x45)。
1.先打开程序看看:
一个标准的输入框和一个按钮,试着输入‘123456’然后点击按钮,看看有什么反应......
果然,它easily弹出一个错误框,显示‘Incorrect Password’。看到此处我试着把它放进IDA。
2.IDA分析:
通过View->String我看到了弹窗显示的字符串,直接双击跟到代码窗口,
此处可以看到‘Incorrect Password’与‘Congratulation!!’均被引用,Ctrl+x跟踪上去。
跟踪到弹出错误消息框处,发现有4处可到达弹出错误消息框,此处跟踪上去看太劳神,返回看看成功消息框的调用,
发现只有一处能调用弹出成功消息框。此时可以大胆猜测一下,程序的关键逻辑是判断输入的Password是否满足条件,不满足则直接跳转到弹出错误消息框,满足则顺下继续判断...最后所有的条件都满足了则直接弹出成功消息框。
3.尝试OD动态调试:
大致清楚程序逻辑后,将它放入OD动态调试。首先Ctrl+G转到401135(IDA中可知)下断点,然后F9运行,输入‘123456’并按下按钮,断点起效。
跟踪左侧红线直达调用处
看到jnz跳转指令之上还有GetDlgItemTextA用于获取我们输入的‘123456’。说明从GetDlgItemTextA之后就是对我们的输入内容进行对比(与正确的Password),经过分析得到下图......
4.总结:
由此,我们得到Password为‘Ea5yR3versing’,程序首先判断第二个字符是否是‘a’(0x61),其次在判断二三字符是否为‘5y’,接下来循环判断后面的字符是否为‘R3versing’,最后判断第一个字符是否为‘E’(0x45)。
相关文章推荐
- [反汇编练习] 160个CrackMe之007
- [反汇编练习] 160个CrackMe之013
- [反汇编练习] 160个CrackMe之017
- [反汇编练习] 160个CrackMe之023
- [反汇编练习] 160个CrackMe之028
- [反汇编练习]160个CrackMe之001
- [反汇编练习] 160个CrackMe之010
- [反汇编练习] 160个CrackMe之024
- hdu 1040 As Easy As A+B(堆排练习水题~)
- [反汇编练习] 160个CrackMe之025
- [反汇编练习] 160个CrackMe之036
- 160个破解练习之CrackMe 007
- 160个破解练习之CrackMe 008
- CrackMe练习之Bigman's Crackme6
- EasyDemo*ArrayList常用方法小练习(on Github)
- [反汇编练习] 160个CrackMe之037
- EasyDemo*LinkedList特有方法小练习(on Github)
- [反汇编练习] 160个CrackMe之003
- [反汇编练习] 160个CrackMe之033
- EasyDemo*Map集合框架常用方法小练习(on Github)