首页
社区
课程
招聘
[原创]第四题分析
发表于: 2016-11-9 18:26 5985

[原创]第四题分析

2016-11-9 18:26
5985

这题有一个vm
查找字符串很容易就能定位到关键点,0x401000带有vm保护,

004010A3   .  8B07          mov     eax, dword ptr [edi]             ;  取出注册码前七位
004010A5   .  8945 90       mov     dword ptr [ebp-0x70], eax
004010A8   .  0FB747 04     movzx   eax, word ptr [edi+0x4]
004010AC   .  66:8945 94    mov     word ptr [ebp-0x6C], ax
004010B0   .  0FB647 06     movzx   eax, byte ptr [edi+0x6]
004010B4   .  8845 96       mov     byte ptr [ebp-0x6A], al
004010B7   .- E9 7CDF0200   jmp     0042F038                         ;  进入虚拟机
0042F038    50              push    eax   ;保存环境
0042F039    57              push    edi
0042F03A    9C              pushfd
0042F03B    55              push    ebp
0042F03C    56              push    esi
0042F03D    68 40E20100     push    0x1E240
0042F042    51              push    ecx
0042F043    52              push    edx
0042F044    53              push    ebx
0042F045    BB 78563412     mov     ebx, 0x12345678    ; ebx是解码opcode的key
0042F04A    8BEC            mov     ebp, esp
0042F04C    81EC C8000000   sub     esp, 0xC8
0042F052    8BFC            mov     edi, esp
0042F054    BE 0E544300     mov     esi, 0043540E    ; esi是opcode的列表的,自后往前执行
0042F059    E9 7B0C0000     jmp     0042FCD9
0042FCD9    F7D3            not     ebx
0042FCDB    4B              dec     ebx
0042FCDC    66:F7D3         not     bx
0042FCDF    66:81EB D165    sub     bx, 0x65D1                       ; ebx=解码虚拟机指令索引的key
0042FCE4    0FB646 FF       movzx   eax, byte ptr [esi-0x1]          ; esi=虚拟机指令列表
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                         ; 根据key解码出指令索引,
0042FCF3    FF3485 DDF84200 push    dword ptr [eax*4+0x42F8DD]       ; 跳转到指令分支
0042FCFA    C3              retn


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 2
支持
分享
最新回复 (6)
雪    币: 30320
活跃值: (8824)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
2
你们提交的答案是啥?
规则说明sn只能包含数字和纯字母
我之前用穷举出来一堆可显示字符的sn提交都不对,直接放弃了
2016-11-10 17:21
0
雪    币: 342
活跃值: (456)
能力值: ( LV13,RANK:438 )
在线值:
发帖
回帖
粉丝
3
就是文章最后给出的注册码啊,我这个也提交不了的,后来找了管理员说明情况提交了
2016-11-10 17:49
0
雪    币: 30320
活跃值: (8824)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
4
还可以这样.. , 感觉应该还有个纯数字和字母的sn,  算唯一的, 可是穷举不出来..
2016-11-10 17:57
0
雪    币: 342
活跃值: (456)
能力值: ( LV13,RANK:438 )
在线值:
发帖
回帖
粉丝
5
就算有,sn前7位也不算唯一了吧,这题违规,仁兄没提交错过一题可惜了
2016-11-10 18:03
0
雪    币: 1432
活跃值: (3847)
能力值: ( LV9,RANK:156 )
在线值:
发帖
回帖
粉丝
6
可以把暴力穷举的代码贴出来吗?
2016-11-10 18:36
0
游客
登录 | 注册 方可回帖
返回