codelive 发表于 2014-10-29 23:01

【答案提交】【吾爱破解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





L4Nce 发表于 2014-11-1 15:03

爆破有效
得分:6
在后续题目中继续加油!

小清子、 发表于 2016-3-13 21:15

9分。加油。。

lhpmain 发表于 2016-4-15 13:16

“简单分析了一下,有两处内存数据,如下:    内存数据1:00453D24   DWORD dword_453D24。。”
楼主,你有空上来看到这贴时,能回复下分析这两处内存数据的方法及思路,我不是很理解会是这二处!先谢谢


hewap 发表于 2016-4-15 22:43

学习了!加油

淡然丶 发表于 2016-7-21 19:10

学习了。楼主好人

男人必须荇 发表于 2016-12-30 16:09

感谢分享嗯

牛人牛不牛 发表于 2017-5-5 13:47

lhpmain 发表于 2016-4-15 13:16
“简单分析了一下,有两处内存数据,如下:    内存数据1:00453D24   DWORD dword_453D24。。”
楼主 ...

每天 过来学习~~感谢分享~

白丶白 发表于 2017-5-7 08:29

{:1_921:}厉害,加油

白丶白 发表于 2017-5-8 09:38

看不懂~~~学习一下
页: [1] 2
查看完整版本: 【答案提交】【吾爱破解2014CrackMe大赛】【第八组】