首页
社区
课程
招聘
[原创]2019CTFQ3 第二题:血肉佣兵 设计思路
2019-5-16 16:32 2437

[原创]2019CTFQ3 第二题:血肉佣兵 设计思路

2019-5-16 16:32
2437

团队名称:战神伽罗

参赛题目: 八百烦恼风

答案:Simpower91a321



设计说明:

1.首先将一部分密码封装在javascript中,通过javascript将自身进行加密。

2.通过简单的汇编代码变形算法 (加减固定数值) ,将一部分密码代码编译到可执行区域,通过指令跳转和对硬编码的变形对这部分密码进行恢复比对。

3.将恢复的代码注入到IE内核当中,并显示出来。

4.增加了一些反调试。

5.密码部分增加了混淆。

6.CPU指令增加了多种混淆(因此叫:八百烦恼风)。


破解思路

1.有多种反调试机制,破解方法网上有,反调对抗过试之后,搜索内存可以搜到javascript代码,并将代码中的一部分密码获取出来。


2.解密后代码, 密码为:simpower91

function ckpswd() {
    key="Simpower91";
    a = document.all.pswd.value;
    if (a.indexOf(key) ==0) {
        l=a.length;
        i=key.length;
        sptWBCallback(a.substring(i,l));
    } else {
        alert("wrong!<" + a + "> is not my GUID ;-)");
        return "1234";
    }
}
function ok(){
  alert("congratulations!");
}

3.剩下4位很容易就可以跟踪到比对代码的那个call处,有多个很怪异的指令被跳过,将 每个字节-7F就是剩余的ascii码 。

 

由于有多个这样的字节,因此需要尝试一下,经过尝试后,得到如下密码:

其中E0-7F='a'

B2-7F='3'

B1-7F='2'

B0-7F='1'




界面如下所示(注册成功后):


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2019-9-25 10:42 被kanxue编辑 ,原因:
上传的附件:
收藏
点赞1
打赏
分享
最新回复 (1)
雪    币: 32410
活跃值: (18725)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2019-6-8 11:22
2
0
此题放到Q3,即9月10号开始
游客
登录 | 注册 方可回帖
返回