# First, a Frida and CDP debugger for WeChat mini programs

> First is a security debugging tool for WeChat mini programs, built on Frida injection and a Chrome DevTools Protocol bridge, and it captures cloud function calls, the wx API surface and the contents of the packaged app. It has been closed source since version 1.1.0, so the repository is now mostly a wrapper around compiled binaries and a hook script directory.

**Spade-sec/First** — WMPFDebugger 二开微信小程序多功能集成工具

- Repository: https://github.com/Spade-sec/First
- Stars: 1,153 · Forks: 237
- Language: Python
- License: not declared
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/spade-sec-first

## What the tool does once it is attached

First is described in the repository as a second development of WMPFDebugger, a multi function integration tool for WeChat mini programs, and the README describes it as a WeChat mini program security debugging tool built on Frida and CDP, supporting macOS and Windows. The feature list is where the substance is. It injects WeChat with Frida and bridges a Chrome DevTools proxy. It captures cloud function calls dynamically by hooking wx.cloud.callFunction, with the ability to modify parameters and replay them. It captures the wx API surface, naming login, request and getUserProfile among them. It enumerates routes and navigation and detects navigation guards. It decrypts and unpacks wxapkg packages and scans them for sensitive information. It integrates an MCP Server for AI assisted analysis, and it has online updating for offsets and skills. In other words, it is a dynamic analysis and instrumentation workbench aimed at a specific client platform.

## The source stopped being the product

The most important line in the README is the notice at the top, which says that from version 1.1.0 the project is closed source and later versions upload only compiled builds, with the latest version to be downloaded from the releases page. That single decision changes what this repository is. The tree still holds gui.py, main.py, the src/ directory, the frida/ directory, the hook_scripts/ directory and a gui_config.json, but the parts that matter most to a reader, the hook scripts and the analysis logic, are now only present in compiled form. There is also an old_README.md, which suggests the previous documentation describes the open version. The consequence for an evaluator is direct. You can read the layout and the configuration, but you cannot review the code that performs the decryption and the scanning, and you cannot audit what the tool does with the data it captures. The old_README.md is a reasonable place to start if you need to know what the open version did.

## Getting the binary for your platform

Downloads are on the releases page, and there are three builds, with the macOS split by processor.

| Platform | File |
|---|---|
| macOS (Apple Silicon) | `First-ARM.dmg` |
| macOS (Intel) | `First-Intel.dmg` |
| Windows | `First-Windows.zip` |

The WeChat versions that the tool works with are listed as WMPF build numbers, a long list for Windows including 11581, 13639, 18891 and 19201 marked as updating in real time, and a shorter list for macOS including 19978, 17078 and 18788. The recommended WeChat version on both platforms is 4.1.10, and the README links to download instructions for that build hosted in a separate repository, which is worth noting since the tool will not work with an arbitrary WeChat installation. The quick start is four steps: open First, click start so that Frida injects WeChat automatically, open a mini program inside WeChat, and then use the DevTools, cloud capture and navigation features.

## On macOS, Frida needs permission you have to grant

The macOS section is the part of the documentation that most directly affects whether the tool will start, and it gives two ways forward. The first is to turn off SIP, the system integrity protection, and the README links a tutorial on how to do that. The second is to force re-sign the WeChat application, which is a single command.

```bash
sudo codesign --force --deep --sign - /Applications/WeChat.app
```

Both options are invasive, and the README is upfront that the first one exists because Frida cannot attach to the process otherwise. A team evaluating this tool on a managed macOS machine should read that before anything else, since a corporate device may not permit either. The Windows path has no equivalent step in the documentation, which is consistent with macOS being the harder platform for process attachment.

## The Python stack behind the GUI

The repository is a Python application with a PySide6 interface, and the dependencies are the same list in both the pyproject.toml and the requirements.txt.

```text
frida>=17.0.0
websockets>=12.0
protobuf>=4.0.0
PySide6>=6.5.0
pycryptodome
```

Each dependency maps onto a feature. Frida is the injection engine, websockets carries the DevTools protocol bridge, protobuf handles the wire format between the injected process and the tool, PySide6 is the desktop interface, and pycryptodome covers the wxapkg decryption. The pyproject declares the project as first, requires Python 3.10 or later, and sets the uv package flag to false, which means the project is run as an application rather than installed as a library. There is a uv.lock in the tree, and the Chinese named launch scripts 启动.sh and 启动.bat alongside them.

## Where the project sits in the research tooling ecosystem

The README credits a set of upstream projects, and the list is a good map of the existing tools in this area. It references evi0s/WMPFDebugger, which is the project this one is a second development of, plus 0xsdeo/HeartK, the FindSomething project from the Chinese security community, a write-up on JSRPC and calling wx.cloud, and a macOS port of WMPFDebugger. The acknowledgements also name 0xsdeo for the support and the original thinking, and the README carries a community group invitation. For an evaluator, the interesting observation is the direction of travel. The tool is moving from a manual debugging tool with screenshots to an agent facing one, with an MCP server exposing fifty tools to an assistant and a built in path for the model to drive the analysis.

## Versions, licence and what is not in the tree

The release history shows the project moving quickly through the 1.1 series, with First-v1.1.2 on 2026-06-15, First-v1.1.3 on 2026-06-18 and First-v1.1.4 on 2026-10-10, and the last push to the default branch was on 2026-10-10. The licence field on the project is recorded as unknown, and the top level of the tree has no licence file, so the terms for redistribution of the compiled binaries are not stated in the repository, which is a gap for a security tool that runs on developer machines. The repository also has no test directory and no CI workflow in the listing, which is consistent with a project whose source is no longer published. In practice, the artefact here is a desktop application for authorised analysis, and the people who can evaluate it are the people who can read the hook scripts in hook_scripts/ and the configuration in gui_config.json, not the people who can read the code that does the work.

## Conclusion

First fits a security researcher who has been asked to assess a mini program they are permitted to test, and it fits a developer who needs to see what a cloud function actually receives. It does not fit a team that needs to audit the tool's source, because the project has been closed source since v1.1.0 and the repository publishes compiled binaries instead, and it does not fit an environment where attaching a debugger to WeChat is not permitted, since the macOS path asks you to disable SIP or re-sign the application. Verify three things first: that you have authorisation for the mini program you are testing, which the README states as a condition of use, that your WeChat build is one of the listed WMPF versions and ideally the recommended 4.1.10, and that the binaries you download come from the releases page, since the repository no longer contains the code that produces them.

## FAQ

### What is First?

It is a WeChat mini program security debugging tool built on Frida and CDP, supporting macOS and Windows. It injects WeChat, bridges Chrome DevTools, captures cloud function calls and wx APIs, enumerates routes, decrypts and scans wxapkg packages, and offers an MCP server for AI assisted analysis.

### Is First open source?

Not since version 1.1.0. The README states that the project is closed source from that version and that later versions upload only compiled builds, with the latest version downloaded from the releases page. The repository still contains the GUI, the main entry point and the hook scripts directory, and an old_README.md describes the earlier open version.

### What does First need on macOS?

Frida cannot attach to the process unless macOS restrictions are lifted, so the README gives two options, disabling the system integrity protection, or force re-signing WeChat with sudo codesign --force --deep --sign - /Applications/WeChat.app.

### Which WeChat versions does First support?

The README lists supported WMPF build numbers for Windows and macOS, both marked as updating in real time, and names WeChat 4.1.10 as the recommended version with download links hosted in a separate repository. The three downloadable builds are First-ARM.dmg for Apple Silicon macs, First-Intel.dmg for Intel macs and First-Windows.zip for Windows.

## Sources

- [Issues](https://github.com/Spade-sec/First/issues)
- [README](https://github.com/Spade-sec/First/blob/main/README.md)
- [Releases](https://github.com/Spade-sec/First/releases)
- [Spade-sec/First on GitHub](https://github.com/Spade-sec/First)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/spade-sec-first
