免root使用frita
免root使用frida
frida-server或者frida-inject都需要root权限
使用frida-gadget.so可以免root使用frida
需要把特定的so文件打包到apk中,再修改apk让app加载这个so,再打包成apk
需要使用到objection的patchapk功能,-s指定要patch的apk文件
需要提前准备好aapt命令,这个实在AS的SDK里面,配置到环境变量,还需要jarsigner和apktool
此外cmd命令行的编码不能是utf-8,得是gbk的
1 | objection patchapk -s demo.apk //不指定平台是64还是2的话,默认会使用adb来查询机器的系统,然后下载对应的so |
如果下载不下来的话,可以手动下载,然后把so文件放到objection patchapk的gadget默认存放路径(这里的平台名称根据实际情况修改),然后再运行objection patchapk -s demo.apk -a arm64-v8a -V 14.2.18
,就不需要下载了
1 | C:\Users\Adminitrator\.objection\android\arm64-v8a\libfrida-gadget.so |
然后安装app,打开(这个时候会白屏,正常,因为首先加载frida的so,会等待连接)
可以使用netstat -ntlp
查看监听的端口,默认是开的27042端口,找到进程名,一般是包名
1 | frida -U com.xxx.app -l hook.js |
存在缺陷,app如果加固或者有签名检测,可能重打包失败
改进,可以魔改系统,让系统加载so,但是魔改之后的系统可能会被app检测
脱离pc使用frida
使用objection打包apk,不仅把so打包进去,而且可以使用-c参数指定配置文件(.txt就行),让启动的时候加载js代码,不使用默认的配置文件(默认的配置文件会监听本地的27042端口)
1 | { |
官方文档
1 | https://frida.re/docs/gadget/ |
脱离PC后如何判断Hook是否生效
1 | 写文件,查看文件内容 |