#【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编辑 ,原因: