【吾爱破解2014CrackMe大赛】【第五组】
本帖最后由 ximo 于 2014-10-28 10:41 编辑被CM4虐了
果断找CM5安慰一下自己~
先按常理跟了一遍按钮事件~
address=0040A0A1
大概就获取用户名和密码保存在全局变量~
然后比较是否为空
还有一个貌似正常情况下永远不会发生的死循环(迷惑人?)
然后怎么跳都是失败
没办法只有去找找全局变量的调用看看怎样
找来找去 发现最可疑就是这个全局变量的调用代码
0040958D|.68 CCED4900 push CrackMe.0049EDCC
其他基本就是个幌子
来到断首在返回一下调用
就是这里0040A082 .56 push esi ;??????????????????
那么问题又来了,怎么弄都不能调用到这里~~~~~~~~~~~~~~~~~
还是去看看他启动的时候做了什么手脚吧
address=00401059
主要是这句代码
0040113C|.E8 DB2A0000 call CrackMe.00403C1C ;设置VEH?
跟进这个call 里面会调用
00429549 .- FFE0 jmp eax ;ntdll.RtlAddVectoredExceptionHandler
VEH~~~~
果断去掉勾选所有异常和SOD的选项
但不知为什么还是没有异常发生~
然后我慢慢看关键函数0040A082
00409565|.813B 04000080 cmp dword ptr ds:,0x80000004 、、这个事异常代码
0040956B|.0F85 40060000 jnz CrackMe.00409BB1 ;>>>
00409571|.8B5D F4 mov ebx,
00409574|.8B5B 04 mov ebx,dword ptr ds:
00409577|.83C3 4C add ebx,0x4C
0040957A|.895D EC mov ,ebx
0040957D|.A1 98ED4900 mov eax,dword ptr ds:
00409582|.8B5D EC mov ebx,
00409585|.3903 cmp dword ptr ds:,eax ;和0040A27D这个地址比较 所以要在这个地址要发生异常
00409587|.0F85 FA040000 jnz CrackMe.00409A87
0040958D|.68 CCED4900 push CrackMe.0049EDCC
00409592|.E8 AF060000 call CrackMe.00409C46 ;这个call
翻翻书 发现0x80000004=单步中断
这就好办了直接在0040A27D的前一句代码 弄个TF标志位然他发生异常就行了
下面的代码基本就是调用易语言自带的加密数据和SUPER-EC的RC4类实现的了
大致就是这样 可能有错 没尝试过
逆回来大概就是这样
用户名?机器码?都是迷惑人的
VEH也有好几个函数也是这样?
所以弹出的内容是不固定的?
附上keygen
攻击方式:Keygen
评委评价:虽然没有按照原本的想法弹出固定的内容,但是找到了程序中的BUG,剑走偏锋,非常可惜的是,咨询了多位评委意见后,发现没有完成作者的需求,因此0分,不过彩蛋详细分析报告发出来可以有额外加分
得分:0
{:1_909:}我就知道我找错方向 新李逵劈鱼新李逵劈鱼
我就知道我找错方向
好东西,学习了! 学习了!学习了! 学习了!学习了! 好好学习,天天向上