CriDos/d2r_offline

GitHub: CriDos/d2r_offline

一个通过WinHTTP DLL代理技术实现《暗黑破坏神2:重制版》无启动器离线启动的C++项目。

Stars: 1 | Forks: 0

# d2r_offline 1.0 `d2r_offline` 是一个紧凑的 C++ 项目,用于通过代理 `winhttp.dll` 复现 Diablo II: Resurrected 在无需 Blizzard 启动器情况下的离线启动/会话流程。 该项目执行以下操作: - 替换 `winhttp.dll`,同时将原始 WinHTTP 导出转发到真实的系统库 - 发布预期的环境和注册表响应 - 修补 Diablo II: Resurrected 进程内存中的受信 `PUBLIC KEY` - 生成兼容的 `%LocalAppData%\Blizzard Entertainment\ClientSdk\cookie.bin` ## 结构 - `src/config` — 配置加载和区域设置标准化 - `src/crypto` — Windows CNG/CryptoAPI 后端和 Serpent CTR - `src/cookie` — 声明、机器上下文、cryptobox 和 `cookie.bin` 写入 - `src/exports` — 导出列表和汇编转发器 - `src/proxy` — 进程引导和 WinHTTP 转发器加载 - `src/runtime` — 运行时补丁和注册表钩子实现 - `src/support` — 共享类型、密钥材料、日志记录和平台辅助工具 ## 构建 要求: - Windows x64 - Visual Studio 2022 Build Tools 构建: ``` powershell -ExecutionPolicy Bypass -File .\build.ps1 ``` 输出: - `build\winhttp.dll` ## 使用说明 要在 Diablo II: Resurrected 中使用该代理: 1. 构建项目并获取 `build\winhttp.dll`,或者从项目发布页 [下载](https://github.com/CriDos/d2r_offline/releases) `winhttp.dll`。 2. 将 `winhttp.dll` 复制到游戏目录中,紧挨着主游戏可执行文件。 3. 直接启动游戏可执行文件,无需通过 Blizzard 启动器。 4. 首次启动时,让 DLL 自动生成 `d2r_offline.ini`,或者将你自己的配置文件放在 `winhttp.dll` 旁边。 5. 成功启动后,离线 cookie 将被写入 `%LocalAppData%\Blizzard Entertainment\ClientSdk\cookie.bin`。 建议的首次运行检查: - `d2r_offline.log` 在 `winhttp.dll` 旁边创建 - `cookie.bin` 在 `%LocalAppData%\Blizzard Entertainment\ClientSdk\` 下创建 - 游戏以预期的语言和离线会话状态启动 ## 配置 DLL 会在其所在目录下查找 `d2r_offline.ini`。如果文件不存在,则会自动创建: ``` [Settings] Locale=english LocaleAudio=english Entitlements=hd,beta,rotw-dlc ``` 支持的键: - `Locale` - `LocaleAudio` - `Entitlements` 支持的 `Locale` 和 `LocaleAudio` 值: - `english` -> `enUS` - `german` -> `deDE` - `spanish` -> `esES` - `latam` -> `esMX` - `french` -> `frFR` - `italian` -> `itIT` - `koreana` / `korean` -> `koKR` - `polish` -> `plPL` - `brazilian` -> `ptBR` - `portuguese` -> `ptPT` - `russian` -> `ruRU` - `tchinese` -> `zhTW` - `schinese` -> `zhCN` - `japanese` -> `jaJP` 你也可以直接提供 Blizzard 区域设置代码,例如 `enUS` 或 `ruRU`。 运行时日志将写入 DLL 旁边的 `d2r_offline.log`,并在每次启动时重新创建。 ## 注意事项 - 输出文件保留为 `winhttp.dll`,因为客户端加载的是该特定模块名称 - 实现旨在实现实际兼容性,而非二进制身份一致性 - 加密层使用 Windows CNG/CryptoAPI 和内置的 Serpent
标签:Blizzard战网, C++, CNG加密, Cookie生成, DLL代理, DLL劫持, SSH蜜罐, Windows开发, WinHTTP代理, 云资产清单, 免登录, 内存补丁, 数据擦除, 暗黑破坏神2重制版, 机器指纹伪造, 注册表钩子, 流量嗅探, 游戏破解, 游戏辅助, 离线启动器, 绕过验证, 进程注入, 逆向工程