# fpicker Frida 插桩与覆盖率采集套件

> 基于 Frida 的闭源程序模糊测试套件，本条目收录的是其进程内插桩与覆盖率采集部分。经 Frida 注入的 JavaScript 测试框架会在分析者选定的函数处启动 Stalker，记录每次调用时目标模块中执行过的基本块，再提供给 AFL++ 的覆盖率位图或 fpicker 自己的独立模式。其被动模式相当于跟踪器：附加到正在运行的进程而不发送输入，并在出现新覆盖时保存到达该函数的输入及对应覆盖信息，可用于本机，也可用于通过 USB 或网络连接、运行 frida-server 的设备。

- 类型：工具
- 目标：应用 · 二进制
- 类别：调试与动态分析
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/ttdennis/fpicker>
- 一手来源：<https://github.com/ttdennis/fpicker/blob/04f4b06b6c7a209986594a51bd51c8d8af7a75ea/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/fpicker/>
- 记录 JSON：<https://awesomerea.org/resources/fpicker/record.json>
- 英文版：[English](https://awesomerea.org/resources/fpicker/index.md)

## 使用条件与局限

- 项目没有发行版或标签。所审阅的 main 提交日期为 2025-07-24，将测试框架迁移到 Frida 17 API，Makefile 固定使用 frida-core 17.2.14。README 提供了一篇 2021 年博客文章作为背景，并称 fpicker 基于作者硕士论文期间开发的 ToothPicker，大部分在 ERNW 工作期间完成。
- make fpicker-macos、fpicker-linux 或 fpicker-ios 用于构建 C 语言主程序；Makefile 会从 Frida 的 GitHub 发行页下载对应的 frida-core 开发包，但 README 仍描述手动放置开发包文件的旧做法。iOS 构建需在 macOS 上使用 Xcode 的 iPhoneOS SDK；测试框架脚本用 frida-compile 打包；只有 AFL++ 模式需要 AFL++，在 macOS 和 iOS 上须以 USEMMAP 编译。
- 每个目标都需要手写测试框架，指明插桩开始的函数，进程内输入时还需说明如何调用该函数，因此须先在目标中确定该函数及其参数。README 提醒，若该函数在一次迭代中运行多次，覆盖率信息会变得不可靠。通过 USB 连接的设备无法使用共享内存通信，附加模式下目标崩溃后也不会重新启动。
- 覆盖率仅涵盖插桩调用期间目标模块内的基本块，并非整个程序的跟踪。示例为项目自行编写的小型 C 程序及种子输入，另附 WiSec 2021 教程的幻灯片；仓库没有自动化测试或 CI。
- 采用 MIT 许可；Frida 和 AFL++ 是各自采用其许可证的独立项目。

## 一手来源

1. <https://github.com/ttdennis/fpicker/blob/04f4b06b6c7a209986594a51bd51c8d8af7a75ea/README.md>
2. <https://github.com/ttdennis/fpicker/blob/04f4b06b6c7a209986594a51bd51c8d8af7a75ea/Makefile>
3. <https://github.com/ttdennis/fpicker/blob/04f4b06b6c7a209986594a51bd51c8d8af7a75ea/harness/fuzzer.js>
4. <https://github.com/ttdennis/fpicker/blob/04f4b06b6c7a209986594a51bd51c8d8af7a75ea/harness/stalker-instrumentation.js>
5. <https://github.com/ttdennis/fpicker/blob/04f4b06b6c7a209986594a51bd51c8d8af7a75ea/examples/protocol_example/README.md>
6. <https://github.com/ttdennis/fpicker/tree/04f4b06b6c7a209986594a51bd51c8d8af7a75ea/examples>
7. <https://github.com/ttdennis/fpicker/blob/04f4b06b6c7a209986594a51bd51c8d8af7a75ea/LICENSE>
8. <https://github.com/ttdennis/fpicker/commit/04f4b06b6c7a209986594a51bd51c8d8af7a75ea>

## 同分区更多条目：原生二进制

- [RetroWrite 静态二进制改写框架](https://awesomerea.org/zh/resources/retrowrite/index.md) · 工具
- [Interruptor 系统调用跟踪库](https://awesomerea.org/zh/resources/interruptor/index.md) · 工具
- [dyld_cache_extract dyld 共享缓存提取工具](https://awesomerea.org/zh/resources/dyld-cache-extract/index.md) · 工具
- [FLARE IDA Pro 实用脚本合集](https://awesomerea.org/zh/resources/flare-ida/index.md) · 工具
- [Binlex 二进制特征词法框架](https://awesomerea.org/zh/resources/binlex/index.md) · 工具
- [Driver Buddy Reloaded Windows 内核驱动分析插件](https://awesomerea.org/zh/resources/driver-buddy-reloaded/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
