ChiChou/vscode-frida
GitHub: ChiChou/vscode-frida
一款为 VSCode 打造的 Frida 集成扩展,为移动应用动态分析和 Hook 脚本开发提供图形化工作环境。
Stars: 543 | Forks: 53
# VSCode Frida Workbench
[**仓库**](https://github.com/chichou/vscode-frida) |
[**问题**](https://github.com/ChiChou/vscode-frida/issues) |
[**安装**](https://marketplace.visualstudio.com/items?itemName=CodeColorist.vscode-frida)
由 [@CodeColorist](https://infosec.exchange/@codecolorist) 开发的 Visual Studio Code **非官方** frida 扩展
[中文说明](README.cn.md)
## 前置条件
* Python >= 3.7
* [frida-tools](https://pypi.org/project/frida-tools/) python 包
### 可选依赖
* [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice) (用于 `inetcat` 命令启动 SSH shell)
* Windows 上的 iTunes (用于 iOS USB 连接)
如果你在 Windows 上,你需要保持 iTunes 打开以便通过 USB 与 iOS 设备交互。
### 安装 frida-tools
由于 [PEP0668](https://peps.python.org/pep-0668/),在全局运行 `pip3 install frida-tools` 时可能会遇到错误。
推荐的方法是在 VSCode 中打开一个文件夹(工作区),然后使用 Python 扩展创建并激活一个虚拟环境。在这种情况下,扩展将使用你当前激活的 Python venv 来加载 frida 命令。
或者,你可以使用像 [pipx](https://github.com/pypa/pipx) 或 [UV](https://docs.astral.sh/uv/guides/tools/) 这样的包管理器将其安装到 $PATH,同时保持隔离。
## 功能

### 应用和进程列表
在侧边栏面板中列出已连接设备上的应用和进程。右键单击以附加、启动、以挂起模式启动、终止进程,或将设备/进程信息复制到剪贴板。支持本地、USB 和远程设备。
### 交互式 Runtime 面板
#### 模块与导出浏览器
浏览任何已附加进程的已加载原生模块及其导出函数。按名称过滤模块,检查基地址、大小和路径,然后选择导出函数以生成 hook。
#### 类与方法浏览器
探索 Java 和 Objective-C 的运行时类和方法。过滤类,在自有方法和继承方法之间切换,并批量选择方法以生成 hook。
#### Objective-C 层级视图 (iOS)
通过展开/折叠控件和类过滤可视化完整的 Objective-C 类继承树。
#### Java 包树 (Android)
以分层树状视图浏览按包命名空间组织的 Java 类。
### Hook 生成
从 Modules 和 Classes 面板生成 Frida hook 代码:
* **Native hooks** — 针对导出函数的带有 `onEnter` / `onLeave` 回调的 `Interceptor.attach()`
* **Objective-C hooks** — 基于类和选择器的 hook,并正确使用 ObjC bridge
* **Java hooks** — 带有方法重载支持的 `Java.perform()` / `Java.use()` hook
* **AI-powered hooks** — 使用 GitHub Copilot 推断原生函数签名(参数类型、返回类型)并生成类型感知的参数日志记录
### 智能自动补全 (LSP)
针对 JavaScript / TypeScript 中的 Frida 脚本提供上下文感知的补全:
* `ObjC.classes.` — 补全 Objective-C 类名
* `ObjC.classes.Foo['']` — 补全方法选择器
* `ObjC.classes.Foo.method` — 补全类方法选择器
* `Java.use('')` — 补全 Java 类名
* `Process.getModuleByName('')` — 补全已加载的模块名称
由于语言服务器依赖于目标进程上下文,你需要在工作区中创建一个 Frida 目标配置文件:`.vscode/frida.json`。你可以使用 **Set LSP Target** 命令通过选定的进程或应用来生成它。
### JavaScript REPL
在底部打开并激活一个 REPL。使用任何活动 `js` / `typescript` 文档顶部的 "frida" 按钮将代码发送到活动 REPL。
### Syslog
从已附加的进程流式传输实时应用程序日志。
### 项目脚手架
* **New Agent** — 创建一个支持 TypeScript 的新 Frida Agent 项目
* **New C Module** — 创建一个新的 Frida C Module 项目
* **Download Typings** — 下载 Frida TypeScript 类型定义以用于自动补全
### 调试配置
生成用于调试带断点的 Frida 脚本的 VSCode `launch.json` 和 `tasks.json`。
### Android 工具
* 在 Android 设备上 **Download and start frida-server**(自动架构检测)
* 从设备上 **Pull APK**(右键单击 Android 应用以拉取)
### 外部工具集成
* [Objection](https://github.com/sensepost/objection) — 运行时移动端探索
### Shell
对于 Android 设备,**Open Shell** 是 `adb shell` 的封装。
对于 iOS,它在越狱设备上提供一个 SSH shell。可能需要配置凭据。
### 远程设备支持
直接从侧边栏通过 `host:port` 连接到远程 Frida 设备。
## [更新日志](CHANGELOG.md)
## 贡献者

标签:Android 安全, DAST, Docker支持, Frida, Hook 技术, iOS 安全, Python, Runtime Hook, VSCode 扩展, Web路径扫描, 云资产清单, 合规性检查, 恶意软件分析, 数据可视化, 无后门, 目录枚举, 移动安全, 自动化攻击, 自动化攻击, 越狱检测, 进程调试, 逆向工具, 逆向工程