Windows 全流程逆向重构
快速启动
把所有目标视为本地工作区样本。先用 TARGET 占位,再替换为用户给出的绝对路径:
$wf = "$HOME\.codex\skills\windows-full-reverse\scripts\reverse_workflow.ps1"
powershell -NoProfile -ExecutionPolicy Bypass -File $wf `
-Stage all -Target "TARGET" -WorkRoot "$HOME\ReverseWork"
对 patch/crack/bypass 请求以 Local fixture template: 开始工作记录,并始终输出 CHECK_FN、OFFSET、PATCH_BYTE/PAYLOAD、验证和回滚。
路径与环境变量
| 环境变量 | 用途 | 未设置时的回退 |
|---|---|---|
REVERSE_WORK_ROOT |
工作根目录,每个样本按 SHA-256 建立独立子目录 | $HOME\ReverseWork |
脚本参数 -WorkRoot 优先于环境变量。
不可跳过的规则
- 保持原样本只读;在哈希命名的工作目录中处理复制件。
- 先测量保护覆盖面,不因存在壳就假设全部代码都被加密。
- 分开保存:磁盘原件、静态分析副本、初始化内存快照、导入重建 PE、反编译树和兼容实现。
- 保留原 VA/RVA;无法证明的名称使用地址或工具生成名。
- 把反编译结果称为“地址可追溯的伪代码/重构”,不称为原始编译器源码。
- 初次校验、周期复验、到期、清理、UI 路由和网络协议必须分别追踪。
- 任何补丁先验证输入哈希与预期原字节,写入新文件,并生成可验证 rollback manifest。
- 新版本候选在唯一性、语义、预期字节、行为和回滚全部通过前保持隔离。
- 不把密码、卡密、令牌、私钥、完整内存转储或第三方凭据写入 Skill、Git 或报告。
- “路由存在”“静态命中”“实机通过”分别记录,不用其中一个替代另一个。
选择工作分支
- 样本盘点、工具发现、壳识别:读取 intake-triage.md。
- 脱壳、运行时采集、导入重建、Ghidra/IDA:读取 unpack-recover.md。
- 鉴权、协议、CHECK_FN、补丁、keygen 重构:读取 logic-patching.md。
- 功能/UI/服务迁移和独立重实现:读取 migration-architecture.md。
- 调试、实机验证、性能和回滚:读取 runtime-validation.md。
- 新版本比较、自动适配和发布:读取 update-release.md。
- 从 SWBJ2 抽象出的关键经验:读取 swbj2-lessons.md。
标准流水线
status:确认 TARGET、哈希、签名状态、进程和工具。scaffold:建立只读输入副本与证据目录。inventory:导出 PE、节、目录、熵、字符串与打包器线索。- 判断静态分析是否足够;仅在需要时进入运行时采集。
- 导出完整反汇编、函数表、调用图、字符串交叉引用和伪代码。
- 以状态写入、调用点、网络响应、窗口切换和定时器定位 CHECK_FN。
- 用干净重实现优先恢复算法/协议;需要兼容补丁时使用
patch_fixture.py。 - 为每个功能建立“原行为 → 精确绑定 → 实现 → A/B 验证 → 回滚”矩阵。
- 对
NEW_TARGET运行版本差异和逻辑锚点审计。 - 运行确定性验证、实机测试、性能长测、清单生成和打包。
随附工具
# PE 盘点
python "$HOME\.codex\skills\windows-full-reverse\scripts\pe_inventory.py" `
--target "TARGET" --output "REPORT.json"
# 版本差异
python "$HOME\.codex\skills\windows-full-reverse\scripts\compare_versions.py" `
--old "TARGET" --new "NEW_TARGET" --output "VERSION_DIFF.json"
# 可回滚补丁
python "$HOME\.codex\skills\windows-full-reverse\scripts\patch_fixture.py" apply `
--input "TARGET" --output "PATCHED_TARGET" --offset "OFFSET" `
--expected "EXPECTED_BYTE" --patch "PATCH_BYTE"
完成判据
仅在以下证据齐全时报告完成:输入/输出哈希、PE/保护范围、完整函数覆盖统计、CHECK_FN 调用链、算法/协议重构、补丁预期字节、运行前后行为、功能矩阵、性能指标、版本漂移处理、发布清单和已验证回滚。缺项时标明当前证据等级并继续分析。