Frida hook笔记

Frida学习笔记

1. 下载frida的服务端https://github.com/frida/frida/releases

Frida hook笔记_第1张图片

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 hook笔记_第2张图片

创建完项目后,打开设置 

Frida hook笔记_第3张图片 

点击添加模块 

Frida hook笔记_第4张图片 

选中后进行安装 

Frida hook笔记_第5张图片 

安装frida模块

Frida hook笔记_第6张图片 

安装完成后会在python 目录下的 scripts 文件夹中释放 frida 的工具包

Frida hook笔记_第7张图片

4.工具包的使用

按照第2步中的命令,运行完之后,在PC端开启cmd命令进行测试

 

执行服务端

转发端口

 执行命令

Frida hook笔记_第8张图片

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

Frida hook笔记_第9张图片

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前后效果截图,

Frida hook笔记_第10张图片 Frida hook笔记_第11张图片

 

你可能感兴趣的:(android逆向)