1
题目来源:Tencent某Android CTF题 题目:安装包8.apk,要求获得flag 知识点:Frida/objection、IDA、AES加密 解题过程:安装APK,点击登录,进入如下Activity界面。
利用JADX查看APK,核心代码如下所示,将输入作为参数传给SecondActivity。
查看SecondActivity的onCreate方法,如下所示,将intent传的两个参数合并成string,调用doRawData方法,期望返回值等于"VEIzd/V2UPYNdn/bxH3Xig=="。
继续跟踪,发现doRawData为Native函数,如下所示,另外还有其他几个Native函数。
我们利用IDA打开so分析,如下是doRawData核心代码,主要是将"thisisatestkey=="作为秘钥,对入参字符串进行AES加密。
我们可以利用python编写解密代码,也可以Android Studio中调用so解密函数。如下我们利用python解密,代码如下所示。最终解密结果为“aimagetencent”,将其输入APK界面仍然没有得到Flag。
我们利用objection查看下该APK有哪些类,如下所示,我们发现FileDataActivity并没有分析到,
于是我们直接用objection跳转到FileDataActivity界面如下。
最后我们再看下FileDataActivity,可以看到将"9YuQ2dk8CSaCe7DTAmaqAA==" 解码后在界面显示,所以FileDataActivity界面的显示就是Flag。
责任编辑:xj
原文标题:逆向基础题八:获取Flag
文章出处:【微信公众号:Linux逆向】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !