首页
社区
课程
招聘
第四题的问题
发表于: 2016-11-8 20:45 3441

第四题的问题

2016-11-8 20:45
3441


5659745qj`"Mp+7|cw/G}mS%bapA{

这里最后有个字符显示不出来,16进制为0x7f
我放到记事本里复制,然后粘贴到输入框里可以注册成功

但是提交不了答案

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 11370
活跃值: (3386)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
2
你再提交试试
不行就
加群 8601428
给我发私信
2016-11-8 21:23
0
雪    币: 262
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
1.初始化第一组xor key
00401000 $ 53 push ebx
00401001 . 8BDC mov ebx, esp
00401003 . 83EC 08 sub esp, 0x8
00401006 . 83E4 F0 and esp, 0xFFFFFFF0
00401009 . 83C4 04 add esp, 0x4
0040100C . 55 push ebp
0040100D . 8B6B 04 mov ebp, dword ptr [ebx+0x4]
00401010 . 896C24 04 mov dword ptr [esp+0x4], ebp
00401014 . 8BEC mov ebp, esp
00401016 . 81EC 24040000 sub esp, 0x424
0040101C . A1 04304100 mov eax, dword ptr [0x413004]
00401021 . 33C5 xor eax, ebp
00401023 . 8945 FC mov dword ptr [ebp-0x4], eax
00401026 . 56 push esi
00401027 . 57 push edi
00401028 . 6A 40 push 0x40
0040102A . 8D45 90 lea eax, dword ptr [ebp-0x70]
0040102D . C785 14FCFFFF>mov dword ptr [ebp-0x3EC], 0xCC5CAD44
00401037 . 8BF9 mov edi, ecx
00401039 . C785 18FCFFFF>mov dword ptr [ebp-0x3E8], 0x8D739012
00401043 . 6A 00 push 0x0
00401045 . 50 push eax
00401046 . 8BF2 mov esi, edx
00401048 . 89BD 2CFCFFFF mov dword ptr [ebp-0x3D4], edi
0040104E . C785 1CFCFFFF>mov dword ptr [ebp-0x3E4], 0x89E38147
00401058 . C785 20FCFFFF>mov dword ptr [ebp-0x3E0], 0xF9DF9C84
00401062 . C785 24FCFFFF>mov dword ptr [ebp-0x3DC], 0x9EB66A47
0040106C . 66:C785 28FCF>mov word ptr [ebp-0x3D8], 0x3011
00401075 . C685 2AFCFFFF>mov byte ptr [ebp-0x3D6], 0x27
0040107C . E8 CF1B0000 call 00402C50
00401081 . 68 00020000 push 0x200
00401086 . 8D85 90FDFFFF lea eax, dword ptr [ebp-0x270]
0040108C . 6A 00 push 0x0

2.计算输入key的前7个字符的MD5,并重复前面7个字节组成新的xor key,
这部分在虚拟机里,在dispatch这里下断可以看得大概流程

0042FCD9    F7D3            not     ebx
0042FCDB    4B              dec     ebx
0042FCDC    66:F7D3         not     bx
0042FCDF    66:81EB D165    sub     bx, 0x65D1
0042FCE4    0FB646 FF       movzx   eax, byte ptr [esi-0x1]
0042FCE8    4E              dec     esi
0042FCE9    2AC3            sub     al, bl
0042FCEB    F6D0            not     al
0042FCED    04 57           add     al, 0x57
0042FCEF    FEC8            dec     al
0042FCF1    2C 3E           sub     al, 0x3E
0042FCF3    FF3485 DDF84200 push    dword ptr [eax*4+0x42F8DD]
0042FCFA    C3              retn                       --------------------------------------VM DISPATCH


3.迷宫数据
004011F1   .  B9 40000000   mov     ecx, 0x40                                               ;  Case 16 of switch 004011D2
004011F6   .  8DBD 90FCFFFF lea     edi, dword ptr [ebp-0x370]
004011FC   .  BE 98374100   mov     esi, 00413798                               ===========迷宫数据
00401201   .  33C0          xor     eax, eax
00401203   .  F3:A5         rep     movs dword ptr es:[edi], dword ptr [esi]
00401205   .  B9 40000000   mov     ecx, 0x40
0040120A   .  8985 30FCFFFF mov     dword ptr [ebp-0x3D0], eax
00401210   .  BE 98384100   mov     esi, 00413898 ==============迷宫数据
00401215   .  8DBD 90FEFFFF lea     edi, dword ptr [ebp-0x170]
0040121B   .  F3:A5         rep     movs dword ptr es:[edi], dword ptr [esi]
0040121D   .  33C9          xor     ecx, ecx
0040121F   .  898D 2CFCFFFF mov     dword ptr [ebp-0x3D4], ecx
00401225   >  8A4C0D D0     mov     cl, byte ptr [ebp+ecx-0x30]
00401229   .  0FB6C9        movzx   ecx, cl
0040122C   .  C785 0CFCFFFF>mov     dword ptr [ebp-0x3F4], 0x6
00401236   .  898D 00FCFFFF mov     dword ptr [ebp-0x400], ecx
0040123C   .  90            nop


解密后得到
43 30 30 30 30 31 31 31 31 31 31 31 31 30 30 30
31 30 30 30 30 31 30 30 30 30 30 30 31 30 30 30
31 30 30 30 30 31 30 31 31 31 31 31 31 30 30 30
31 31 31 31 30 31 30 31 30 30 30 30 30 30 30 30
30 30 30 31 30 31 30 31 31 31 31 31 31 31 31 30
30 30 30 31 30 31 30 30 30 30 30 30 30 30 31 30
30 31 31 31 30 31 30 30 30 30 30 30 30 30 31 30
30 31 30 30 30 31 30 31 31 31 30 30 30 30 31 30
30 31 30 30 30 31 30 31 30 31 30 30 30 30 31 30
30 31 30 30 30 31 30 31 30 31 30 30 30 30 31 30
30 31 30 30 30 31 31 31 30 31 30 30 30 30 31 30
30 31 30 30 30 30 30 30 30 31 30 30 30 30 31 30
30 31 30 30 30 30 30 30 30 31 30 31 31 31 31 30
30 31 31 31 31 31 31 31 30 31 30 31 30 30 30 30
30 30 30 30 30 30 30 31 30 31 30 31 30 30 30 30
30 30 30 30 30 30 30 31 31 31 30 31 31 58 30 30


根据后面的代码,43是入口,58是出口,30是障碍,31可行

00401242 . 8985 10FCFFFF mov dword ptr [ebp-0x3F0], eax
00401248 . 8A8D 0CFCFFFF mov cl, byte ptr [ebp-0x3F4]
0040124E . D3EA shr edx, cl
00401250 . 83E2 03 and edx, 0x3
00401253 . FF2495 0C1440>jmp dword ptr [edx*4+0x40140C]
0040125A > 83E8 10 sub eax, 0x10
0040125D . EB 09 jmp short 00401268
0040125F > 40 inc eax
00401260 . EB 06 jmp short 00401268
00401262 > 83C0 10 add eax, 0x10
00401265 . EB 01 jmp short 00401268


这里标明的4个方向的走法,每4步对应一个字节,手工组合一下得到最终的数据:
A9 5A BE AA A5 55 A5 00 00 FA BC 00 00 15 55 AF
FE 95 55 AA AA FE A5

4.爆破
因为xor 秘钥与输入的前7个字节的md5有关,猜想应该最终结果应该是可见字符,而题目也没有对输入进行限制,于是对全数字进行爆破,得到一组数据,然后输入框里可以成功,但是提交不了答案,后来将字母也加进去,得到了很多,但是时间也比较长,下面给出另外一组

00omgvf5!^'"6vPusXvj9R$a)_u.="
2016-11-9 09:30
0
游客
登录 | 注册 方可回帖
返回
//