首页
社区
课程
招聘
[原创]【2019看雪CTF】Q3赛季 第二题:血肉佣兵 WP
2019-9-24 08:00 5809

[原创]【2019看雪CTF】Q3赛季 第二题:血肉佣兵 WP

2019-9-24 08:00
5809

#【2019看雪CTF】Q3赛季 第二题:血肉佣兵 WP

 

这是一个连载题。和上一次的题相比,加入了反调试,vm调用这块似乎也有变化。反调试按作用主要有两类,一个是定时的反调试类,会直接异常出错,一个是改变了程序调用的js代码及后序的程序流程,不过不影响做题。

 

js代码check部分和上次差不多:

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!");}

程序初始化web部分时,如果发现调试,则加载另一套chpswd,区别在于key为simpower91,而且后续的check流程也变了。

 

patch下程序,去掉定时反调试调用,然后直接运行,attach,下断0x470b36,此处是vm的比较的指令handler,继续运行,然后就能看到校验后面输入长度为4,然后按字节对输入进行加操作与常量比较。
最后结果为:Simpower91a321。似乎作者只在乎技术上能不能防住,其它方面未作过多考虑。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

最后于 2019-9-24 12:37 被poyoten编辑 ,原因:
收藏
点赞1
打赏
分享
最新回复 (4)
雪    币: 4338
活跃值: (8503)
能力值: ( LV9,RANK:181 )
在线值:
发帖
回帖
粉丝
nevinhappy 2 2019-9-25 14:00
2
1
难怪我记得我输入过Simpower91a321,提示的是错误来着。
雪    币: 441
活跃值: (419)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
叶小北 2019-10-4 17:09
3
0
这题的师傅的patch流程是什么样的?
雪    币: 13713
活跃值: (2851)
能力值: ( LV15,RANK:2663 )
在线值:
发帖
回帖
粉丝
poyoten 22 2019-10-20 18:58
4
0
叶小北 这题的师傅的patch流程是什么样的?
有个反调试类,我把所有的反调试函数都改了
雪    币: 441
活跃值: (419)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
叶小北 2019-11-6 16:00
5
0
厉害
游客
登录 | 注册 方可回帖
返回