[原创]2019看雪CTF 晋级赛Q1 第2题
发表于:
2019-3-23 22:50
4421
本题是一道android题目。首先分析apk文件 程序入口:com.zhuotong.crackme.MainActivity 入口类继承AppCompiatActivity public class MainActivity extends AppCompiatActivity 我们看一下AppCompiatActivity内的关键信息:
static { System.loadLibrary("oo000oo"); }
protected native boolean eq(String arg1) {}
从onStart()方法中可以看出,方法eq(mPassword)进行输入密码判断。为真,进行长度为24的pw字符串拷贝,pw长度不够时,序号补齐。紧跟着后面使用我们输入的pw作为key使用dec()方法进行解密。最终显示解密的flag字串。
通过上面的分析可以发现,此题的关键是eq()函数。
如何真机调试?如何定位JNI_OnLoad这里就不说了,不熟悉的同学可以参考这两篇文章:定位JNI_OnLoad 搭建Android真机调试环境
JNI_OnLoad 注册了一个native函数sub_784()该函数应该就是eq()函数
如代码中的注释,代码的前半部分是算法的准备工作,与输入的password没有关系,后面才开始对password进行转换。转换是一个类似BASE解码的3变4的操作,最后与字符串“{98ga l!Tn?@#fj'j$\g;;”进行比对,相等返回真。
[注意]看雪招聘,专注安全领域的专业人才平台!