【2019看雪CTF】Q3赛季 第二题:血肉佣兵 WP
2019-09-25 11:41:11 Author: bbs.pediy.com(查看原文) 阅读量:126 收藏

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

1天前 20

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

#【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。似乎作者只在乎技术上能不能防住,其它方面未作过多考虑。

[培训]《安卓高级研修班》彻底搞定函数抽取型壳!现在报名得源码和安卓8.1脱壳机!10月20日深圳专场不见不散!

最后于 22小时前 被poyoten编辑 ,原因:


文章来源: https://bbs.pediy.com/thread-254645.htm
如有侵权请联系:admin#unsafe.sh