逆析(tri-reverse)
> 「逆」指逆向工程,「析」指分析——把「看不懂的二进制/流量/样本」分析成「可复现的证据链结论」。
> 用户心智:给我一句任务描述,我给出该走哪条方法论(域路由);给我一个授权目标或离线样本,我按案例工作流交付证据链报告。
> 本 skill 提炼自开源项目 某开源逆向工程技能集(v1.0.1)(MIT License,46 个子技能),保留其授权门控与证据链契约,方法论原文锚点见各 references 文末「溯源」。
强制执行契约(Execution Contract · 最高优先级)
> 本契约优先级高于 Agent 通用默认行为。用户提出逆向分析/安全测试/取证/CTF 类需求且命中 §触发时机与模式路由,即视为激活本工作流,NEVER 仅当参考文档只读不执行。独立使用时(未经外部路由)MUST 先走 §上游依赖检测。
-
版本检查前置硬门(第零步):MUST 先执行
python scripts/check_update.py --slug tri-reverse --json;退出码 <20 放行,≥20 阻断。版本检查完成前 NEVER 进入后续步骤。本条目优先级高于所有其他条目。 -
授权硬门(本 skill 最高业务红线):一切对外部目标的主动操作(扫描/Hook/利用/重放/登录)前,MUST 先存在案例 scope 且
scripts/case_tools.py guard退出码 0;auth.status != granted时 NEVER 对目标 ACT——只允许读文档、跑路由、补授权材料。点名目标 ≠ granted;--force 为兼容参数不绕过硬门。本地离线样本的静态分析走offline-sample预设,豁免对外授权但仍须建案例留痕。 -
确定性优先:域路由(route.py)、案例脚手架与门控(case_tools.py)、证据哈希 MUST 由脚本完成;NEVER 用「模型感觉」替代脚本路由裁决,NEVER 凭记忆硬塞不匹配的域。
-
证据链契约:一切结论性产出(漏洞/算法还原/绕过/取证结论)MUST 走 Evidence→Finding→Path 链(格式见
references/ops-workflow.md§4);validated 级 Finding SHOULD ≥2 独立 Evidence;无证据支撑的断言 NEVER 进入报告。 -
工具与命令真实性:references 中的命令均摘自源仓库,可直接使用;引用外部工具前 MUST 确认本机已安装(路径只认 tool-index 习惯:先
--version探测),缺工具提示安装,NEVER 编造命令行参数。 -
模式枚举与自检句:每次操作前 MUST 声明「本次模式=<route|case|report>,触发源=<用户显式调用|外部路由>,目标=<离线样本/授权目标/任务描述>,已执行 check_update=<A/B/C/D>,已读教训=<N 条/无文件>,案例=<无|work/<case> guard=exit N>」;与契约冲突时 MUST 停止并纠正。
-
教训文件读写闭环:激活时(版本门第零步后)MUST 先读取
.tribro/tri-reverse/lessons.md(历史教训;目录或文件不存在则静默跳过——NEVER 报错、NEVER 阻断、NEVER 追问);执行结束后 MUST 追加本次教训(日期/场景/教训/可操作规避动作;空泛内容如「本次顺利」NEVER 写入,无新增写「无新增」占位);写入失败 MUST 提示用户但不阻断交付。 -
结论置信标注:一切结论性表达/判定/建议 MUST 附三要素:① 置信度(高/中/低);② 依据类型六选一(
事实 known/计算 computed/推断 inferred/常识 common/框架 iframe/猜测 guess);③ 可验证事实源(URL 或本地证据锚:脚本名+证据路径)。猜测 guess类 MUST 标低置信并提示人工验证。 -
职责边界:本 skill 负责域路由、案例门控、方法论执行与证据链报告;NEVER 代办 tri-coding 的业务编码、NEVER 代办 tri-fix 的缺陷修复、NEVER 产出与当前案例 scope 无关的攻击性操作。
-
证据分层硬约束:每条结论 MUST 标注分析语义层(
observed观察 /derived推导 /inferred推断 /unknown未知)与权威等级(shipped-artifact/controlled-replay/historical-reference/external-service/analyst-inference)。四分法 MECE:MUST NOT 把推断当观察,MUST NOT 把未解问题从结论中静默丢弃。细则见references/evidence-semantics.md。 -
缺失覆盖 ≠ 缺失(反幻觉第一红线):MUST 仅在覆盖完整 ∧ 未截断 ∧ 无省略三重条件同时满足时,才可声称「某物不存在 / 某变更未发生」;任一不满足 MUST 输出
unknown并声明覆盖边界。跨权威等级、跨分析工具的结果 MUST NOT 做等价或差异判定(工具差异会被误读为代码差异)。「已验证通过」MUST 携带验证契约摘要并声明「通过 N 项、未覆盖 M 项」,MUST NOT 声称全局等价。细则见references/evidence-semantics.md。 -
能力可用性是运行时属性:选定引擎前 MUST 逐项确认前置依赖(存在性 / 版本 / 宿主 / 许可),MUST NOT 假设外部引擎已就绪,MUST NOT 在错误宿主上给出必然失败的命令。凡依赖未验证能力路径的结论 MUST 降置信并在「已知局限」中显式声明。细则见
references/provider-capability-matrix.md。 -
观察边界(被动 ≠ 主动):以观察方式附加到运行中目标时,MUST NOT 声称执行了交互、导航、页面脚本求值、IPC 调用、既往活动捕获或网络隔离;MUST NOT 声称获取到凭据、Cookie、授权头、存储值或原始消息体(这些刻意缺席)。主动交互 MUST 先过 guard 且不超出请求范围。细则见
references/staged-investigation.md§2。 -
资源所有权先于干预:干预任何进程/句柄/临时目录前,MUST 完成五项身份判据(运行令牌一致 / 启动时刻可验证 / PID 复用显式排除 / 父子关系可验证 / 令牌与身份同实例)——PID + 可执行路径不足以确立所有权。清理未确认时 MUST 保留所有权记录与完整坐标,MUST NOT 宣告资源已释放。截断 MUST 传播为覆盖降级,MUST NOT 当作完整观察。细则见
references/staged-investigation.md§3。
触发时机与模式路由
| 用户意图(示例) | 模式 | 说明 |
|---|---|---|
| "逆向这个 APK/EXE/so"、"分析这段 JS 的签名"、"这个样本是病毒吗" | route |
确定性路由 + 子域方法论执行 |
| "对 example.com 做授权渗透"、"帮我打通这道 pwn"、"取证这台机器的内存镜像" | case |
授权门控案例工作流(guard 通过才 ACT) |
| "把这次的测试写成报告"、"出一份渗透/逆向报告" | report |
Evidence→Finding→Path 证据链报告 |
| "不知道从哪开始,就一个 bin 文件" | route |
路由兜底域 D1(通用二进制逆向) |
路由三原则:① 用户不必知道域名单,一句话描述即可(route.py 兜底);② 已提供的信息直接提取,只补必缺项;③ 对外目标必须先建案例过 guard,离线样本走 offline 预设。
上游依赖检测(独立使用时)
| 模式 | 触发条件 | 行为 |
|---|---|---|
| A · 直用模式 | 用户给出任务描述或样本/授权目标 | 直接进入 §触发时机与模式路由 对应模式(本 skill 无强制外部 skill) |
| B · 引导补参 | 缺模式必填项(如 case 模式无授权依据、guard exit 2) | 按 guard 输出的 issue 清单用 AskUserQuestion 补齐授权材料后重入;NEVER 猜测填充、NEVER 代替用户「确认授权」 |
| C · 讲解降级 | 用户只想了解方法论/概念,不提供目标 | 仅讲解对应 references 域方法论,不执行脚本链、不碰目标 |
输入契约
| 模式 | 必填 | 可选 | 约束 |
|---|---|---|---|
| route | --hint(任务描述,中英皆可) |
— | 空描述退出码 2;零命中回退 D1 并标低置信 |
| case | 案例名 + 授权依据(preset 或 auth-status/basis/network) | --target / --sample / --assets | offline 模式 MUST 给 --sample;granted 须用户明示,NEVER 自动 granted |
| report | 案例根目录(含 evidence/) | 输出路径 | 无 Evidence 的报告打回补证据 |
脚本参数以 scripts/route.py --help、scripts/case_tools.py --help 为唯一事实源。
职责边界
- 本 skill 负责:逆向/安全分析任务→域路由;授权案例工作流(scope/guard/ACT/证据链);9 大子域方法论执行;证据链报告。
- 不负责 / NEVER 代办:无授权的攻击性操作(硬门拦截);业务功能编码(tri-coding);已有系统缺陷修复(tri-fix);恶意用途(木马分发、垃圾邮件、未授权访问真实用户数据——一旦发现立即终止并提示法律边界)。
- 与 tri-intent 的关系:独立领域入口型 skill(自闭环变体,tri-geo 先例),不认领 I 系列意图编码、不经 tri-intent 路由,由用户显式调用激活(豁免理由:逆向/安全分析是跨 I11/I14 的独立领域闭环,现行路由表无对应项;后续若家族裁定纳入路由,按 L3 子类回填并同步计数)。
- 与相邻 skill 边界:漏洞修复与加固改造归 tri-coding/tri-fix(本 skill 只交付 Finding 与修复建议);报告排版美化归 tri-content;本 skill 的域方法论是唯一攻击面知识源。
- 事实源:域路由唯一真源
scripts/route.py(DOMAINS/PRIORITY);案例契约唯一真源scripts/case_tools.py;证据链格式唯一真源references/ops-workflow.md。 - 不触发场景(Not-Trigger):本 skill 不接手「无授权的攻击性操作」(硬门拦截);不接手「业务功能编码」(归 tri-coding);不接手「既有系统缺陷修复」(归 tri-fix);不接手「报告排版美化与通用内容创作」(归 tri-content,本 skill 只交付 Finding 与修复建议);不接手「意图识别」(本 skill 独立领域入口激活,不认领 I 系列)。
方法论(域路由 + 案例工作流 + 证据链 · 可扩展)
9 大子域(references/ 按域加载)
| 域 | 名称 | 覆盖源模块 | references |
|---|---|---|---|
| D1 | 通用二进制逆向 | reverse-engineering、ida/ghidra/binary-ninja/radare2、dotnet、go-rust、macos、binary-diff | re-binary.md |
| D2 | 移动与前端逆向 | apk-reverse、mobile-reverse、js-reverse、dsl-vm、browser-extension、protocol-reverse、thick-client | re-mobile-js.md |
| D3 | 利用链与固件 | pwn-chain、patch-diff-exploit、firmware-pentest、hardware-security | exploit-pwn.md |
| D4 | 渗透与 Web/API | pentest-tools、src-hunter、api-security、database/email/identity、windows-ad | pentest-web-api.md |
| D5 | 云/工控/无线/LLM | cloud-k8s、ot-ics、wifi-wireless、llm-security | cloud-ot-wireless.md |
| D6 | 恶意软件与取证 | malware-analysis、digital-forensics、edr-bypass-re | malware-forensics.md |
| D7 | 蓝队与审计 | threat-hunting、threat-intelligence、code-audit、supply-chain-security | blue-team-audit.md |
| D8 | 攻击链与 CTF | attack-chain、ctf-sandbox | attack-ctf.md |
| D9 | 工作流与交付 | ops 契约、case-review、docs/diagram-generator、browser-automation | ops-workflow.md |
路由裁决语义(继承源 master-route)
每域关键词正则命中 +1 分;按 PRIORITY 顺序取最高分为 PRIMARY(并列时 priority 靠前者胜出,特定域先于泛域);零命中回退 D1 标低置信。细则见 scripts/route.py(SSoT)。
正交的第二层:入口路由(目标类型 → 最小入口)
域路由回答「这是哪类任务」,入口路由回答「第一手落在哪」。两者正交,先域后入口:
| 目标类型 | 首入口 | 关键提醒 |
|---|---|---|
| 本地可执行文件 / 库 / 分析数据库 | 打开目标 + 全局概览/清单 | 先过能力矩阵确认引擎可用 |
| 归档/包成员(ZIP/APK/IPA/MSIX/AppX/ASAR/DMG) | 归档成员清单 | 先知道有什么,再决定看什么 |
| 解压后 JS / Electron 目录树 | 应用级静态分析 | 无需原生引擎;结果可能很大,先存文件 |
| 托管程序集(.NET) | 托管元数据清点(无执行) | MUST NOT 声称加载/反射/执行 |
| Android APK | APK 静态分诊 | 反编译依赖自备 JADX,诊断不覆盖此项 |
| 固件镜像 | 固件区域识别 | Linux only;无工具链则降级并声明 |
| 离线 Linux ELF | 离线布局检查(无需反编译器) | 缓解措施是观察,非「无漏洞」 |
| core dump(Linux x64) | 崩溃记录检查(不开活进程) | 历史 PID 不指向活进程 |
| EVM 字节码载体 | 字节码接口检查 | 全程 inferred;无链上查询、无执行 |
| 已开的浏览器 / Electron 运行时 | 目标发现 | 被动观察,见契约 12 |
| 已留存网络捕获文件 | 捕获文件检查 | 不回放原 URL;凭据字段已剔除 |
| 待比较的两个版本 | 先确认两侧覆盖都完整 | 覆盖不全 → 只能给 unknown |
| 「我不确定这是什么」 | 格式判定 → 清单 → 分流 | 先分类再动手 |
细则见 references/target-routing-matrix.md(含 target-free / 需绑定入口的区分、嵌套包逐层登记、完整性冲突作一等结论)。
结论可信度四道判据(结论产出前 MUST 逐项过)
| # | 判据 | 规则 | 出处 |
|---|---|---|---|
| 1 | 分层 | 每条结论标 observed/derived/inferred/unknown + 权威等级 |
evidence-semantics.md §一§二 |
| 2 | 覆盖 | 「不存在」类断言 MUST 过 C1 覆盖完整 ∧ C2 未截断 ∧ C3 无省略 | evidence-semantics.md §三 |
| 3 | 可比 | 跨权威等级 / 跨工具 MUST 标 unknown,不做等价判定 |
evidence-semantics.md §2.1§2.2 |
| 4 | 反回溯 | 验证类结论 MUST 携带契约摘要 + 声明未覆盖项 | evidence-semantics.md §五 |
四道判据任一不过 → 该结论 MUST 降置信或改写为 unknown,NEVER 带缺口交付。
案例工作流(case 模式主链)
route.py 定域 → case_tools.py init 建 work/<case>/ → case_tools.py guard 硬门(exit 0 方可 ACT)
→ 按域 references 执行方法论 → case_tools.py evidence 追加证据 → 提升 Finding/Path
→ 可追溯性自查 → report 模式出报告 → 教训回写
可扩展性
- 新增子域:在
scripts/route.pyDOMAINS 追加域条目 +references/新增域文档 + 本表追加一行(版本 MINOR bump)。 - 新增预设:
case_tools.pyPRESETS 追加(与 ops-workflow.md §2 同步)。 - 新增目标类型入口:在
target-routing-matrix.md§1 追加行(不改域表)。 - 新增引擎/能力:在
provider-capability-matrix.md§1 追加行,MUST 同时填「前置依赖 / 宿主要求 / 验证状态」三列,验证状态缺失即视为未完成。 - 新增代码级纪律:在
code-representation-discipline.md§9 自检表追加一行(须附失败模式说明)。 - 修订方法论:直接改对应域 references(保留源锚点),纯内容纠错 PATCH、能力新增 MINOR。
处理流程
- 第零步:版本门(契约 0)→ 读教训文件(契约 6)。
- 模式判定:按 §触发时机与模式路由 定 route/case/report;不能判定时问一句。
- route 模式:
route.py --hint "<任务>" --json→ 打开 PRIMARY reference → 按入口路由表取首入口(target-routing-matrix.md)→ 选定引擎前过能力矩阵(provider-capability-matrix.md)→ 按《通用工作流》执行(离线静态分析可直接执行;涉对外目标转 case 模式)。 - case 模式:
case_tools.py init(选预设)→ 用户补授权材料 →guardexit 0 → 执行域方法论 → 每个关键观察evidence落证 → 提升 Finding/Path。 - report 模式:读 case evidence/ → 按证据链组装报告(Evidence→Finding→Path + 置信标注)→ 落
work/<case>/report/。 - 结论过四道判据:按 §结论可信度四道判据 逐项过(分层 / 覆盖 / 可比 / 反回溯),任一不过则降置信或改写为
unknown(契约 9–11)。 - 收尾:教训追加写入;完成判据逐项自检(见 §完成判据,12 项)。
脚本调用契约(3 个领域脚本 + 版本门)
| 脚本 | 职责 | 典型调用 | 退出码 |
|---|---|---|---|
| check_update.py | 版本门第零步(家族同源) | --slug tri-reverse --json |
<20 放行 / ≥20 阻断 |
| route.py | 确定性域路由(SSoT:DOMAINS/PRIORITY) | --hint "逆向这个APK" --json |
0 / 2 用法错误 |
| case_tools.py init | 案例脚手架 + scope.md(四预设) | init --case-name c1 --preset offline-sample --sample app.apk |
0 / 1 参数或冲突 |
| case_tools.py guard | ACT 前授权硬门 | guard --case-root work/c1 |
0 就绪 / 2 未就绪 / 1 用法错误 |
| case_tools.py evidence | 证据追加(自动 sha256) | evidence --case-root work/c1 --id E-001 --title "..." --repro "..." |
0 / 1 案例缺失·id 非 E-\d{3,}$·artifact 声明但不存在(后者可 --allow-missing-artifact 显式豁免,记 artifact_status=missing) |
| apk_triage.py | APK 静态分诊(指纹/AXML manifest/dex+libapp.so 侦察/加固识别;Flutter 自动转扫、多 ABI 去重、扫描范围回显) | --apk app.apk --out result.json [--max-dex N];--selftest 自检 |
0 / 2 样本错误或非标准包结构 / 3 selftest 失败 |
| case_review.py | 案例只读复查(scope 就绪/Evidence hash/F↔E 追溯/Path 引用) | --case-root work/c1 --strict |
0 通过 / 2 存在问题 / 1 用法错误 |
交付产物机制
| 产物 | 路径 | 内容 | 模式 |
|---|---|---|---|
| 路由卡(stdout/JSON) | — | PRIMARY 域 + reference + 置信度 + 依据 | route |
| 案例目录 | work/<case>/ |
scope.md / timeline.md / workitems.md / README.md + evidence/ notes/ report/ | case |
| 证据记录 | work/<case>/evidence/E-*.md |
E-{nnn} 契约字段 + sha256 | case |
| 分析报告 | work/<case>/report/YYYY-MM-DD_[类型]-[目标]-report.md |
Evidence→Finding→Path 链 + 置信标注 | report |
| 教训台账 | .tribro/tri-reverse/lessons.md |
追加式:日期/场景/教训/规避动作 | 全部 |
质量标准
| 维度 | 标准 | 验证方式 |
|---|---|---|
| 路由可复现 | 同一 hint 输出逐字节一致;域表与 PRIORITY 单点维护 | route.py --json 两次 diff(T3) |
| 授权硬门 | auth.status != granted 时 guard exit 2;--force 不绕过 | T4 门控注入用例 |
| 证据可溯 | 每条 Finding 可回溯 ≥1 条 Evidence(含 sha256);artifact 改动可被复查拦截 | scripts/case_review.py --case-root work/<case> --strict(T10) |
| 证据可核验 | Evidence 的 --id MUST 匹配 ^E-\d{3,}$;声明 artifact 时 MUST 存在(或显式豁免);复查输出 MUST 回显 可核验性:hash 复核 n/m 条,无 artifact 声明时 NEVER 声称「hash 校验过」 |
case_review.py 输出中 可核验性 行(T11) |
| 扫描范围可回显 | 分诊 MUST 输出 scan_scope(dex 全量/限量与跳过清单、native 扫描目标与 ABI 去重);同名 .so 只扫一个 ABI,NEVER 让同一份代码被计成 N 次命中 |
apk_triage.py --selftest 的 multidex 夹具(T9/T11) |
| 追溯零命中不静默 | report 内出现 F-/P- 字样但块解析为 0 时 MUST 显式报,NEVER 判 OK |
case_review.py --strict(T11) |
| 方法论忠实 | references 命令均带源锚点,可回查 某开源逆向工程技能集 原文 | 溯源段抽查 |
| 证据分层完整 | 每条结论带 semantic_layer(observed/derived/inferred/unknown)+ authority;高影响 Finding 至少 1 条 observed/derived 支撑 |
抽查结论段(契约 9) |
| 缺失覆盖判定 | 「不存在/未发现」类断言 MUST 过 C1∧C2∧C3;未过 MUST 已改写为 unknown |
抽查否定式断言 + limitations(契约 10) |
| 可比性纪律 | 跨权威等级 / 跨工具的等价与差异判定 MUST 标 unknown 并附限制说明 |
抽查 limitations 固定条目 |
| 能力声明诚实 | 依赖未验证能力路径的结论 MUST 降置信 + 出现在「已知局限」 | 抽查能力矩阵命中项(契约 11) |
| 观察边界严守 | 观察类结论 MUST NOT 含交互/导航/页面求值/IPC/既往活动/网络隔离声称;MUST NOT 声称获取凭据类内容 | 抽查运行时段结论(契约 12) |
| 资源所有权 | 对进程/句柄的干预 MUST 附五项身份判据证据;清理未确认 MUST 保留所有权坐标 | 抽查 ACT 记录(契约 13) |
| 代码表示法 | 新增解析器/比对逻辑 MUST 过 §code-representation-discipline 十项自检 | 提交前对照表逐项过 |
| 版本强一致 | SKILL == CHANGELOG == tests == _meta.json | tests/verify_tri_reverse.py T0 |
| 文档同步 | README/SKILL 无矛盾;目录树与磁盘 diff 一致 | verify T1/T6 |
落盘规则
work/<case>/ 案例产物(scope/timeline/workitems/evidence/notes/report)
.tribro/tri-reverse/lessons.md 执行教训台账(追加式)
- 案例产物落用户工作区
work/<case>/(承接源仓库惯例;分析对象与证据属用户项目资产)。 - 本 skill 自身教训落
.tribro/tri-reverse/lessons.md(目录不存在自动创建)。 - field-journal 替代声明:源仓库的 case 级 field-journal 机制由本 skill 的全局教训台账
.tribro/tri-reverse/lessons.md承接(案例级时间线在work/<case>/timeline.md),不再单独产 journal 文件。 - NEVER 生成
LICENSE与.gitignore——许可证仅由 frontmatterlicense: MIT声明。
版本检查与更新机制(强制技术约束 · 硬红线)
> 家族级强制技术约束,优先级与「强制执行契约」同级。细则唯一真源:references/version-check-spec.md;可执行实现:本 skill 自带 scripts/check_update.py(与 家族同源,按 --slug 自适应)。
python scripts/check_update.py --slug tri-reverse --json
- 退出码
<20放行(0=A 最新 / 10=B 离线 / 11=C 未注册 / 12=D 升级降级),20=BLOCK 绝对禁止执行。 state A/B/C/D一律放行并按warnings/notes标注口径;skill 尚未注册 skillhub 时自然落 C 态降级放行,属预期行为。- 铁律:版本比较/升级/四态判定 MUST 由脚本完成,prompt 层仅调用脚本 + 解析 JSON,NEVER 内联细则;完整细则见真源。
知识装配顺序
references/ 共 16 个文件:15 个域/工作流/纪律文档参与下表装配(同名只加载一次、冲突以本 skill 内 references/ 为准),version-check-spec.md 为版本门细则指针、不参与装配、不适用「grep 检索模式 / 溯源」断言:
| 层 | 文件 | 加载时机 | grep 检索模式 |
|---|---|---|---|
| 常驻层 | ops-workflow.md | case/report 模式启动前 MUST 读 | auth.status、E-/F-/P-、ready_for_act |
| 门槛层 | engagement-criteria.md | 评估能否开工 / 出具取证与漏洞结论前 | 授权、范围、时间窗、F1–F4、PoC、划界 |
| 门槛层 | evidence-semantics.md | 任何结论性产出前 MUST 读(四道判据判据 1/2/3/4 的唯一真源) | authority、observed、unknown、覆盖、完备性 |
| 门槛层 | provider-capability-matrix.md | 选定分析引擎 / 依赖某能力前 MUST 读 | BYO、前置依赖、已验证、未验证、能力差异 |
| 门槛层 | target-routing-matrix.md | 拿到目标后、动手前 MUST 读(定第一手落点) | 首入口、最小入口、target-free |
| 门槛层 | staged-investigation.md | 任务跨多特性/子系统时 MUST 读;单点任务可跳过 | 阶段门、问题清单、并行分解、被动观察、进程身份 |
| 横向层 | code-representation-discipline.md | 编写/审查解析器、比对逻辑、工具封装时 MUST 读;纯执行分析可不读 | 规范排序、复合键、透明包装器、AST 遍历、副作用审计 |
| 模式层 | re-binary.md | D1 路由命中 | 导入表硬门、headless、pclntab |
| 模式层 | re-mobile-js.md | D2 路由命中 | jadx、frida、补环境、opcode |
| 模式层 | exploit-pwn.md | D3 路由命中 | checksec、ROP、binwalk、emba |
| 模式层 | pentest-web-api.md | D4 路由命中 | nmap、sqlmap、bola、kerberoast |
| 模式层 | cloud-ot-wireless.md | D5 路由命中 | kubectl、purdue、airodump、prompt-injection |
| 模式层 | malware-forensics.md | D6 路由命中 | yara、volatility、unhook、t1562 |
| 模式层 | blue-team-audit.md | D7 路由命中 | hypothesis、semgrep、sbom、cosign |
| 模式层 | attack-ctf.md | D8 路由命中 | kill chain、subfinder、ctf、awd |
装配纪律:门槛层五件(engagement-criteria + 四份语义/矩阵/编排文档)回答的是「这个结论能不能这么下」,模式层八件回答的是「这个域怎么下手」。前者管可信度、后者管手法,两者不可互相替代——手法正确不等于结论可信。
目录结构
tri-reverse/
├── SKILL.md # 主入口:契约/模式路由/脚本契约/证据链/红线
├── README.md # 特性/目录结构/安装/使用/测试/设计原则
├── CHANGELOG.md # 版本历史(Keep a Changelog)
├── _meta.json # slug + version
├── references/ # 15 个域/工作流/纪律文档 + 1 个版本门细则(见 §知识装配顺序)
│ ├── ops-workflow.md
│ ├── evidence-semantics.md # 证据四分法 + 权威分级 + 完备性推导 + 反回溯契约
│ ├── provider-capability-matrix.md # 引擎能力矩阵 + BYO 前置 + 已验证/未验证/不适用三态
│ ├── target-routing-matrix.md # 目标类型 → 最小入口(14 类)+ 嵌套包 + 完整性冲突
│ ├── staged-investigation.md # 七阶段编排 + 被动观察边界 + 资源所有权五判据
│ ├── code-representation-discipline.md # 横向层:排序/复合键/包装器/遍历/副作用/核算纪律
│ ├── re-binary.md
│ ├── re-mobile-js.md
│ ├── exploit-pwn.md
│ ├── pentest-web-api.md
│ ├── cloud-ot-wireless.md
│ ├── malware-forensics.md
│ ├── blue-team-audit.md
│ ├── attack-ctf.md
│ ├── engagement-criteria.md # 开工门槛 K1–K4 / 取证保全 F1–F4 / 与防御侧划界
│ └── version-check-spec.md # 版本门细则(STUB 指针,NEVER 内联)
├── scripts/
│ ├── check_update.py # 版本门(家族同源)
│ ├── route.py # 确定性域路由(SSoT)
│ ├── case_tools.py # 案例脚手架/授权硬门/证据追加
│ ├── apk_triage.py # APK 静态分诊(AXML 实证解析器,--selftest)
│ └── case_review.py # 案例只读复查(hash 校验/F↔E 追溯)
└── tests/
├── verify_tri_reverse.py # 离线验收(T0-T10)
└── tri-reverse-full-testcases.md # 全场景测试用例(带 frontmatter)
进化契约
- 反馈接收点:用户对路由结果、方法论步骤、报告结构、门控行为的任何反馈与纠错,MUST 记入
.tribro/tri-reverse/lessons.md。 - 经验沉淀位:
.tribro/tri-reverse/lessons.md(启动读取 → 缺失静默跳过 → 结束追加写入,见契约条目 6)。 - 自我修订触发条件:① 路由误判(hint 与正确域不符)→ 修订
route.pyDOMAINS 正则并同步本文件域表;② 源仓库 upstream 更新 → 增量提炼 references 并 bump MINOR;③ 案例契约漂移 → 修订case_tools.py并同步 ops-workflow.md(脚本与文档 MUST 同改)。修订后 MUST 重跑tests/verify_tri_reverse.py。
完成判据(每次运行结束 MUST 自检)
- 版本门已执行且退出码 <20;
- 模式已声明且在枚举内;route 模式路由结果附置信度与依据;
- case 模式 guard 已执行且 exit 0 后才发生任何对外操作;
- 结论均有 Evidence 支撑且落盘可查;
- 报告含 Evidence→Finding→Path 链与置信标注;
- 教训已写入
.tribro/tri-reverse/lessons.md(或写入失败已提示用户); - 交付形态明确「停车态」或「结束态」;
- 每条结论已标
semantic_layer+authority(契约 9); - 所有「不存在/未发现」断言已过 C1∧C2∧C3,或已改写为
unknown(契约 10); - 依赖未验证能力的结论已在「已知局限」声明并降置信(契约 11);
- 观察类结论未越 §观察边界 六条禁止声称(契约 12);
- 对进程/资源的干预已附五项身份判据;清理未确认已保留所有权(契约 13)。
停车态 ≠ 结束态:等待用户补授权材料(guard exit 2)、等待样本、报告草稿待确认——均为停车态,NEVER 宣告任务结束;脚本链跑完且判据 1-6 全绿方为结束态。
合规与法律边界(本域专属红线)
- 本 skill 全部能力仅面向授权安全测试、CTF/靶场、自有系统分析、恶意软件防御性分析、数字取证五类场景。
- 出现以下信号 MUST 立即终止并说明:无授权第三方目标、规避执法取证、勒索/勒信、真实用户数据窃取、对关键信息基础设施的未授权测试。
- 测试产物中的敏感信息(IP/主机名/凭证)在报告与分享件中 MUST 脱敏(占位符)。
- 源仓库 某开源逆向工程技能集 以 MIT 许可发布,本 skill 遵循同源许可并保留方法论溯源锚点。