-
-
[原创]香港中文大学 蒸米 解题报告
-
发表于:
2015-1-26 16:02
8467
-
解题报告
郑旻 香港中文大学
www.cse.cuhk.edu.hk/~mzheng/
1. Java层反编译后发现是简单的异或加密。 Logcat里已经把密码和异或表log出来了,写一个简单的程序爆破即可。
2. 程序会检测tracerpid,如果不为0就会kill掉自己。为了在so加载之前挂载上,先用jdb调试,再用ida挂载上去,hook fopen函数,然后执行。程序会停在fopen所在的函数,找到那个检测函数以后,用hex editor把跳转到检测函数的指令换成nop,打包安装。然后hook on click后的jni函数,随便输入一个密码,ida会停到那个jni函数处,然后查看内存,发现密码:"哎呦不错哦".
3. 用了各种内存dump方法,最后dump出来的dex不是不完整就是有错误。。。但是第一名很快就做出来第三题了,于是google了一下第一名发现有github,里面有个indroid,是一个基于dvm的万能脱壳器。赶紧编译了一个4.2.2,刷到galaxy nexus上,然后运行程序。瞬间就把dex 用 dexdump的形式 dump出来了。。。随后分析dump出来的dex,前两个字节是hashcode的值等于一个整数,后面四个字节可以通过hook String函数得到。最后转换成摩斯编码,就是最后的答案。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!