Frida 是一个动态二进制插桩工具,它允许你在运行时对程序进行分析和修改。它可以用来挂钩函数、重写函数、操纵数据等。Frida 特别擅长于对移动应用和桌面应用进行逆向工程和安全测试。在 Frida 中执行 JavaScript (JS) 代码通常是为了在目标应用的上下文中动态地修改或监控其行为。
Frida安装
https://frida.re/docs/installation/
Java |
使用 frida --version 查看当前安装的版本
然后在https://github.com/frida/frida/releases,寻找对应的版本安装在自己的安卓手机或者模拟器上
下载后,使用adb将frida服务端安装在安卓手机/模拟器中
Java |
然后在adb shell进入安卓中,给frida-server执行权限,执行起来frida-server
Java |
如果没有报错就是执行成功了
此时使用frida客户端工具连接上,例如查看下当前的有哪些APP在运行
Java |
Frida工具介绍
Frida 提供了一组命令行工具,使得在终端中进行 Frida 相关操作更加方便。以下是一些常用的 Frida 命令行工具:
frida
Java |
frida-ps:列出当前运行的进程及其 PID。
frida-ps |
frida-ls-devices:列出连接到计算机的所有设备及其信息。
Bash |
frida-trace:追踪应用程序的函数调用、方法调用等。
Bash |
frida-discover:自动发现设备上的应用程序、类和方法等信息。
Bash |
frida-compile:编译 JavaScript 脚本以供 Frida 使用。
Bash |
frida-server:启动 Frida 服务器,用于与设备进行通信。
Bash |
frida-install:安装 Frida 客户端到目标设备上。
Bash |
frida-uninstall:卸载 Frida 客户端。
Bash |
frida-kill:杀死指定进程。
Bash |
以上是一些常用的 Frida 命令行工具,您可以根据需要选择合适的工具进行使用。您可以通过运行命令本身,或者通过添加 -h 参数来查看每个命令的帮助信息,了解更多用法和选项。
Firda Hook方式
操作方式
-
CLI(命令行):通过命令行直接将JavaScript脚本注入进程中,对进程进行操作
-
RPC(远程过程调用):使用Python脚本间接完成JavaScript脚本的注入工作
Hook模式
spawn(调用)模式
当使用spawn模式时,即使目标App已经启动,在使用Frida对程序进行注入时,还是会由Frida将App重新启动并注入
Java |
attach(附加)模式
建立在目标App已经启动的情况下,Frida直接利用ptrace原理注入程序进而完成Hook操作
Java |
script.js通常格式为
Java |
实例
通过android studio 来基于basic模版创建一个新的app,包名为com.example.myapplication,对里边的MainActivity的OnPause函数进行hook;编写hook 脚本
Java |
使用frida执行
Java |
原文始发于微信公众号(暴暴的皮卡丘):Frida Hook(一) 基础介绍及环境搭建
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论