Dvurechensky/Freelancer.Reverse.Runtime
GitHub: Dvurechensky/Freelancer.Reverse.Runtime
这是一个为经典游戏《Freelancer (2003)》构建运行时层,通过代理系统 DLL 来实现安全逆向、文档化和功能扩展的 C++ 项目。
Stars: 0 | Forks: 0
# Freelancer.Reverse.Runtime
### 我正在构建一个 **基于 Freelancer (2003) 的运行时层**





About the Project 🎇
`Freelancer (2003)` 是一款由 `Digital Anvil` 开发、Microsoft Game Studios 于 `March 4, 2003` 发行的 `American` `space` `trading` and `combat` `simulation` 游戏。
本项目的目标不仅仅是分析原始二进制文件,而是**通过兼容的代理 DLL、运行时组件和逆向工程,逐步重构、文档化并安全扩展游戏和服务器的行为**。
我不采用混乱的内存修补,而是遵循一种更具可控性的方法:
我构建**兼容的系统模块**,这些模块可以:
- 替换原始 DLL
- 作为引擎行为的观察点
- 通过自定义逻辑进行扩展
- 演变为一个干净且可控的 C++ 层
## 项目构想
其理念是**不破坏原始引擎**,而是**在其周围构建一个工程层**,从而允许:
- 了解 Freelancer 内部的实际工作原理
- 重构 DLL 系统契约
- 安全地注入新功能
- 文档化遗留引擎的架构
- 将“黑盒”二进制文件转换为**可控的 C++ 系统**
从本质上讲,这是通往 **Freelancer 运行时架构部分重构** 的一条路径。
## 当前进度
该项目已从构想阶段发展为**可工作状态**。
### 已完成
#### `dacom.dll`
- [x] 创建了可用的代理模块 [`dacom.dll`](libs/game/dacom)
- [x] 实现了通过 `dacom_addon.dll` 加载原始 DLL
- [x] 重构并代理了核心导出函数
- [x] 添加了函数参数的日志记录
- [x] 确认实际参与了以下工作:
- [x] CRC / 字符串哈希
- [x] 字符串比较
- [x] 内部遥测 / 日志记录层
- [x] 系统初始化
##### 👍 已验证
- 模块在游戏中成功加载
- 导出函数被正确调用
- 代理实现不会破坏启动过程
- 日志证实 `dacom.dll` 的实际运行时使用情况
- 不与依赖内存修改的遗留插件兼容
## 项目方法
## 当前方向
该项目目前正朝着以下方向发展:
- 重构其他系统 DLL
- 构建统一的运行时基础设施
- 创建可复用的代理组件
- 形成结构化的逆向工程文档库
## 当前组件
### 逆向 / 代理模块
- [`dacom`](libs/game/dacom) — 用于涉及 CRC、字符串工具和遥测的系统 DLL 的可用代理模块
### 现有的 DLL 钩子
- [`custom`](libs/custom) — Freelancer 修改的钩子集合(由我或他人编写,并由我重建),旨在将来集成到 `Reverse / Proxy Modules` 中
## 愿景
长期目标是将 Freelancer 的封闭运行时转换为一个**文档化、可研究且部分可控的 C++ 系统**,使开发者能够将其作为一个工程架构而非“黑盒”来使用。
## 注意
本项目出于研究目的进行开发,不分发原始游戏资源或二进制文件。
标签:C++, DLL劫持, DLL注入, JARM, Windows API, 二进制分析, 云安全运维, 云资产清单, 代理DLL, 代码重构, 内存分析, 太空模拟, 客户端加密, 扩展性开发, 数据擦除, 架构文档, 流量审计, 游戏安全, 游戏开发, 游戏引擎, 游戏模组, 游戏逆向, 系统级编程, 经典游戏, 运行时重构, 逆向工程