【吾爱破解2014CrackMe大赛】【第一组】
本帖最后由 ximo 于 2014-10-23 20:37 编辑分析算法头疼,只能爆破了.
核心代码是动态复制到0x10001000位置,长度为0x5600, 下面是关键的判断位置:
10001DF3 837D FC 08 cmp dword ptr ss:,0x8
10001DF7 75 1C jnz X10001E15
10001DF9 8B45 08 mov eax,dword ptr ss:
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:,0x8
10001DF7 90 nop
10001DF8 90 nop
10001DF9 8B45 08 mov eax,dword ptr ss:
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:,0x5600
00408E1E 75 14 jnz XCrackMe.00408E34
00408E20 52 push edx
00408E21 8B5424 10 mov edx,dword ptr ss:
00408E25 C682 F70D0000 90 mov byte ptr ds:,0x90
00408E2C C682 F80D0000 90 mov byte ptr ds:,0x90
00408E33 5A pop edx
00408E34 9D popfd
00408E35 E8 D69DFFFF call CrackMe.00402C10
00408E3A ^ E9 A887FFFF jmp CrackMe.004015E7
以上就是patch的代码,输入任意用户名和密码都提示"恭喜你,注册成功,请提交答案到答题区吧!"
答案有效,爆破成功。 ximo 发表于 2014-10-22 14:58
答案有效,爆破成功。
算法没分析出来,惭愧! 最后成绩:187*70%*50%=65分
评委评价:爆破有效。
谢谢参与,请继续加油。 10001DF7 90 nop
10001DF8 90 nop
这部分nop掉,你是怎么保存的,这部分不是在内存里面写的吗。我的都没办法保存。求帮忙解答 bess 发表于 2014-11-2 20:04
10001DF7 90 nop
10001DF8 90 nop
这部分nop掉,你是怎么保存的,这部 ...
不是直接nop这部分,是在向这部分写数据的时候,也就是截获memcpy,把原数据内容改为9090
00408E25 C682 F70D0000 90 mov byte ptr ds:,0x90
00408E2C C682 F80D0000 90 mov byte ptr ds:,0x90
你再仔细看一个我的分析。
好的,谢谢你啦{:1_932:} 就是向你帖子说的那样改的,结果程序在点击注册的时候就会终止运行,你遇到过这样的吗?知不知道怎么解决 codelive 发表于 2014-10-22 15:14
算法没分析出来,惭愧!
{:17_1061:} 完全看不懂 这个是精华中的精华 爆破也不错我喜欢 暴力的 只要能K掉就行 楼猪顶你