codelive 发表于 2014-10-21 23:11

【吾爱破解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

答案有效,爆破成功。

codelive 发表于 2014-10-22 15:14

ximo 发表于 2014-10-22 14:58
答案有效,爆破成功。

算法没分析出来,惭愧!

ximo 发表于 2014-10-23 20:37

最后成绩:187*70%*50%=65分
评委评价:爆破有效。
谢谢参与,请继续加油。

bess 发表于 2014-11-2 20:04

10001DF7    90            nop
10001DF8    90            nop
这部分nop掉,你是怎么保存的,这部分不是在内存里面写的吗。我的都没办法保存。求帮忙解答

codelive 发表于 2014-11-2 20:16

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

你再仔细看一个我的分析。

bess 发表于 2014-11-2 21:06

好的,谢谢你啦{:1_932:}

bess 发表于 2014-11-2 21:17

就是向你帖子说的那样改的,结果程序在点击注册的时候就会终止运行,你遇到过这样的吗?知不知道怎么解决

i52088 发表于 2014-11-27 08:18

codelive 发表于 2014-10-22 15:14
算法没分析出来,惭愧!

{:17_1061:}   完全看不懂

Shock 发表于 2015-1-14 00:42

   这个是精华中的精华 爆破也不错我喜欢 暴力的 只要能K掉就行 楼猪顶你
页: [1] 2 3 4
查看完整版本: 【吾爱破解2014CrackMe大赛】【第一组】