fridahookjava函数_FridaHook的使⽤⽅法⼀、 Frida⽀持的功能及作⽤1
⼆、 安装和搭建Python环境1
三、 安装和搭建Frida环境2
1. 安装pip2
2. 安装frida2
3. 验证frida是否安装成功3
4. 卸载frida3
5. 获取frida安装版本对应的frida-server版本3
6. 验证frida是否能正常使⽤3
7. Frida JavaScript API的官⽹4
8. Ubuntu环境修改系统默认python版本为3.8.2(并更新)4
四、 Frida的使⽤实例4
1. Hook Android Java层4
2. Hook Android Native层5
3. Hook Unity3d获取解密后的dll6
4. Hook Cocos获取解密后的lua源码6
五、 Frida通过js脚本实现Hook的常⽤命令6
⼀、Frida⽀持的功能及作⽤
⽀持Android/IOS等多平台Hook
⼆、安装和搭建Python环境
1. 安装Python版本(⽐如:Python
2.7.5),安装最新版本的Python容易导致安装Frida时报错
2. 把Python的默认安装路径配置到系统环境变量(默认安装路径配置好后可以直接使⽤pip命令)
C:\python27-x64
C:\python27-x64\Scripts
3. 验证Python是否安装成功(管理员权限执⾏如下命令)
python --version
三、安装和搭建Frida环境
1. 安装pip
1) 最新pip的下载地址
/pypi/pip
2) 解压安装
python setup.py install
2. 安装frida
1) 最新frida源码或frida-server的下载地址
github/frida/frida/releases
2) 通过pip安装frida(Windows环境的⾸选安装⽅法,默认安装最新版本的frida)
pip install numpy matplotlib
pip install frida
pip install --user frida
pip install frida-tools
pip install frida-tools --user
npm config set unsafe-perm true
npm install frida-compile -g
npm install frida-compile
3) 编译frida源码安装(适合于Ubuntu环境的安装,Windows环境可能会导致编译出错) make
make install
4) 安装frida过程pip会提⽰PermissionError的解决⽅法
pip install --user frida
3. 验证frida是否安装成功
frida --version
4. 卸载frida
pip uninstall frida
5. 获取frida安装版本对应的frida-server版本
1) frida和frida-server的版本号必须保持⼀致
2) 使⽤root过的Android⼿机或模拟器
3) frida-server与Android⼿机或模拟器的架构必须保持⼀致(arm 32或arm 64或x86)
4) 把frida-server拷贝到root过的Android设备中
adb push frida-server /data/local/tmp/
5) 修改frida-server的权限
chmod 777 frida-server
6. 验证frida是否能正常使⽤
1) ⼿机端(执⾏frida-server)
.
/frida-server
2) PC端(转发Android tcp端⼝到本地)
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
3) PC端(测试frida环境,如果出现Android设备的进程列表说明frida环境搭建成功)
frida-ps -R
7. Frida JavaScript API的官⽹
/docs/javascript-api/
8. Ubuntu环境修改系统默认python版本为3.8.2(并更新)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-pip
sudo apt-get install python3-pip
cd /usr/bin
rm python
ln -s python3.8.2 python
python pip install --upgrade pip
四、Frida的使⽤实例
1. Hook Android Java层
1) python3 Test.py命令时注意查看python版本
2) 枚举***游戏进程加载的所有模块以及模块中的导出函数
2. Hook Android Native层
1) 获取跟踪调试***游戏相关cocos lua源码
2) 获取跟踪调试***游戏相关unity3d mono引擎dll源码
import frida
import sys
rdev = _remote_device()
session = rdev.attach("com.***.lotf")
scr = """
java调用python模型
Interceptor.attach(Module.findExportByName("libmono.so" , "mono_image_open_from_data_with_name"), { onEnter: function(args) {
send("mono_image_open_from_data_with_name("+adCString(args[5])+","+adCString(args[0])+")"); },
onLeave:function(retval){
}
});
"""
script = ate_script(scr)
def on_message(message ,data):
print(message)
<("message" , on_message)
script.load()
ad()
3. Hook Unity3d获取解密后的dll
4. Hook Cocos获取解密后的lua源码
五、Frida通过js脚本实现Hook的常⽤命令
frida -U -f 包名 --no-pause -l raptor_frida_android_trace_fixed.js -o 1.log
其中"-f"参数表⽰需要重启并且attach上app
frida -U 包名 --no-pause -l raptor_frida_android_trace_fixed.js -o 2.log
只想attach到正在运⾏的应⽤程序的某⼀个进程可以⽤"-p"参数
先启动app,然后执⾏命令,再按⼿机返回键,最后再点击app才可以hook成功
其中命令中加"-l"参数指定js hook代码,load到⽬标进程
如果忘了使⽤"-l"参数,可以在交互窗⼝中⽤"%load"命令来指定需要加载的js代码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。