【ctf】20150ctf题解第一部分

前一段时间去最向往的实验室面试,学长想看一下我的博客,想一想从来都是从网上看别人的,自己也没写过什么,挺不好意思的,以后有时间就码一些上来吧~今天先写几个简单的,0ctf里算外算拿了大概600分?全队1/3的分数哦~~

SimpleAPK

这一题开始就是一个干扰项,看flag内容就知道肯定不是这个。标准步骤肯定是先反编译,放在dex2jar里面跑一下,然后jd-gui看一下程序的逻辑,获取输入值进行比较。

【ctf】20150ctf题解第一部分

一开始反编译的时候看到了libantidebug.so,按照一贯思路应该debug一下的,但是看到这个纠结了一下,当时还想用Intel64的那个安卓平板调试来着233

后来看了一下Manifest,文件中的Application标签包含属性android:debuggable="true",这就好像暗示了这一题要动态调试解决。

那就上IDA6.6,在v7变量上下断点,直接就看到flag了。

VEZEL

这题比较简单,也是先看核心算法,

【ctf】20150ctf题解第一部分

然后发现是求crc和签名,直接用几行代码另外写了个apk搞定了。

PackageManager localPackageManager = getPackageManager();

int i=0;

try {

            i = localPackageManager.getPackageInfo("com.ctf.vezel", 64).signatures[0].toCharsString().hashCode();

        } catch (NameNotFoundException e1) {

            // TODO Auto-generated catch block

            i=-1;

            e1.printStackTrace();

        }

TextView textView=(TextView)this.findViewById(R.id.text1);

long l=0;

        try {

            l = new ZipFile("/sdcard/1.apk").getEntry("classes.dex").getCrc();

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        textView.setText("0CTF{" + String.valueOf(i) + l + "}");

 

BabyQuine

这题看懂了意思之后开始搜索,在wiki上找到了线索,然后就找到了c perl rb python2的代码,然后就直接跑过去了。再接着就花了一下午时间看Quine那一题,试图改代码兼容Python23,最后没有成功%>_<%

你可能感兴趣的:(题解)