-
-
[原创]KCTF2020秋季赛 第四题 突破重围
-
发表于:
2020-11-24 10:11
4440
-
本题安卓题目,反编译apk文件,首先查看onCreate,加载了crack.so文件和asset目录的b.txt文件
然后在按键回调函数调用关键check函数,如下函数check返回true,验证成功。
顺着思路,查看MainActivity.this.check,该函数中调用了类“com.kanxue.crackme.Crack”的check方法。
我们可以看到b.txt文件是一个dex格式文件,反编译后,可以找到上面提到的check方法。分析该方法,可以得到整个数据加密流程
sn->rc4->crackjni->rc4->base64->result
如果result == checkResult则check成功
checkResult是类“com.kanxue.crackme.MyCrack”的field“crypt”
MyCrack.crypt = "otVvmpP4ZI58pqB26OTaYw==
接下来分析crackjni,核心算法是AES。
到此感觉可以收工。
正向加密流:sn->rc4->aes->rc4->base64->result==checkResult
逆向求解 :checkResult->base64->rc4->aes->rc4->sn
发现掉入作者的坑里,返回填坑。
在crackjin中,还有一部分code,之前感觉和sn没有关系,忽略了
[注意]看雪招聘,专注安全领域的专业人才平台!
最后于 2020-11-24 10:29
被ODPan编辑
,原因: