一、前期准备

python环境、frida、frida-tools以及honk-js文件
注意:frida不但要pip安装还需要去github里面去下载对应版本 python 3.12.4 frida 3.15.1 需要下载与之对应的github里面版本

安装frida和frida-tools

pip install frida pipinstall frida-tools

frida安装地址:https://github.com/frida/frida/releases/

这里下载的是frida-server-17.5.1-android-x86_64.xz
注:如果不知道自己下载x86_64还是x86模拟器可以下载一个终端模拟器
把下载好的解压到模拟器的adb.exe的同级目录下

getprop ro.product.cpu.abi

honk-js文件 地址:https://github.com/apkunpacker/FridaScripts

在模拟器文件夹搜索adb.exe把js文件放入此同级文件夹中
这里将使用SSLUnpinning.js 其他用法看手册

二、实验

对象:某交友app
在模拟器文件夹下打开命令窗口,使用命令把下载的frida文件传输到模拟器里面

adb.exe push frida-server-16.1.4-android-x86 /data/local/frida-x86_64

传入文件后是执行不了的需要给执行权限使用adb.exe

adb.exe shell chmod +x frida-x86_64 ./frida-x86_64

运行之后不要关闭cmd窗口 保持运行,再启动一个cmd

frida -U -f [APP_PACKAGE_NAME] -l SSLUnpinning.js

[APP_PACKAGE_NAME]为软件包的名字也可以使用id id查看需要下载一个apk资源提取器,可以去网上随便下载

这是我下载文件的地址:https://www.downkuai.com/android/116427.html

运行后会报错,并且抓包还是抓不到,打开app显示没有网络信号,其实就是没绕过去

注意:这里运行会报错误35行并且最终抓包还是无法绕过,不信邪的自己试试

解决方案:

在SSLUnpinning.js中的35行增加代码,我已经尝试过了,虽然还会报一点错误但是最终可以绕过成功,这里猜测是兼容性问题或者指针

if (ptr && !ptr.isNull()) { try { var str = ptr.readCString(); } catch (e) { console.log("读取字符串失败: " + e.message);} } else { // console.log("指针为空,跳过读取"); }

重新输入frida -U -f com.p1.mobile.putong -l SSLUnpinning.js
模拟器自动会打开app
这里使用proxifier将模拟器流量转发出去,burp开启监听

绕过成功,成功抓到数据包,经过验证可以绕过大部分证书认证,下面是某游戏营地的app

免责说明:以上提供的下载网址注意甄别,与本作者无关!