# Frida GUI Helper 一个面向 Windows 桌面的 Frida Android 辅助工具。项目使用 Wails + Vue 构建,把常见 ADB 和 Frida 操作封装成图形界面,方便用户完成设备扫描、`frida-server` 管理、进程选择、脚本注入、自定义脚本导入和实时日志查看。 > 请仅在你拥有或已获得明确授权的设备和应用上使用本工具。 > 程序测试设备为MI 6/OnePlus 8T(已root) ## 功能特性 - 通过 ADB 扫描 Android USB 设备。 - 展示 App 和进程列表,支持 Attach 和 Spawn。 - 支持 Root 设备上的 `frida-server` 推送、启动、停止和诊断。 - Frida 工具链完全隔离:桌面 CLI、便携 Python 和 Android `frida-server` 固定从安装目录的 `frida/` 加载,不读取系统 `PATH` 中的 Frida。 - 内置 Frida Script Hub,包含基础模板和高阶模板。 - 支持导入本地 `.js`、`.mjs`、`.ts` Frida 脚本并在编辑器中运行。 - Native 模板会等待目标模块加载,兼容 Spawn 和延迟加载的 `.so`。 - CodeShare 脚本先进入编辑器供审查,仅在运行时确认并记录源码指纹。 - 运行配置 Profiles 会保存设备、目标、Attach/Spawn、脚本快照、参数和 server 路径,并可一键运行上次配置。 - 注入前检查覆盖 ADB 授权、Root、ABI、内置 CLI、server 状态/版本和目标进程;默认由用户手动触发,也可持久化开启“每次注入前自动检查”,并支持一键推送及重启同版本 server。 - 每个 Frida 会话独立保留 stdout/stderr、退出原因和运行时长,并支持重新注入与复制错误信息。 - 脚本可通过 `@frida-gui` 元数据声明参数,由界面自动生成类型化表单并安全写入 JavaScript 字面量。 - 安装包自带构建时的官方最新版 Frida CLI,以及 arm64、arm、x86_64、x86 四种 Android `frida-server`;连接设备后按 ABI 自动校验、推送并启动同版本文件。 - 设置页可检查 Frida GUI Helper 与 Frida 官方更新,并可配置启动时自动检查、Frida 组件自动更新、更新提示和注入前自动检查。 - 实时日志控制台,支持过滤、清空和导出。 - 提供 ADB、Frida CLI、设备 ABI、Root、server 版本、server 进程、官方 `frida-ps -U` smoke test 等诊断操作。 ## 内置脚本模板 基础模板: - 连接探针 - Java Runtime 探针 - SSL Pinning 基础绕过 - Intent 传递监控 - 已加载类枚举 高阶模板: - 使用 `Memory.scan` 进行内存扫描和补丁 - DEX 内存扫描与 Dump - 使用 `Stalker` 追踪 Native 执行流 - 使用 `Java.registerClass` 动态创建 Java 类 - 使用 `NativeFunction` 和 `rpc.exports` 进行 Native 调用与 RPC - 使用 `Interceptor.replace` 和 `Arm64Writer` 替换 Native 函数 所有模板在注入前都可以编辑。高阶模板的常用参数会显示为表单,不再需要直接修改 `packageName`、`moduleName` 等源码变量;不适合表单表达的 patch 字节等内容仍可在编辑器中调整。 自定义脚本也可以声明参数表单。占位符不要额外添加引号,运行时会按参数类型生成安全的 JavaScript 字面量: ```javascript /* @frida-gui {"name":"模块检查","parameters":[{"name":"moduleName","label":"模块名","type":"string","required":true,"default":"libfoo.so"}]} */ const moduleName = {{moduleName}}; ``` ## 环境要求 - Windows amd64 - 通过 USB 连接的 Android 设备 - Android 设备已开启 USB 调试 - 使用 `frida-server` 工作流时,Android 设备通常需要 Root - 电脑端 Frida CLI 与 Android 端 `frida-server` 版本必须完全一致 ## 快速开始 1. 从 Release 下载 `Frida-GUI-Helper-v*-windows-amd64-setup.exe`。 2. 运行安装向导并选择安装目录。 3. 从开始菜单或桌面快捷方式启动 Frida GUI Helper。 4. 在“设备”页面选择 Android 设备。 5. 运行“工具链诊断”和“Frida 官方 smoke test”。 6. 在界面中启动或推送 `frida-server`。 7. 打开“进程”页面,选择 App 或进程。 8. 打开“脚本”页面,选择内置模板或导入自己的脚本,然后执行 Attach 或 Spawn。 安装器会把一套锁定版本的 Frida 组件安装到软件目录。桌面 CLI 与四种 Android server 来自同一个 Frida 官方 Release,server 下载包在构建时先校验 GitHub 提供的 SHA-256,再写入组件清单。设备页不再在线临时下载 Frida,也不会根据电脑里已有的 Frida 选择版本,因此离线状态也能向手机推送匹配的 server。ADB 仍可使用安装目录中的 Platform-tools 或系统 `PATH`;设备端仍需要 USB 调试、ADB 授权和 Root 权限。 ## 安装目录结构 Frida 只从安装目录的受管组件中解析,不会回退到系统环境: 推荐目录结构: ```text Frida GUI Helper/ Frida-GUI-Helper.exe uninstall.exe frida/ manifest.json launcher.py frida.exe frida-ps.exe frida-ls-devices.exe python/ server/ android-arm64/ frida-server android-arm/ frida-server android-x86/ frida-server android-x86_64/ frida-server ``` `manifest.json` 是桌面 CLI 与手机端 server 的版本来源。设置页更新 Frida 时,会把 CLI 与全部 ABI server 更新到同一官方版本。 ## 开发构建 安装前端依赖: ```powershell cd frontend npm install --cache .npm-cache cd .. ``` 运行检查: ```powershell $env:GOCACHE="$PWD\.gocache" $env:GOMODCACHE="$PWD\.gomodcache" $env:GOPATH="$PWD\.gopath" go test ./... .\tools\check-version.ps1 cd frontend npm ci npm run build cd .. ``` 仓库包含 Windows GitHub Actions 工作流,会执行版本一致性检查、前端构建、Go 测试和 `go vet`。发布版本以根目录的 `VERSION` 为准;修改版本时需要同步更新 `frontend/package.json` 和 `wails.json`,CI 会阻止版本不一致的提交。 启动 Wails 开发模式: ```powershell wails dev ``` 准备最新版 Frida 安装负载并构建 Windows 安装包: ```powershell $env:GOFLAGS="-buildvcs=false" .\tools\prepare-frida-bundle.ps1 -Version latest .\tools\build-installer.ps1 -Architecture amd64 ``` 构建机还需要 Wails v2.12 和 NSIS。最终发布物位于: ```text build/bin/Frida-GUI-Helper-v1.0.9-windows-amd64-setup.exe ``` ## 常见问题排查 如果 Spawn 或 Attach 失败,请先验证 Frida 基础链路: 1. 运行“工具链诊断”,确认当前使用的是 `bundled` 工具还是系统 `PATH` 工具。 2. 运行“检查 frida-server”,确认 PID 存在。 3. 运行“检查 server 身份”,确认 `frida-server` 以 `root` 身份运行。 4. 运行“检查 server 版本”,确认版本与电脑端 Frida CLI 完全一致。 5. 运行“Frida 官方 smoke test”,确认 `frida-ps -U` 正常。 如果 `frida-ps -U` 失败,脚本注入通常也会失败。请升级电脑端 Frida CLI 和 Android 端 `frida-server` 到官方同一版本后重试。 ## fork安全说明 - 不要提交私钥、`.env` 文件、证书、Android 签名文件或本地工具缓存。 - 不要提交个人机器路径、用户名或本地日志。 - ADB、Frida release、`frida-server` 等第三方二进制文件建议通过 GitHub Release assets 发布,不建议直接提交到源码仓库。 ## 界面展示 8c813534eb054a23ab443da7042553f bee04719228b2bb46db50054a9b412c 69cf35dc37d243ec78038b35aade45c f210239719275f842b0b3ca6e7da430 ## 参考资料 - Frida 官方文档:https://frida.re/docs/home/ - Android 配置说明:https://frida.re/docs/android/ - JavaScript API:https://frida.re/docs/javascript-api/ - Frida Releases:https://github.com/frida/frida/releases ## 友情链接 - LinuxDo: https://linux.do/ - 吾爱破解52pj: https://www.52pojie.cn/ ## 许可证 本项目使用 MIT License。详见 [LICENSE](LICENSE)。