https://github.com/chichou/vscode-frida
Unofficial frida extension for VSCode
https://github.com/chichou/vscode-frida
android ios mobile-security reverse-engineering vscode
Last synced: 7 days ago
JSON representation
Unofficial frida extension for VSCode
- Host: GitHub
- URL: https://github.com/chichou/vscode-frida
- Owner: ChiChou
- License: mit
- Created: 2020-01-14T11:58:22.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2026-03-14T01:22:41.000Z (11 days ago)
- Last Synced: 2026-03-14T12:54:02.866Z (10 days ago)
- Topics: android, ios, mobile-security, reverse-engineering, vscode
- Language: TypeScript
- Homepage: https://marketplace.visualstudio.com/items?itemName=CodeColorist.vscode-frida
- Size: 2.56 MB
- Stars: 556
- Watchers: 14
- Forks: 53
- Open Issues: 0
-
Metadata Files:
- Readme: README.cn.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# 将 Frida 集成到 VSCode
[**源码仓库**](https://github.com/chichou/vscode-frida) |
[**GitHub Issues**](https://github.com/ChiChou/vscode-frida/issues) |
[**安装到 VSCode**](https://marketplace.visualstudio.com/items?itemName=CodeColorist.vscode-frida)
本项目为社区贡献项目,与 Frida 官方团队无关。由 [@CodeColorist](https://infosec.exchange/@codecolorist) 开发和维护,是一个开源的 Visual Studio Code 扩展,旨在提升 Frida 脚本开发体验。
## 前置要求
* 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 和远程设备。
### 交互式运行时面板
#### 模块和导出浏览器
浏览任何已附加进程的已加载原生模块及其导出函数。按名称筛选模块,检查基地址、大小和路径,然后选择导出函数用于 Hook 生成。
#### 类和方法浏览器
探索 Java 和 Objective-C 的运行时类和方法。筛选类,在自有方法和继承方法之间切换,批量选择方法用于 Hook 生成。
#### 类导出
导出类头文件用于逆向工程:
* **Objective-C** — 从运行时类元数据生成头文件
* **Java** — 生成反编译的类存根,包含包名和导入语句
### Hook 生成
从模块和类面板生成 Frida Hook 代码:
* **原生 Hook** — 使用 `onEnter` / `onLeave` 回调的 `Interceptor.attach()` 用于导出函数
* **Objective-C Hook** — 基于类和选择器的 Hook,正确使用 ObjC 桥接
* **Java Hook** — `Java.perform()` / `Java.use()` Hook,支持方法重载
* **AI 驱动 Hook** — 使用 GitHub Copilot 推断原生函数签名(参数类型、返回类型)并生成类型感知的参数日志
### 智能自动补全(LSP)
Frida 脚本的上下文感知补全,支持 JavaScript / TypeScript:
* `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。
### 系统日志
从已附加进程流式传输实时应用日志。
### 项目脚手架
* **新建 Agent** — 创建支持 TypeScript 的新 Frida Agent 项目
* **新建 C 模块** — 创建新的 Frida C 模块项目
* **下载类型定义** — 下载 Frida TypeScript 类型定义用于自动补全
### 调试配置
生成 VSCode `launch.json` 和 `tasks.json`,用于带断点调试 Frida 脚本。
### Android 工具
* **下载并启动 frida-server** 在 Android 设备上(自动架构检测)
* **拉取 APK** 从设备(右键点击 Android 应用进行拉取)
### 外部工具集成
* [Objection](https://github.com/sensepost/objection) — 运行时移动探索
### Shell
对于 Android 设备,**打开 Shell** 是 `adb shell` 的封装。
对于越狱 iOS,一键打开 SSH shell。可能需要配置凭据。
### 远程设备支持
直接从侧边栏通过 `host:port` 连接到远程 Frida 设备。
## [更新日志](CHANGELOG.md)
## 贡献者
