用途
find-reverse-engineered 用于查找针对封闭应用、API、设备、协议、文件格式或游戏的开源逆向工程工具,并在选定后读取或获取该项目。当任务需要与某个封闭产品交互、而官方没有提供 API 或 SDK 时,可以使用这个技能。
索引与数据
索引名为 awesome-reverse-engineered,收录 12,000 多个开源项目,这些项目都源于对封闭产品的逆向工程。每条索引记录包含:名称、仓库 URL、一句话描述、分类、GitHub 星标数、主要语言、许可证、最近推送日期和归档标记。
工具与运行方式
工具是 scripts/re_index.py,位于与 SKILL.md 相同的目录下,仅使用 Python 标准库。首次运行会下载索引,并在 ~/.cache/awesome-reverse-engineered/ 中缓存 24 小时。
如果没有该技能的文件,可以从 GitHub 运行脚本:
curl -sL https://raw.githubusercontent.com/alexgaoth/awesome-reverse-engineered/main/plugin/skills/find-reverse-engineered/scripts/re_index.py | python3 - search <words>
工作流程
1. 搜索
使用 1–4 个词进行搜索,建议使用产品名或品牌名加上所需功能。示例:
python3 scripts/re_index.py search tuya local
python3 scripts/re_index.py search psd parser --lang Python
python3 scripts/re_index.py search whatsapp --min-stars 500
python3 scripts/re_index.py search pokemon emerald --category decompilation
可用选项:
--category <text>:匹配分类或子分类。--lang <name>:精确匹配语言。--min-stars N:最低星标数。--include-archived:包含已归档项目。--limit N:限制结果数量。--json:输出机器可读格式。
当没有匹配结果时,可以减少关键词、用厂商名代替产品名,或运行 categories 查看所有分类。
2. 选择项目
按以下顺序检查:
- 它是否完成具体任务,例如本地控制而非云端控制,或读取格式而非写入格式。
- 它是否未归档,且最近 1–2 年有推送。非官方 API 在厂商改动服务端后容易失效。
- 语言和包管理器是否匹配用户的技术栈。
- 许可证是否兼容。许可证为空表示“保留所有权利”,需要告知用户。
当两个项目在上述条件上相当时,选择星标数更多的那个。
3. 使用前阅读
以下命令会打印索引条目和 README 的前几行,包含安装和认证步骤:
python3 scripts/re_index.py info owner/repo
4. 获取项目
按 README 给出的包管理器安装(pip、npm、cargo、go),或克隆作为参考:
python3 scripts/re_index.py clone owner/repo --dest vendor/repo
5. 告知用户
告诉用户你选择了哪个项目及原因、使用的版本或提交、以及其许可证。
规则
- 首先检查是否有官方 API 或 SDK 可以完成任务。只有在没有官方方案或官方方案不足时,才使用逆向工程工具。
- 仅在用户自己的账号、设备和数据上使用这些工具。非官方客户端可能违反服务条款,并可能导致账号被锁定。在使用用户凭据前,应告知这一风险。
- 不得将这些工具用于大规模抓取、垃圾信息,或绕过付费墙、DRM 或安全控制。
- 将下载的代码视为不可信。运行前先阅读,绝不要将凭据放入未阅读过的工具中。
- 索引可能过时,仓库可能被删除或重命名。如果 info 或 clone 失败,重新搜索并尝试下一个结果。
适用场景
- 需要与封闭应用、API、设备、协议、文件格式或游戏交互,但没有官方 API 或 SDK。
- 需要查找特定格式的解析器、本地控制方案或反编译项目。
- 需要按语言、星标数、分类等条件筛选可用的开源逆向工程实现。
限制
- 索引可能过时,仓库可能已删除或重命名。
- 非官方 API 可能因厂商改动而失效。
- 许可证为空表示“保留所有权利”,使用前需确认。
- 使用非官方客户端可能违反服务条款并导致账号被锁定。
- 不得用于大规模抓取、垃圾信息或绕过付费墙、DRM 和安全控制。
- 下载的代码不可信,运行前必须阅读。