Files
reverse-skills-max/vendor-new/rev-skills/docs/superpowers/specs/2026-08-18-re-skill-expansion-design.md

6.4 KiB
Raw Permalink Blame History

rev-skills 能力新增设计(2026-08-18)

背景

rev-skills(89 技能 = 1 入口 + 12 网关 + 76 原子)经四库拆解与技能级对标调研(ctf-skills / headless-ghidra / Android-Pentesting-Skill / android-reverse-engineering-skill 等),识别出 5 项生态已有、本库缺失的能力。用户确认全部新增。

设计约束(沿用全库红线与原则):

  • 红线 1 呈现中性:禁用「最推荐」等强推措辞
  • 红线 2 隐私脱敏:内容不指向具体项目/公司/产品
  • 不绑定具体工具:方法为核心,工具为可替换示例(工具准备章节保留跨 OS 安装指引)
  • 工作区有 3 个未提交文件(re-binary-core / re-mobile / re-protocol 的 SKILL.md)——各提交不得包含它们

变更总览

# 项 类型 计数影响
1 re-python 新原子技能(挂 re-managed) 90
2 re-frida-script-author 新原子技能 91
3 Keystore 审计 并入 re-android-native —
4 Flutter MethodChannel 拦截 并入 re-hybrid-app —
5 svc 裸系统调用检测 并入 anti-dynamic-workflow.md —

最终:91 技能 = 1 入口 + 12 网关 + 78 原子。

① re-python(新原子技能)

  • 定位:Python 打包/混淆样本分析——PyInstaller / PyArmor / Nuitka / Cython / pyc
  • frontmatter:name: re-python,description 含触发词:Python打包、PyInstaller、PyArmor、pyc、python exe、Python 样本
  • 章节(按 docs/skill-template.md 原子技能规范):
    1. 何时使用 / 何时不用——用:PyInstaller 单文件/目录 exe、PyArmor 加固、.pyc 样本、Nuitka/Cython 编译产物;不用:纯 .py 源码混淆(转 re-script-deob)
    2. 工具准备——pyinstxtractor(pip 或脚本)、PyArmor-Unpacker(按版本选法)、pycdc / pycdas、python3、file;各工具跨 OS 安装命令
    3. 操作步骤——
      1. 识别打包器:file + strings 特征(PyInstaller 的 PyInstaller/_MEI 字符串、PyArmor runtime 特征)
      2. PyInstaller 解包:pyinstxtractor 提取归档,定位主 .pyc
      3. PyArmor 解包:按 PyArmor 版本选 PyArmor-Unpacker 三方法之一
      4. pyc 版本识别:magic 号对照表(按 struct.unpack 读头 4 字节,对照 Python 版本)
      5. 清理 confusion code:删假函数/死代码,定位核心加密/外泄逻辑
    4. 跨域联合——re-managed 网关调用;纯脚本混淆转 re-script-deob;恶意场景转 re-malware;pyc 深度还原转 re-binary-core
    5. 常见坑与陷阱——pyc 版本不匹配、PyArmor 版本差异、Cython 产物无 pyc、假函数干扰定位
  • 挂载:re-managed 选择树加分支「.exe 且含 PyInstaller/PyArmor 特征 → re-python」

② re-frida-script-author(新原子技能)

  • 定位:目标特征 → Frida 脚本生成方法论(探 → 选 → 改 → 验);独立于 re-frida 的执行操作(用户确认独立技能)
  • frontmatter:name: re-frida-script-author,description 含触发词:生成Frida脚本、写hook脚本、frida脚本怎么写、写个hook
  • 章节:
    1. 何时使用 / 何时不用——用:需要新脚本时(拦截/绕过/追踪);不用:执行现成脚本(转 re-frida)
    2. 工具准备——frida-tools、python3、目标设备/模拟器;模板素材 frida-scripts
    3. 操作步骤——
      1. 目标侦察:静态特征(目标 API/类名/加固商)+ 基线行为(崩溃迭代法,见 anti-dynamic-workflow)
      2. 检测点/目标 API 识别:加密 → 拦截模板;证书固定 → SSL 模板;双向 TLS → keystore 模板;反调试 → 检测绕过模板
      3. 模板选择:按 frida-scripts 模板表选骨架
      4. 改写:包名/类名/方法名/overload 精确匹配(保存 original、带 this 调用)
      5. 验证:spawn + --pause 跑通,输出 JSON 可解析,失败回退步骤 2
    4. 跨域联合——re-frida 执行;re-mobile / re-android-native 场景衔接;anti-dynamic-workflow 对抗面
    5. 常见坑与陷阱——overload 不匹配静默失效、Java.use 缓存覆盖、参数索引版本相关、先探后写不猜
  • 挂载:re-frida 跨域联合加「脚本生成 → re-frida-script-author」

③ Keystore 审计(并入 re-android-native)

re-android-native 加「Keystore 审计」章节:

  • AndroidKeyStore 遍历:KeyStore.getInstance("AndroidKeyStore") → aliases() 枚举
  • 条目属性:算法/用途/来源(KeyInfo 的 isInsideSecureHardware——TEE vs StrongBox 区分)
  • 用途判断:签名密钥 / 加密密钥 / 生物绑定(setUserAuthenticationRequired)
  • 与 hook 的衔接:加密拦截时若密钥来自 Keystore,getEncoded() 不可用——记录别名与用途而非密钥字节

④ Flutter MethodChannel 拦截(并入 re-hybrid-app)

re-hybrid-app 加「Flutter MethodChannel 动态拦截」章节:

  • hook io.flutter.plugin.common.MethodChannel 的 MethodCallHandler(channel 名/方法名/参数 JSON 记录)
  • engine messenger 层拦截(平台通道消息)
  • 与 Dart 侧静态观察互补(channel 名与调用点)

⑤ svc 裸系统调用检测(并入 anti-dynamic-workflow.md)

anti-dynamic-workflow.md 加「裸系统调用检测」节:

  • 原理:目标自实现系统调用绕过 libc,基于 libc 符号的 hook 与检测失效
  • 手法:按架构分支特征码(arm64 SYS_OPEN=56、svc 机器码 01 00 00 D4;arm SYS_OPEN=5、00 00 00 EF)
  • 可执行段扫描(r-x)过滤 .so 段 → Memory.scan 特征码 → 回读 svc 前一条指令取系统调用号 → 命中 SYS_OPEN 才 attach → 打印文件名与返回值
  • 注意:arm64 分支参数索引按系统调用约定核对

计数同步

  • README:技能导航(89)→(91);「12 大类网关 → 76 原子技能」→ 78;导航列表加 re-python / re-frida-script-author 两行
  • AGENTS.md:(89 个技能)→(91 个技能)
  • marketplace.json:description「89 个技能」→「91 个技能」
  • re-managed / re-frida 挂载(见 ①②)

校验与测试

  • validate.mjs 自动覆盖两个新技能(frontmatter name=目录名 / type=atomic / 工具准备章节 / 链接 完整性)
  • npm test 全绿(91 skills validated)
  • 手工验证:新技能 frontmatter 触发词有效、挂载链接可解析
  • 不触碰工作区 3 个未提交文件;提交按文件粒度