reverse-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok609hecl1pq6qi
2026-10-20 02:17:15 +03:00
commit da24c2bd20
2227 changed files with 443931 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
# 中途再路由触发表
运行时证据触发的唯一事实源(区别于 triage.md 的入口「目标→路径」决策表)。分析过程中按双轨使用:
- **轨 1(网关完成必查)**:每网关完成后对照 A/B 表检查新证据
- **轨 2(证据出现即查)**:每产出新证据类型(字符串/节表/行为/加密特征)立即对照 A 表
- **未命中** → 按 B 表约束行动,禁止自行硬琢磨
**A 表按能力匹配**:证据特征先映射到「需要能力」,再经 `capability-index.md` 反查提供该能力的技能——技能列是索引结果,不是领域名硬编码;`npm test` 校验「能力列标签在注册表内」且「本行技能确实声明了该能力」。
## A 表:证据特征 → 需要能力 → 触发技能
| 证据特征(分析中看到) | 需要能力 | 触发技能(索引反查) |
|---|---|---|
| 节表异常(UPX0/.aspack)、熵 >7.0 | `unpack` | [[re-packer-id]] → [[re-anti-analysis]] |
| 未知加密算法、S-box/常量指纹、加密流量 | `crypto-identification` | [[re-crypto-id]] |
| 硬编码密钥/口令、内存中的 key | `key-extraction` | [[re-crypto-keys]] |
| 解密函数已定位、密文可还原 | `crypto-decryption` | [[re-crypto-decrypt]] |
| 反调试/反 VM 特征(ptrace、CPUID、时间检测) | `evasion-analysis` | [[re-anti-analysis]] / [[re-evasion]] |
| 动态注册 JNI、so 函数级加密 | `jni-analysis` | [[re-android-native]] |
| 混淆(CFF/花指令/字符串加密) | `deobfuscation` | [[re-deobfuscate]] |
| 网络回连/信标/C2 特征 | `network-capture` | [[re-netcap]] → [[re-behavior]] |
| 持久化/注入/进程树异常 | `malware-behavior` | [[re-behavior]] |
| 崩溃/段错误/ASAN 报告 | `debugging` | [[re-crash-triage]] |
| Python 打包特征(PyInstaller/PyArmor) | `bytecode-parser` | [[re-python]] |
| 加固商特征(Android 加固壳) | `unpack` | [[re-mobile-pack]] |
| RTTI/异常表(.pdata/.xdata)密集 | `decompilation` | [[re-cpp-abi]] |
| PDF/Office 宏/钓鱼文档特征 | `document-malware` | [[re-doc-malware]] |
| 补丁/N-day 对比需求(修复前后/变体) | `binary-diffing` | [[re-variant]] |
| 文件尾附加/图片异常(隐写怀疑) | `stego-detection` | [[re-stego]] |
| 白盒加密特征(大查表 + 编码网络) | `crypto-identification` | [[re-whitebox]] |
| 内核驱动/rootkit 结构 | `kernel-analysis` | [[re-kernel]] |
| 内存区被改成可执行(W→X / RWX)、无背书区域在执行 | `sample-acquisition` | [[re-sample-acquire]] |
| 服务端动态注册的组件无对应类文件(内存马特征) | `sample-acquisition` | [[re-sample-acquire]] → [[re-java]] |
| 整机内存镜像(LiME/崩溃转储) | `memory-forensics` | [[re-mem-forensics]] |
| 磁盘镜像/未分配空间/分区表异常 | `disk-forensics` | [[re-disk-forensics]] |
| 越狱检测/tweak(dylib 注入)特征 | `jailbreak-analysis` | [[re-ios-jb]] |
| Flutter/RN 引擎特征 | `hybrid-app-analysis` | [[re-hybrid-app]] / [[re-flutter]] |
| Go buildinfo/pclntab 特征 | `lang-runtime-analysis` | [[re-go]] |
| Rust/Swift/Zig/Nim 产物特征 | `lang-runtime-analysis` | [[re-rust]] / [[re-swift]] / [[re-zig]] / [[re-nim]] |
| MMIO 外设区 + Thumb 特征(嵌入式裸机固件) | `arch-analysis` | [[re-arm]] |
| RISC-V 压缩指令/MIPS 延迟槽特征 | `arch-analysis` | [[re-riscv]] / [[re-mips]] |
| VT-x/SVM 指令(VMXON/VMREAD)或 VMCS 结构 | `hypervisor-analysis` | [[re-hypervisor]] |
| BPF ELF section(.maps/.BTF/.rel*,kprobe/tracepoint 命名节) | `ebpf-analysis` | [[re-ebpf]] |
| VxWorks/QNX 特征串(任务表符号/内核对象命名) | `rtos-analysis` | [[re-rtos]] |
| 进程注册了 pathname 并循环收消息、无内核模块却控制硬件 | `rtos-analysis` | [[re-rtos]](QNX 资源管理器模型) |
| 驱动既不是独立进程也不是内核模块(在网络栈进程内加载) | `rtos-analysis` | [[re-rtos]] → [[re-rtos/qnx]] |
| init/设备对象没有直接 xref、一段规则排列的结构体(链接期注册) | `rtos-analysis` | [[re-rtos/zephyr]] |
| 独立模块大量 unresolved symbols、同版本系统之间行为不一致 | `rtos-analysis` | [[re-rtos/vxworks]] |
| dlopen 语义不像 Unix 共享库、设备分派看不到 file_operations | `rtos-analysis` | [[re-rtos/rtems]] |
| 跨阶段数据结构找不到 producer、runtime 地址与固件地址对不上 | `uefi-analysis` | [[re-uefi/pi-stages]] |
| handle 数值跨进程比对无效、传送后原值失效、同驻驱动有 IPC 无系统调用 | `kernel-analysis` | [[re-kernel/zircon-kernel]] |
| init 函数没有调用者、一段指针数组所在 section 名为 set_* | `kernel-analysis` | [[re-kernel/freebsd-kernel]] |
| 驱动入口为 _init/_fini/_info + modlinkage/dev_ops/cb_ops 骨架 | `kernel-analysis` | [[re-kernel/illumos-kernel]] |
| 同版本内核每次启动布局都不同、两份二进制逐字节不一致 | `kernel-analysis` | [[re-kernel/openbsd-kernel]] |
| 模块自己出现/消失却没有加载者、模块加载失败但文件正常 | `kernel-analysis` | [[re-kernel/netbsd-kernel]] |
| 服务名相同却像连到不同对象、capability 数值被当全局 ID、配额与系统剩余内存矛盾 | `kernel-analysis` | [[re-kernel/genode]] |
| 驱动进程消失又出现、IPC 里的整数疑似 grant、更新期出现两个相同实例 | `kernel-analysis` | [[re-kernel/minix3]] |
| 同名路径访问到不同对象、目录内容像多层叠加、出现不依赖内核模块的新文件系统 | `kernel-analysis` | [[re-kernel/plan9]] |
| PV 设备找不到寄存器窗口、grant ref/event-channel port 被当地址与 IRQ | `hypervisor-analysis` | [[re-hypervisor/xen]] |
| guest 的 MMIO/BAR 与真实硬件对不上、跨 VM 共享区通不了、越权访问后程序突然停住 | `hypervisor-analysis` | [[re-hypervisor/qnx-hypervisor]] / [[re-hypervisor/jailhouse]] / [[re-hypervisor/acrn]] / [[re-hypervisor/bao]] |
| 同一 API 在不同样本里形态完全不同(极短函数 + 立即 trap)、地址权限时有时无 | `rtos-analysis` | [[re-rtos/nuttx]] |
| ISR 里混用 task 版 API、访问权限随运行阶段变化(MPU) | `rtos-analysis` | [[re-rtos/freertos-context]] |
| 大量「填 request ID → 跳公共 dispatcher」、代码地址落在模块内存区之外 | `rtos-analysis` | [[re-rtos/threadx-modules]] |
| ISR 只清状态位就返回、没有线程入口却被反复调用的函数 | `rtos-analysis` | [[re-rtos/ecos]] |
| 高优先级线程不运行且无竞争、采样/队列语义混淆、固定地址的 APEX 服务表 | `rtos-analysis` | [[re-rtos/partitioned-rtos]] |
| 无 caller 的 runnable、隐式访问读到旧值、服务返回 E_OS_ACCESS | `automotive-analysis` | [[re-automotive/autosar-classic]] |
| 二进制已安装但进程不存在、进程清单与模型清单对不上 | `automotive-analysis` | [[re-automotive/autosar-adaptive]] |
| 一个 OS thread 内出现大量"线程切换"(内核调度对不上) | `kernel-analysis` | [[re-kernel/helenos]] |
| read/write 落到的东西不是文件系统、两侧句柄对不上 | `kernel-analysis` | [[re-kernel/redox]] |
| 驱动启动时不在、访问某设备后才出现 | `kernel-analysis` | [[re-kernel/haiku]] |
| 执行地址属于另一个地址空间、无调用者的例程却有行为 | `kernel-analysis` | [[re-kernel/zos]] / [[re-kernel/openvms]] |
| 对象地址不像 DRAM 指针、存储抽象与 POSIX 不符 | `kernel-analysis` | [[re-kernel/ibmi]] |
| 找不到 user→syscall→kernel 边界、syscall 没有特权切换 | `kernel-analysis` | [[re-kernel/unikraft-mirageos]] |
| 中断尾部发生切换、task 就绪不切换、ISR 里调用未立即生效 | `rtos-analysis` | [[re-rtos/ucos-sysbios]] / [[re-rtos/safertos-rtx5]] |
| 同一地址在不同 task 下可访问性不同、句柄不像指针 | `rtos-analysis` | [[re-rtos/safertos-rtx5]] |
| 服务调用在任务里合法、在中断里被拒 | `rtos-analysis` | [[re-rtos/tkernel-toppers]] |
| 消息/信号的对端找不到(疑似跨节点) | `rtos-analysis` | [[re-rtos/ose-oseck]] |
| 小整数句柄被当地址、网络流量中途消失但功能正常 | `hypervisor-analysis` | [[re-hypervisor/hyperv-vmbus]] |
| 找不到资源分配的重配置代码、计划切换不立即生效 | `hypervisor-analysis` | [[re-hypervisor/xtratum]] |
| VM-exit 很少却没有隔离缺失、跨域时间戳对不上 | `hypervisor-analysis` | [[re-hypervisor/questv]] |
| 找不到动态重配置/管理入口、内核里没有驱动与 I/O 栈 | `hypervisor-analysis` | [[re-hypervisor/lynxsecure]] |
| 二进制在但进程不存在、服务发现空结果、无 crash 却重启、更新后数据保留或消失 | `automotive-analysis` | [[re-automotive/autosar-adaptive]] |
| 线性地址下仍有隔离、同一地址权限随任务变、"partition" 一词含义不明 | `rtos-analysis` | [[re-rtos/nucleus]] |
| 软件定时器回调里出现阻塞等待、任务被唤醒却没有资源 | `rtos-analysis` | [[re-rtos/ucos-sysbios]] |
| 小整数句柄被当地址、删除句柄时阻塞、回调返回但资源未释放 | `hypervisor-analysis` | [[re-hypervisor/hyperv-vmbus]] |
| ring 前进却没有通知、event unmask 行为异常、迁移后端口与 domid 变化 | `hypervisor-analysis` | [[re-hypervisor/xen]] |
| 同一源码在不同构建下 I/O 完全不同、全部任务一起卡死 | `kernel-analysis` | [[re-kernel/unikraft-mirageos]] |
| 模块带自描述元数据(UUID/端点/资源/依赖/签名)、IPC 呈入口页+位图+失败分支形态 | `kernel-analysis` | [[re-kernel/hic]] |
| 程序属性导致栈行为相反(栈方向/栈指针偏置)、AMODE/RMODE 不匹配、dump 里控制块对不上 | `kernel-analysis` | [[re-kernel/zos]] |
| 对象/指针分两套(系统指针 vs 空间指针)、静态数据归属不清、产物压缩态 | `kernel-analysis` | [[re-kernel/ibmi]] |
| 异常走"处理器链"而非抛出-捕获、共享镜像与预期不符 | `kernel-analysis` | [[re-kernel/openvms]] |
| 信号号不唯一需次级 id、缓冲区落在别的池、跨 DSP 行为不一致 | `rtos-analysis` | [[re-rtos/ose-oseck]] |
| 同一源码不同配置产物差异极大、异常去向不固定、构造函数被覆盖 | `rtos-analysis` | [[re-rtos/ecos]] |
| .NSO/.NPDM 容器结构(Switch 加密分区) | `console-analysis` | [[re-console]] |
| asar 结构(resources/app.asar + 内部 files 树) | `electron-analysis` | [[re-electron]] |
| CAP 内 Header 组件魔数(DE CA FF ED,文件整体为 ZIP,Java Card 12 组件) | `bytecode-parser` | [[re-javacard]] |
| HarmonyOS hap/hsp 包结构、ArkTS .abc 字节码 | `bytecode-parser` | [[re-harmonyos]] |
## B 表:卡住信号 → 换路
| 卡住信号 | 换路 |
|---|---|
| 同参数重复 ≥2 次无新证据 | 对照 A 表重查 / 换工具视角([[analysis-contract]] 调查预算) |
| 单命令 ≥3 次无进展 | 停下评估,重跑 re-analyze 第二步(任务识别)或换网关 |
| 分析跨目标累计超 30 次工具调用无结论 | 回退到最近有产出的环节,按 [[analysis-contract]] 复核格式交付部分结论 |
| 目标行为与静态结论矛盾 | 动态侧 [[re-sandbox]] / [[re-tracing]] 对照 |
| A 表命中的技能不适用(如目标形态不符) | 查 `capability-index.md` 同一能力下的其他技能(能力相同、形态不同) |
## 使用规则
1. 每产出新证据类型 → 查 A 表,命中即调用对应技能,完成后回到轨 1 继续
2. 每网关完成 → 查 A+B 表
3. 未命中任何表项 → 按 B 表约束行动(换思路/回退/交付部分结论)
4. 新增 A 表行时:先定「需要能力」(注册表标签),再用 `capability-index.md` 反查技能填入——**不要只写领域名技能**(`npm test` 会校验能力与技能声明是否对得上)