Frida的安装与使用:包括多平台测试及相关注意事项
tpwallet
2025年4月29日 10:25:59
如今在技术领域,Frida是一款实用的hook框架。其安装方法受众多开发者关注。其使用方法同样受众多开发者关注。下面将为您详细介绍Frida相关内容。
# 首先需要python环境,安装python
install Python 3.x
# 安装 frida库
pip install frida
# 安装frida-tools工具
pip install frida-tools
#目前测试最好用的版本,坑少
frida 12.11.18
frida-tools 5.3.0
frida-server 12.8.10
frida 12.7.26
frida-tools 5.3.0
frida-server 12.8.10
Frida简介
Android :
先root, 再配置 frida-server (下载并push到/data/tmp/local,
以root权限执行, 下载地址 https://github.com/frida/frida/releases)
iOS :
先 jailbreak,再从cydia下载frida插件。
果没法root或越狱,可简单的修改应用,在应用初始化时,主动加载frida组件,相当于进程内部hook。
详见:https://frida.re/docs/gadget/ (强烈建议设备root或越狱)
Frida是一个hook框架。它以python和javascript为基础。它功能强大。它可在android、ios、linux、win等不同平台运行。它借助动态二进制插桩技术。它能对不同系统进程进行操作与修改。它能给开发和测试人员带来诸多便利。它在逆向工程、应用安全测试等领域被广泛使用
安装官方及Github地址
Frida有官方安装的地方。它在Github上也有开源项目的地址。大家凭借这些地址能拿到需要的安装包。还能获取相关代码。在Github上能查看详细文档。也能参与社区讨论。要是安装和使用的时候碰到问题。可以向社区成员询问。既便利又高效
PC端安装测试
# 查看手机型号
adb shell getprop ro.product.cpu.abi
在PC端安装Frida后。可通过命令行执行frida - ps命令。执行此命令后。系统运行的所有进程会输出显示。进程对应的pid也会输出显示。查看这些信息。使用者就能知晓当前系统里运行的各类程序。这能为后续操作奠定基础。
移动端安装测试
# 把frida-server 放到 安卓的/data/local/tmp/目录
adb push frida-server /data/local/tmp/
在移动端装上Frida后,在命令行运行frida - ps -U。运行此命令后,会输出系统运行的所有进程以及pid。移动端情况复杂。要确保系统和Frida版本匹配。只有如此,才能准确输出进程信息
# 进入 手机命令
adb shell
# 超级管理
su
# 进入 frida-server 目录
cd /data/local/tmp
# 修改 文件 权限
chmod 755 frida-server
# 运行文件
./frida-server
使用案例(以夜神模拟器为例)
用夜神模拟器测试。用apk文件测试。用adb工具测试。用frida - server测试。要注意夜神模拟器的adb版本和adb工具版本需一致。否则检测不到设备。打开手机模拟器。在电脑命令行输入指令检测设备。若显示检测到一台设备就没问题。之后连接设备。查看手机型号。下载与系统对应版本的文件。解压文件。将解压后的文件推送至设备。推送的目标位置是/data/local/tmp目录。
后续操作与效果展示
进行端口转发监听
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
运行安卓设备中的frida - server。运行完毕后它处于运行状态。需保留这个窗口shell以确保服务运行,关闭它服务就会关闭。接下来可另外开启shell进行端口转发监听。执行frida - ps -U命令,成功输出进程列表。接着执行frida -U -f com.xxx.xxx来进行连接,选择进程进入应用。至此,手机环境设置完毕。反编译apk后生成文件夹,打开xml文件分析逻辑,用python将脚本加载到指定进程。再次打开软件。由于hook植入代码改写了检测逻辑,所以无论任意输入与否,都能够进入。虽说版本匹配很关键。但整体流程并不繁杂。只是环境配置可能会使人头疼。
你使用Frida的时候遇到过什么特别的问题吗?快来评论区说一说。记得点赞,并且要分享这篇文章!
# 命令成功输出进程列表
frida-ps -U
frida-ps -R 都可以
# 进行连接,选择一个进程
frida -U -f com.xxx.xxx