复现《【Android CTF】XCTF黑客精神—Frida RPC爆破》一文有感
最近在学习genliese《》一文,在测试复现的过程中遇到了很多的困难,虽然最后受限于某些条件,没能实现,但很有收获,不光是收获技能,还有那满满地友情。这里我也写出来分享给大家,让大家也在学习的过程中多一分借鉴少一些弯路。
原文,大家可以点击上面的文章链接,作者写得非常详细。
这里主要学习复现作者提供的js代码进行RPC爆破的过程中,将遇到的问题困难记录下来。
作者提到:
“此题比较简单,网上也有各种各样的wp。wp可以分为两类,一类分析算法,另一类是爆破。此题采用的是异或算法,所以分析算法求flag是最快的。而爆破的话,可以重写成等价的代码,如C++、python,或者直接采用主动调用的方式进行爆破,如Frida的主动调用。采用主动调用的好处是不用重写,而我采用Frida RPC进行主动调用的目的是想利用python丰富的库,方便爆破,缺点相对于直接用JS代码进行爆破是太慢了,慢了200多倍。”
用到的工具:
pixel 3 android 9.0
jadx
IDA
Frida12.8
Pycharm
VSCode
一、坑一:模拟器运行
运行半天,没有得到结果,就问了作者,作者回复:模拟器是x86结构,而apk中只支持arm结构的,不能用模拟器。
二、坑二:Frida版本
我用的是Frida14.215吧,反正是当前Frida的最新版;
运行后如图:
报错提示如下:
咨询后,推测可能是Frida14的版本不对,那就换上作者要求的Frida12.8.0吧。
多提一句,Frida12.8.0这样安装,
python3 -m pip install frida==12.8.0
python3 -m pip install frida-tools==5.3.0
三、坑三:报错
换上Frida12.8.0后,还出错,
而且屡次都是出在同一个地方;
期间,怕不稳定,从Windows换到Kali下的Frida,也同样报这个错误。
Google下错误,
指出,可能是手机的版本不对,要7.1.1的,换,刷包root,走起,
四、坑四:
换成7.1.1.的了,
不报错了,但结果没出来,按作者提供的结果图应该是这样的,如下,
期间,OP也帮我测试了xiaomi android 9,也只能得出我上面的结果。
现在就差最后一招了,再换手机,换成作者要求的:pixel 3 android 9.0,很可惜,我的手机刷包只能支持到8.1,不支持9了,所以暂时测试到这里了。后面有条件和新的发现,再继上。
在学习测试的过程中,得到了作者genliese、弘连的OP&海飞、同事红波的大力支持,表示感谢!