17 KiB
17 KiB
name, description, license, compatibility, metadata
| name | description | license | compatibility | metadata | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| softseep | 【逆向工程总控入口 / Orchestrator】本 Skill 是整个工作体系的**唯一入口与总调度**。**用户只需输入大白话,softseep 自动完成两步判型**:① 平台(Windows/Android/Linux/Web/Flutter)② 逆向类型(授权许可 / 补丁本地化 / 脱壳解包 / 算法还原 / 协议分析 / 样本研判 / UI 伪造 / 加固对抗 / 测绘报告),随后自动分发到对应子能力。它自身不承载战术细节,所有深度内容在 `references/` 按需加载(Windows 6 步 SOP、汇编打桩字典、五层纵深防御、UI 验收工装、编译器陷阱、九型项目范式库、许可/激活/卡密校验手册、工具脚本索引)。内置 G-Auth 授权门、路由矩阵与调度纪律。当用户下达任何逆向、白盒审计、客户端逻辑验证、许可校验、补丁本地化、脱壳解包、算法还原、样本研判、UI 伪造、加固对抗或逆向测绘任务时,**首先加载此 Skill** —— 由它判型后分发到 apkseep / ida-reverse / seep MCP / ida MCP / playwright / Tool/scripts / reverselab 等子能力。 | MIT | Windows 10 / Windows 11 x64 为主。支持 Python 3.8+,搭配 C/C++ 编译器(Zig/MSVC)或 radare2/IDA Pro 逆向套件。跨平台等价路径见 `references/license-validation.md` §1 平台对照表。 |
|
softseep — 逆向工程总控入口(Orchestrator)
本文件是总控,不是手册。 它只回答三个问题: ① 这是哪个平台的软件? ② 属于什么逆向类型? ③ 分发给谁? 具体战术细节一律在
references/,按需加载,不预先全读。
调度总流程
用户说大白话(不需要懂术语、不需要选类型、不需要指定平台)
→ ① G-Auth 授权门 (能不能测)
→ ② 自动判型(softseep 自己判,不问用户)
· 平台:Windows / Android / Linux / Web / Flutter
· 类型:授权许可 / 补丁本地化 / 脱壳 / 算法还原 /
协议分析 / 样本研判 / UI 伪造 / 加固对抗 / 测绘报告
→ ③ 分发:加载对应 reference / skill / MCP
→ ④ 执行 → 三段式报告
三条铁律:
- 门控不可绕过 —— 先 G-Auth,再判型,再分发;禁止直接调子能力;
- 判型是 softseep 的职责,不是用户的负担 —— 用户说大白话,本主控自己归类; 绝不把"请选择平台/类型"的选择题甩回给用户;
- 判型不可跳过 —— 不先判平台与类型就开工 = 违规(错平台代价是整轮工作作废)。
【G-Auth】授权门 —— 唯一横在一切之前的门
本体系仅用于已授权的白盒安全测试实验室环境。
规则:每次接到新目标,第一件事是询问用户是否已获得该目标的测试授权。
| 答复 | 动作 |
|---|---|
| 无授权 / 不确定 / 未回答 | 立即停止。不分析、不下载、不运行、不试探、不"先看看"。说明需要什么,等待。 |
| 已授权 | 立即进入下方【总控路由】,此后全速工作。 |
双向约束 —— 两个"最大"
① 防误用(硬闸)
- 授权逐目标确认,换目标即重新确认;
- 不得以"之前说过"为由跳过确认;
- 确认前不得进行任何实质分析动作。
② 保效率(零摩擦)
- 一次确认即放行,放行后不再反复询问授权;
- 不得因授权话题缩减技术输出、堆砌免责声明、或降低交付标准;
- 实验室安全员的效率同样是设计目标 —— 闸门只放在门口,不放在路上。
边界
授权覆盖"能不能测";下载 / 安装 / 写文件 / 改环境变量属于"能不能动",仍需单独确认。两者不可互相替代。
【总控路由】
softseep 是本工作体系的唯一入口与总调度。任何任务先到此判型,再分发到对应 Skill / MCP / 脚本。禁止绕过总控直接调用子能力 —— 绕过即丢失门控、纪律与证据链。
⓪ 自动判型 —— 这是 softseep 的职责,不是用户的负担(不可跳)
用户只输入大白话,判型全部由 softseep 完成。 用户不需要懂术语、不需要选类型、 不需要指定平台 —— 他说什么,本主控自己判,判完直接分发。
判型失败的处理:若平台或类型无法从输入推断(既无文件、也无明确动词), 只问一句最关键的澄清问题,然后继续。绝不把选择题甩回给用户。
判型信号从哪里取(softseep 自己看)
| 判型维度 | 信号来源 |
|---|---|
| 平台 | ① 文件扩展名 / 魔数 ② 路径特征 ③ 用户描述的名词("apk" / "exe" / "网页") |
| 类型 | ① 用户的动词(破解/脱壳/hook/分析/抓包/出报告)② 名词(会员/卡密/签名/壳/接口) |
平台自动判型
| 信号 | 平台 |
|---|---|
.apk / .aab / .dex / .so(Android ABI) / AndroidManifest.xml / 用户说"apk·安卓·手机软件" |
Android |
.exe / .dll / .sys / PE 头 MZ / 用户说"exe·电脑软件·桌面软件" |
Windows |
.elf / Linux 服务 / \x7fELF |
Linux |
.js / .asar / Web 前端 / 用户说"网站·网页·接口·前端" |
Web/JS |
libapp.so + global-metadata.dat / 用户说"flutter·跨平台" |
Flutter |
.ipa / Mach-O |
iOS(未覆盖,明确告知) |
类型自动判型 —— 从用户大白话推断
用户说什么不重要,softseep 听懂意图后自己归类。下表是内部推断规则。
| 用户可能说的大白话 | 推断类型 | 分发到 |
|---|---|---|
| "破解" / "怎么免费用" / "会员怎么搞" / "卡密" / "序列号" / "激活" / "试用期" / "订阅" | 授权/许可分析 | 前置门控 → project-paradigms.md |
| "脱壳" / "加密了" / "有壳" / "解包" / "dump 出来" | 脱壳/解包 | windows-sop.md / apkseep |
| "hook 一下" / "改返回值" / "打个补丁" / "本地化" / "去广告" / "弹窗" | 补丁/功能本地化 | windows-sop.md |
| "算法怎么还原" / "签名怎么算" / "加密怎么解" / "校验逻辑" | 算法还原 | project-paradigms.md |
| "抓包" / "接口" / "协议" / "请求怎么发的" | 协议分析 | license-validation.md §6 |
| "是不是病毒" / "分析样本" / "行为" / "IOC" | 样本研判 | ida MCP + YARA |
| "改界面文字" / "关于对话框" / "显示不对" | UI 伪造 | ui-verification.md |
| "过检测" / "反调试" / "反 hook" / "完整性校验" | 加固对抗 | defense-in-depth.md |
| "出个报告" / "整理成果" / "测绘" | 测绘报告 | project-paradigms.md(报告模板) |
| "看看这个 exe" / "分析下这个文件"(无明确动词) | 默认:测绘/分析 | windows-sop.md Step 1-2 |
复合意图:一句话含多个意图(如"脱壳后破解会员")⇒ 按依赖顺序串行: 脱壳 → 算法还原 → 授权分析 → 补丁 → 报告。
判型输出(内部记录即可,不必告知用户):
[判型] 平台=Windows | 类型=授权/许可 | 加载=前置门控 + project-paradigms.md
路由矩阵(平台 × 类型 → 目标)
| Windows | Android | Linux | Web/JS | |
|---|---|---|---|---|
| 授权/许可 | 前置门控 + project-paradigms |
apkseep + 前置门控 |
前置门控 | license-validation |
| 补丁/本地化 | windows-sop |
apkseep(dex patch) |
windows-sop 类比 |
— |
| 脱壳/解包 | windows-sop |
apkseep(packers) |
ida-reverse | — |
| 算法还原 | project-paradigms |
apkseep |
ida-reverse | license-validation §7 |
| 协议分析 | license-validation §6 |
apkseep |
seep MCP | playwright |
| 样本研判 | ida MCP + YARA | apkseep |
ida-reverse | — |
| UI 伪造 | ui-verification |
— | — | — |
| 加固对抗 | defense-in-depth |
apkseep(anti-tamper) |
— | — |
可调度的全部资源
| 类别 | 资源 | 调用方式 | 用途 |
|---|---|---|---|
| Skill | softseep(本体) | 本文件 + references/ |
总控 + Windows 战术 |
| apkseep | ~/.pi/agent/skills/apkseep/SKILL.md |
Android APK/DEX/SO 全链路 | |
| ida-reverse | ~/.pi/agent/skills/ida-reverse/SKILL.md |
IDA 自动唤醒 + 联动 | |
| client-license-validation-bypass | Tool/client-license-validation-bypass/SKILL.md |
许可校验专项 | |
| Tool/safe/skills(5 个) | Tool/safe/skills/ |
radare2 / reverse-engineering / mcp-js-reverse-playbook 等 | |
| MCP | seep(22 工具) | seep_r2_* / seep_apk_* / seep_kb_* |
二进制 + APK + 知识库 |
| ida(~243 工具) | mcp_ida_* |
深度反编译 / 交叉引用 | |
| playwright | 浏览器工具 | Web / JS 审计 | |
| 脚本 | Tool/scripts/ |
case-init.ps1 / trigger_ida_mcp.ps1 / refresh-tool-index.ps1 |
建档 / IDA 唤醒 / 自检 |
Tool/scripts/apk/ |
decode.ps1 / rebuild-sign-install.ps1 / frida-run.ps1 |
APK 三件套 | |
| 知识库 | reverselab | Tool/reverselab/kb/(316 文件) |
攻防方法论 |
| seep KB | seep_kb_search / _read / _checklist / _payloads |
在线检索 | |
| 工具资产 | aotopsy | Tool/aotopsy/ |
Flutter AOT 分析 |
跨平台共通项(判型后仍适用)
- 授权/许可分析 → 【前置门控】四问 + 九型判型(两平台通用)
- 知识库查询 →
seep_kb_search→seep_kb_read - 任务建档 →
case-init.ps1 - 报告生成 →
seep_gen_security_report/project-paradigms.md报告模板
调度纪律(四条)
- 门控不可绕过:先 G-Auth → 再平台判型 → 再类型判型 → 再子能力;
- 子 Skill 加载后其纪律同样生效:apkseep 的 G1-G4 门、ida-reverse 的唤醒规约,与本文件同等强制;
- MCP 优先于手动:有
seep_*/mcp_ida_*工具就用工具,不手搓命令; - 知识库优先于从零手写:先
seep_kb_search查方法论与现成代码。
【前置门控】开测四问与七道门(许可/激活/卡密类目标优先过此关)
完整细节见
references/license-validation.md。本节只保留决策所需的门控与路由。 原则:先定权威归属,再选打法。门是通用骨架,案例仅示范一条路径。
开测即答的「四问」(任何客户端通用)
| # | 问题 | 为什么问 |
|---|---|---|
| ① | 权威在哪 —— 校验是服务器审核,还是纯本地判定(离线许可/签名验证)? | 决定"能不能本地改完就赢" |
| ② | 本地能否完成握手 —— 能伪造成立,还是只能中继上游? | 决定结论措辞,防把"能中继"吹成"已绕过" |
| ③ | 有无捷径 —— 后门 / 调试开关 / 环境变量 / 隐藏参数? | 零成本路径,先试再打补丁 |
| ④ | 功能是否与校验分离 —— 真功能能否脱离校验单取即用(DLL/脚本/资源)? | 指向性价比最高的一路(取载荷),最常被忽略 |
七道门(G0–G6)
| 门 | 判据 | 命中则 | 未命中 |
|---|---|---|---|
| G0 权威定性 | 断网 / 改系统时钟 / 改本地许可文件,功能是否仍可用? | 纯本地校验 ⇒ 走离线路线 | 需联网 ⇒ 服务器权威,转 G1 |
| G1 样本定性 | 静态 10 分钟能否判出运行时/壳/子系统/依赖指纹? | 按运行时分流(PE/.NET/Electron/JVM/冻结) | 情报不足转动态观测 |
| G2 写入判死归因 | 改它自己内存里 1 个无害字符,4s 后仍存活? | 存活 ⇒ 无自保护,可继续改内存 | 崩溃 ⇒ 先按"值非法"排除,再定论自保护 |
| G3 端点发现 | 盘上/静态有明文 URL/IP 吗? | 直接读 | 内存取证(扫 ASCII / sockaddr_in) |
| G4 响应判定 | 令牌是否变化?时间戳是否回填?体长恒定而内容随会话变? | 命中 ⇒ 会话绑定 ⇒ 只走中继/DoS | 未绑定 ⇒ 金样回放可破 |
| G5 载荷判定 | 下发载荷:导出表为空?仅导入基础运行库?无自校验/不联网? | 成立 ⇒ 取载荷即用 | 载荷有校验 ⇒ 转密钥提取 / 中继 |
| G6 交付 | —— | 结论分级(确认/现象/N-A)+ 证据路径 + 载荷指纹 + 厂商防护清单 | —— |
门 → 决策树映射(按易至难)
| 门结论 | 决策树路径 | 详解位置 |
|---|---|---|
| G0 纯本地 | 1. 离线判定直接改 | license-validation.md §7.1 |
| 任意阶段发现捷径 | 2. 后门 / 调试开关 | §7 |
| 内层模板可注入 | 3. 协议注入 / 弱 Token 伪造 | §7.3 |
| G4 未绑定 | 4. 密文回放(金样) | §8 |
| G4 绑定 + 上游可达 | 5a. 透明中继(唯一能"本地完成握手"的正解) | §8.5 |
| G4 绑定 + 上游不可达 | 5b. 拒绝服务(等长替换 / netsh 抢回环) |
§5.3 |
| 签名不可伪造 | 6. 密钥提取 / 公钥替换重签 | §7.6 / §7.1 |
| G5 成立 | 7. 取载荷(性价比最高) | §9 |
通用禁令(每条都是踩过的坑)
- 未过 G2 不得批量改内存 —— 否则会把"补丁值非法"误判为"有反内存自保护"(实测白烧 3 轮);
- G4 判绑定后别再试字段二分 —— 本地无法复算,继续试是纯浪费;
- 不轮询抢补丁竞速 —— 配置块常在 13ms 内一次性成型,materialize→connect 只隔微秒,冻结线程也切不开该窗口;
- 等长替换禁前导零 / NUL / 空格填充 —— 数值形 IPv4 不得有前导零(
127.000.000.001被拒收);位宽不足用同长度回环(127.100.100.10); - 结论必须区分"伪造成立"与"仅能中继" —— 这是本门控最重要的交付纪律。
退出/升级判据(防死磕)
- 单条路径 ≤3 轮无进展 ⇒ 挂起转下一路(竞速类"必输"路径直接放弃);
- 内存补丁累计崩 2 次 ⇒ 停改内存,转网络层;
- 金样回放连续静默退出 ⇒ 判会话绑定,转中继;
- 三大路径(离线改 / 回放 / 中继+取载荷)全不通 ⇒ 记为**"现象级 / 需人工深逆",附已排除项**与证据,勿无限重试。
参考索引 —— 何时加载哪个 reference
按需加载,不预先全读。 判型后只加载对应文件。
| reference | 行数 | 何时加载 |
|---|---|---|
references/windows-sop.md |
231 | Windows 平台 + 补丁/本地化/脱壳任务(6 步流水线) |
references/patching-dictionary.md |
17 | 需要具体汇编打桩指令模式时 |
references/defense-in-depth.md |
37 | 输出修复建议 / 加固方案时 |
references/ui-verification.md |
58 | 需要 UI 可判定验收时 |
references/compiler-pitfalls.md |
69 | 写代理 DLL / 补丁工程前必读(5 个陷阱) |
references/project-paradigms.md |
534 | 判型后对照九型范式 / 复现路径 / 报告模板 |
references/license-validation.md |
393 | 许可 / 激活 / 卡密 / 订阅类目标(16 节全量手册) |
references/tooling.md |
42 | 找现成脚本 / 工程模板时 |
MANUAL/ 战术手册索引(按需查阅)
MANUAL/ 存放深度专项 SOP,由 Agent 在触碰对应信号时主动加载。
| 手册 | 触发条件 | 核心内容 |
|---|---|---|
MANUAL/ANTI-DEBUG.md |
G0/G1 检测到 IsDebuggerPresent、NtQueryInformationProcess、驱动级检测、时序反调试等信号 |
全量反调试绕过字典、代理 DLL 打桩框架、内核层 SOP 与两击熔断规则 |
MANUAL/UNPACKING.md |
G0/G1 检测到 MPRESS/UPX/Themida/.vmp 节名,或 seep_auto_triage 熵值 > 7.2 |
壳类型速查表、OEP 定位三策略、Scylla 内存 Dump 全流程、VMP 动态 trace 路线 |
MANUAL/POC-VALIDATION.md |
G4/G5 生成 PoC 后(Frida 脚本 / Smali 补丁 / 代理 DLL)必读 | 三阶段闭环验证模型、Frida 自愈映射表、Smali/DLL 本地加载器、断网铁证流程 |
MANUAL/IDA-PRO.md |
用户询问 IDA Pro 接入或 ida MCP 无法启动时 | IDA 安装配置、install-ida.ps1、Radare2 降级路线 |
MANUAL/PREREQUISITES.md |
首次部署或环境报错时 | Python/Node/JDK/ADB 版本要求与修复指引 |
快速对应
| 你要做的事 | 加载 |
|---|---|
| 打内存补丁 / 写代理 DLL | windows-sop.md + compiler-pitfalls.md |
| 判"该走补丁还是算号" | project-paradigms.md(九型 + D2.5 三问) |
| 许可/激活/卡密专项 | license-validation.md |
| 出加固方案 | defense-in-depth.md |
| UI 文案/状态验收 | ui-verification.md |
| 找现成脚本 | tooling.md |