需要从服务器和客户端的二进制文件中恢复 C++ 代码

逆向工程 艾达 拆卸 C++ 反汇编者 互操作性
2021-06-11 04:00:26

我们有一个 1990 年代后期的旧 2D 太空射击多人游戏社区。该游戏今天仍然存在,但问题是找不到游戏的创建者并且缺少源代码。尽管如此,客户端和服务器仍然可以正常运行,非常需要一些更新。例如,所有下载速度的上限为 56k 连接......所以我是一名 Java 开发人员,我尝试使用 IDA,但我觉得我没有资格尝试反汇编用 C++ 编写的客户端/服务器并且可能为此目的内置了安全性。我想学习 IDA,但我只是忙于其他项目的 atm,但我想以某种方式解决这个问题,或者至少调查一下可能的情况。

  1. 是否可以完全逆向工程遗留 C++ 代码?
  2. 是否可以部分逆向工程,或者至少调整一些嵌入在 exe 中的常量值
  3. 有专门从事这项工作的拆解服务公司吗?

这个游戏叫做Continuum/Subpsace。

http://www.getcontinuum.com/ (客户端安装程序链接)

示例增强功能:

  1. 为大于 56k 的连接增加下载/上传速度的上限值

  2. 允许客户端下载和播放 mp3 文件(目前支持 .wav 文件)

  3. 如果可能的话,升级使用的图形库的能力

  4. 允许在游戏中编辑键/值属性(现在您必须退出游戏才能更改某些属性)

1个回答

我检查了客户端 exe 文件,看起来 Pack Master 1.0 (PEX 0.99 Clone) 用于加密二进制文件。所以第一步是解压EXE文件。从那时起,一些二进制补丁可能是可能的。还有另一种方法可以进行更改。有可能使用 dll 注入来注入新的或更改的功能。