好友
阅读权限30
听众
最后登录1970-1-1
|
本帖最后由 ximo 于 2014-10-23 20:37 编辑
分析算法头疼,只能爆破了.
核心代码是动态复制到0x10001000位置,长度为0x5600, 下面是关键的判断位置:
10001DF3 837D FC 08 cmp dword ptr ss:[ebp-0x4],0x8
10001DF7 75 1C jnz X10001E15
10001DF9 8B45 08 mov eax,dword ptr ss:[ebp+0x8]
10001DFC 6A 40 push 0x40
10001DFE 68 1C880010 push 0x1000881C ; ASCII "吾爱破解2014CrackMe大赛"
10001E03 68 38880010 push 0x10008838 ; ASCII "恭喜你,注册成功,请提交答案到答题区吧!"
爆破的目的就是在memcpy处下手,把源内存的 75 1C直接换也 90 90,也就是把红色部分代码nop掉
10001DF3 837D FC 08 cmp dword ptr ss:[ebp-0x4],0x8
10001DF7 90 nop
10001DF8 90 nop
10001DF9 8B45 08 mov eax,dword ptr ss:[ebp+0x8]
10001DFC 6A 40 push 0x40
10001DFE 68 1C880010 push 0x1000881C ; ASCII "吾爱破解2014CrackMe大赛"
10001E03 68 38880010 push 0x10008838 ; ASCII "恭喜你,注册成功,请提交答案到答题区吧!"
patch位置1:
004015E2 E8 29160000 call CrackMe.00402C10
004015E7 |. 83C4 10 |add esp,0x10
修改为:
004015E2 /E9 2E780000 jmp CrackMe.00408E15
patch位置2:
原代码位置00408E15都是无用的,所以可以写入patch 代码:
00408E15 9C pushfd
00408E16 817C24 08 00560000 cmp dword ptr ss:[esp+0x8],0x5600
00408E1E 75 14 jnz XCrackMe.00408E34
00408E20 52 push edx
00408E21 8B5424 10 mov edx,dword ptr ss:[esp+0x10]
00408E25 C682 F70D0000 90 mov byte ptr ds:[edx+0xDF7],0x90
00408E2C C682 F80D0000 90 mov byte ptr ds:[edx+0xDF8],0x90
00408E33 5A pop edx
00408E34 9D popfd
00408E35 E8 D69DFFFF call CrackMe.00402C10
00408E3A ^ E9 A887FFFF jmp CrackMe.004015E7
以上就是patch的代码,输入任意用户名和密码都提示"恭喜你,注册成功,请提交答案到答题区吧!"
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|