Frida学习笔记
1. 下载frida的服务端https://github.com/frida/frida/releases
2.解压出来后,使用adb命令上传至手机的/data/local/tmp目录下,并修改名称,防止反frida检测
|
adb push frida-server /data/local/tmp/ adb shell chmod 777 frida-server ./frida-server |
3.打开PyCharm然后安装python的Frida模块,首先创建项目,然后选择2.7的版本
创建完项目后,打开设置
点击添加模块
选中后进行安装
安装frida模块
安装完成后会在python 目录下的 scripts 文件夹中释放 frida 的工具包
4.工具包的使用
按照第2步中的命令,运行完之后,在PC端开启cmd命令进行测试
执行服务端
转发端口
执行命令
5.python API使用
# -*- coding:utf-8 -*-
#测试python frida api
import frida,sys
# 获取远程设备
rdev = frida.get_remote_device();
print rdev
# 遍历进程
processes = rdev.enumerate_processes();
for process in processes:
print process
6.使用例子
分析 fridasample.apk
包名:com.example.y0n.fridasample
类名:com.example.y0n.fridasample.MainActivity
方法:add
参数:int,int
返回值:int
创建hook项目,创建py脚本文件和js脚本文件,编写代码
方式一:直接在python中将js脚本作为字符串传入,代码如下:
# -*- coding:utf-8 -*-
#方式一,将js作为字符串传入
import frida,sys
# 获取远程设备
rdev = frida.get_remote_device();
# 附加进程
hooked_process = rdev.attach("com.example.y0n.fridasample");
# 创建一个 js 脚本
jscode = """
Java.perform(function (v) {
// get hook Class
var MainActivity =
Java.use('com.example.y0n.fridasample.MainActivity');
// hook Method
MainActivity.add.implementation = function (v) {
return true;
};
});
"""
# 创建脚本对象
script = hooked_process.create_script(jscode);
# 加载脚本
script.load();
sys.stdin.read();
hook前后效果截图,