package.name 包名
remote_ip 远程地址
remote_port 远程端口
serial_id 设备号
环境准备夜神模拟器安卓5.1.1 x86版本
python3.7.7
pip install frida==12.8.0
pip install frida-tools=5.3.0
pip install objection==1.8.4
adb devices
adb -s serial_id shell
如果只有一个设备不用指定设备号
获取cpu架构
adb shell getprop ro.product.cpu.abi
一般都是下x86,不建议按照64位
下载frida对应版本的frida-server
frida-server-12.8.0-android-x86.xz
frida-server-12.8.0-android-arm64.xz
解压文件,放在安卓设备的/data/local/tmp
adb push frida-server-12.8.0-android-x86 /data/local/tmp
adb shell
su
cd /data/local/tmp
chmod 777 frida-server-12.8.0-android-x86
nohup ./frida-server-12.8.0-android-x86 &
自定义frida-server端口
nohup ./frida-server-12.8.0-android-x86 -l 0.0.0.0:6666 &
退出adb
杀进程
busybox netstat -ntlp
kill -9 pid
然后转发frida服务默认端口27042
adb forword tcp:27042 tcp:27042
frida-ps -U
如果回显设备里面的进程说明frida成功,否则一步一步检查问题
frida示例 demo.js及启动
function printInfo() {
Java.perform(function () {
var d = Java.use('类路径');
d.getPluginInfo.overload("java.lang.String").implementation = function (str) {
console.log('param', str)
const pluginInfo = this.getPluginInfo(str);
const PluginInfo = Java.use('类路径');
var info = Java.cast(pluginInfo, PluginInfo);
console.log(info.getPluginName())
console.log(info.getPluginPath())
return pluginInfo
}
})
}
setImmediate(printInfo);
frida -U -l demo.js --no-pause -f package.name
获取包名
adb shell pm list package|grep 搜索词
frida hook方法(待续) objection用法(待续)objection --help
连接本地设备
objection -g package.name explore
连接远程
objection -N -h remote_ip -p remote_port -g package.name explore
问题记录python启动frida,如果使用多开软件,在attach报错,要修改core.py的源码,在获取pid的时候返回数组某一个
不要使用任何系统代理工具,包括抓包工具,不然python连接的时候会报错



