使⽤Frida在多设备中批量脱壳APP
足浴盆品牌
尝粪忧心⼀、Frida简介
Frida是⼀款基于python + javascript 的hook框架,适⽤于android/ios/linux/win/osx等平台。Frida的动态代码执⾏功能,主要是在它的核⼼引擎Gum中⽤C语⾔来实现的。
注⼊模式:⼤部分情况下,我们都是附加到⼀个已经运⾏到进程,或者是在程序启动到时候进⾏劫持,然后再在⽬标进程中运⾏我们的代码逻辑。这种⽅式是Frida最常⽤的使⽤⽅式。注⼊模式的⼤致实现思路是这样的,带有GumJS的Frida核⼼引擎被打包成⼀个动态连接库,然后把这个动态连接库注⼊到⽬标进程中,同时提供了⼀个双向通信通道,这样控制端就可以和注⼊的模块进⾏通信了,在不需要的时候,还可以在⽬标进程中把这个注⼊的模块给卸载掉。
嵌⼊模式:针对没root过的设备Frida提供了⼀个动态连接库组件 frida-gadget, 可以把这个动态库集成到程序⾥⾯来使⽤Frida的动态执⾏功能。⼀旦集成了gadget,就可以和程序使⽤Frida进⾏交互。
预加载模式:⾃动加载Js⽂件。
交互原理如下如所⽰:再见朋友
红面蛋龟怎么养
图 1-1 frida通信原理图.png
ps:frida官⽅github⽹址:/frida
⼆、脱壳环境搭建
1.脱壳所需要的⼯具
名称说明
apk已加固
apk运⾏环境root过真机/模拟器
python环境版本要求3.6及以上
名称说明
Frida最新版本
2.Frida环境搭建
2.1 安装Frida客户端
⾸先,需要安装python3并配置好环境变量。Frida安装命令如下所⽰:
pip install frida
其次,Frida安装完成后,再安装frida-tools,安装命令如下所⽰:
pip install frida-tools
最后,输⼊“frida-version”,查看Frida版本。
2.2 安装Frida服务端
玉米米糊
芒果种植技术2.2.1 获取测试机的CPU架构转基因食物
通过如下命令查看测试⼿机或者模拟器的属性。
命令:adb -s [device_id] shell getprop ro.product.cpu.abi
图 2-1 查看⼿机属性.png
2.2.2 下载frida-rver版本
图2-2 frida-rver版本.png
根据上⼀步getprop命令得知测试机是基于x86架构的,那么我们就在该页⾯上选择对应的⽂件。笔者下载时的最新版本是 frida-rver-
洋兰12.⽂件。
2.2.3 将frida-rver压缩包解压并push到设备中
下载frida-rver-12.⽂件后,对其进⾏解压。使⽤adb push命令将frida-rver-12.11.16-android-x86服务器端⽂件保存到测试机的任意⽂件路径下,如:/data/local/tmp。