【答案提交】【吾爱破解2014CrackMe大赛】【第八组】
本帖最后由 L4Nce 于 2014-11-1 15:03 编辑简单分析了一下,有两处内存数据,如下:
内存数据1:
00453D24 DWORD dword_453D24
初始数据值如下:
00453D24 0 9 9 1
00453D34 2 9 9 3
00453D44 4 8 8 5
00453D54 4 6 7 5
00453D64 10 6 7 10
内存数据2:
00453D74 dword_453D74 dd 0
00453D74 0
注册成功的条件是:
1. dword_453D24, dword_453D24, dword_453D24, dword_453D24的数值必须是9,见上面红色位置.
2. dword_453D74的数据必须为0,这里是设置了除数为0的异常处理,只有dword_453D74值为0才能触发异常处理到注册成功的位置.
0045206C .F73D 743D4500 idiv dword ptr ds:
基于上面的分析,只需要在判定结束之后改写以上5个位置内存数据即可爆破成功。
Patch位置1:
0045203F .^\75 BF jnz XCrackMe.00452000
00452041 8B47 38 mov eax,dword ptr ds:
00452044 8B57 34 mov edx,dword ptr ds:
改为
00452041 /E9 26030000 jmp CrackMe.0045236C
00452046 |90 nop
JMP到的目标地址0045236C 是代码段的填充区域,所以可以用作Patch位置
Patch位置2:
00452369 .8D40 00 lea eax,dword ptr ds:
0045236C 0000 add byte ptr ds:,al
0045236E 0000 add byte ptr ds:,al
00452370 0000 add byte ptr ds:,al
00452372 0000 add byte ptr ds:,al
00452374 0000 add byte ptr ds:,al
00452376 0000 add byte ptr ds:,al
00452378 0000 add byte ptr ds:,al
0045237A 0000 add byte ptr ds:,al
0045237C 0000 add byte ptr ds:,al
0045237E 0000 add byte ptr ds:,al
改为:
0045236C C705 583D4500>mov dword ptr ds:,0x9 ;dword_453D24
00452376 C705 5C3D4500>mov dword ptr ds:,0x9 ;dword_453D24
00452380 C705 683D4500>mov dword ptr ds:,0x9 ;dword_453D24
0045238A C705 6C3D4500>mov dword ptr ds:,0x9 ;dword_453D24
00452394 C705 743D4500>mov dword ptr ds:,0x0
0045239E 8B47 38 mov eax,dword ptr ds:
004523A1 8B57 34 mov edx,dword ptr ds:
004523A4 ^ E9 9EFCFFFF jmp CrackMe.00452047
用户名随便输入,注册码部分输入数字即可(不要输入字母,这是原程序的判断,爆破也不应该处理这部分):
将爆破进行到底吧。:lol
爆破有效
得分:6
在后续题目中继续加油! 9分。加油。。 “简单分析了一下,有两处内存数据,如下: 内存数据1:00453D24 DWORD dword_453D24。。”
楼主,你有空上来看到这贴时,能回复下分析这两处内存数据的方法及思路,我不是很理解会是这二处!先谢谢
学习了!加油 学习了。楼主好人 感谢分享嗯 lhpmain 发表于 2016-4-15 13:16
“简单分析了一下,有两处内存数据,如下: 内存数据1:00453D24 DWORD dword_453D24。。”
楼主 ...
每天 过来学习~~感谢分享~ {:1_921:}厉害,加油 看不懂~~~学习一下
页:
[1]
2