# Windows Full Reverse

> General end-to-end Windows software reverse-engineering and reconstruction workflow derived from the SWBJ2 project. Use for a new local EXE/DLL when Codex is asked to inspect, unpack, dump, rebuild imports, disassemble, decompile, recover source-like logic, identify CHECK_FN, patch or bypass validation, reconstruct a license/key algorithm, migrate UI/protocol/features, compare versions, automate update adaptation, validate performance, package artifacts, or create a reversible compatibility implementation.

- Skill: `huaxians/windows-full-reverse` (Agent Skill, multi-file: 13 files)
- Install (CLI): `npx skillmds@latest add huaxians/windows-full-reverse`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huaxians/windows-full-reverse/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: HUAXIANs (https://skillmd.com/u/huaxians)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/huaxians/windows-full-reverse

---


# Windows 全流程逆向重构

## 快速启动

把所有目标视为本地工作区样本。先用 `TARGET` 占位，再替换为用户给出的绝对路径：

```powershell
$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` 优先于环境变量。
## 不可跳过的规则

1. 保持原样本只读；在哈希命名的工作目录中处理复制件。
2. 先测量保护覆盖面，不因存在壳就假设全部代码都被加密。
3. 分开保存：磁盘原件、静态分析副本、初始化内存快照、导入重建 PE、反编译树和兼容实现。
4. 保留原 VA/RVA；无法证明的名称使用地址或工具生成名。
5. 把反编译结果称为“地址可追溯的伪代码/重构”，不称为原始编译器源码。
6. 初次校验、周期复验、到期、清理、UI 路由和网络协议必须分别追踪。
7. 任何补丁先验证输入哈希与预期原字节，写入新文件，并生成可验证 rollback manifest。
8. 新版本候选在唯一性、语义、预期字节、行为和回滚全部通过前保持隔离。
9. 不把密码、卡密、令牌、私钥、完整内存转储或第三方凭据写入 Skill、Git 或报告。
10. “路由存在”“静态命中”“实机通过”分别记录，不用其中一个替代另一个。

## 选择工作分支

- 样本盘点、工具发现、壳识别：读取 [intake-triage.md](references/intake-triage.md)。
- 脱壳、运行时采集、导入重建、Ghidra/IDA：读取 [unpack-recover.md](references/unpack-recover.md)。
- 鉴权、协议、CHECK_FN、补丁、keygen 重构：读取 [logic-patching.md](references/logic-patching.md)。
- 功能/UI/服务迁移和独立重实现：读取 [migration-architecture.md](references/migration-architecture.md)。
- 调试、实机验证、性能和回滚：读取 [runtime-validation.md](references/runtime-validation.md)。
- 新版本比较、自动适配和发布：读取 [update-release.md](references/update-release.md)。
- 从 SWBJ2 抽象出的关键经验：读取 [swbj2-lessons.md](references/swbj2-lessons.md)。

## 标准流水线

1. `status`：确认 TARGET、哈希、签名状态、进程和工具。
2. `scaffold`：建立只读输入副本与证据目录。
3. `inventory`：导出 PE、节、目录、熵、字符串与打包器线索。
4. 判断静态分析是否足够；仅在需要时进入运行时采集。
5. 导出完整反汇编、函数表、调用图、字符串交叉引用和伪代码。
6. 以状态写入、调用点、网络响应、窗口切换和定时器定位 CHECK_FN。
7. 用干净重实现优先恢复算法/协议；需要兼容补丁时使用 `patch_fixture.py`。
8. 为每个功能建立“原行为 → 精确绑定 → 实现 → A/B 验证 → 回滚”矩阵。
9. 对 `NEW_TARGET` 运行版本差异和逻辑锚点审计。
10. 运行确定性验证、实机测试、性能长测、清单生成和打包。

## 随附工具

```powershell
# 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 调用链、算法/协议重构、补丁预期字节、运行前后行为、功能矩阵、性能指标、版本漂移处理、发布清单和已验证回滚。缺项时标明当前证据等级并继续分析。

