2

We have an old 2D space shooter multiplayer game community form late 1990s. The game is still alive today but the problem is the creators of the game are no where to be found and the source code is missing. Although, still functional the client and server badly need some updates. For example, all download speeds are capped for 56k connections... So I'm a java developer by trade and I tried to use IDA but I feel like I'm not qualified to try to disassemble client/server that were written in C++ and probably have built in security for such purposes. I want to learn IDA but i'm just so busy atm with other projects but I would like to solve this problem some how or at least investigate what is possible.

  1. Is it possible to fully reverse engineer the legacy C++ code?
  2. Is it possible to partially reverse engineer and maybe at least adjust some constant values that are embedded inside the exe
  3. Are there any disassembly service companies that specialize in this task?

the game is called Continuum/Subpsace.

http://www.getcontinuum.com/ (link to client installer)

Sample enhancements:

  1. Increase the cap value on download/upload speed for greater than 56k connections

  2. Allow the client to download and play mp3 files (currently on does .wav files)

  3. If possible ability to upgrade graphics library used

  4. Allow for editing of key/value properties in game (right now you have to exit the game to change certain properties)

  • Do you have any documentation at all? Map or object files, notes, sketches, flow diagrams? A fully working Debug Build, for example, would help tremendously. – usr2564301 Apr 19 '15 at 17:37
  • Yes the game is very active. You can install the game and download maps from any active sever. I am not sure how the underlying application works programmatically I did not develop the original code. No debug build I think if we had prolly have access to the underlying code as well – Selwyn Apr 19 '15 at 18:50
  • I'll try to explain how it works. The continuum40.exe client loads a U.I that allows the configuration of keyboards settings, any user settings, or fixed values. This U.I also presents a list of potential servers that it can connect to with their statistics. Once you select a server and click "connect". When you connect to the server binary it loads I believe openGL graphics and uses the subspace protocol (wiki.minegoboom.com/index.php/UDP_Game_Protocol) to communicate with the server. The packets are encrypted. I can provide server binary if needed. Server forum: shanky.com – Selwyn Apr 19 '15 at 18:59
  • But no I don't have any any technical knowledge of the underlying application. I can only deduce what I see as a user. Over the years the community has been able to write an open source server (ASSS) based on the SS protocol but nobody has put in an effort to rewrite the client. Like I said the game still functions and the community is still active but it desperately needs minor enhancements to the client/server to modernize the game. – Selwyn Apr 19 '15 at 19:07
  • 1
    @glampert there is an effort on the way already. github.com/Periapsis/aphelion . I just wanted to see how "easy" it was to possibly make some small patches in the mean time. Open source effort is not trivial though (if you look at all the open tickets) – Selwyn Apr 22 '15 at 9:43
1

I checked client exe file and it looks like Pack Master 1.0 (PEX 0.99 Clone) was used to encrypt binary. So first step would be to unpack EXE file. From that point some binary patching might be possible. There is another way of making changes. There is possibility to inject new or changed functionality using dll injection.

  • I tried 3 different PEX 0.99 unpackers suggested by acidShout all of them threw errors and said couldn't find the signature. I have the Peid .95 and I see it identifies the continuum.exe as compressed with PEX 0.99. Any ideas how to proceed further? – Selwyn Apr 24 '15 at 11:45
  • The main problem is that it it not PEX 0.99. It just clone of it. Pack Master 1.0 uses different algorithm. – malikcjm Apr 25 '15 at 11:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.