Skip to content
This repository was archived by the owner on Mar 13, 2024. It is now read-only.

reugen-programs/BAOO-SecureProxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BAOO-SecureProxy

A proxy server for Batman: Arkham Origins Online that allows you to use the secure HTTPS connection with the game server.

You need to own a copy of Batman: Arkham Origins on PC (Steam) to be able to play the game's multiplayer mode with this program.


Table of contents

  1. Usage
  2. Configuration
  3. Disclosure
  4. Questions, answers
  5. Credits, used packages
  6. Contribution

Usage

  1. Download the "BAOO-SecureProxy.zip" from the Latest release.
  2. Extract it to anywhere. For example you can extract it even to your desktop.
  3. Run the "BAOOProxy.exe". On the first run it will create a "Config" folder and a "Config.json" file in it.
  4. If you wish to enable the "game progress backup" module then close the program, modify the config file and then restart the program.
  5. Start the game only when the program tells you that you can do so.
  6. When you are finished with the game you can close the program. However you can keep the program running if you plan to jump back into the game later.
  7. Don't forget to run the program every time before you start the game.

For advanced users:
If you wish to compile the program yourself, feel free to do so.
I used the following command to create the exe file found in the Releases:

dotnet publish -r win-x64 -c Release -p:PublishSingleFile=true --self-contained true -p:PublishReadyToRun=true -p:PublishReadyToRunShowWarnings=true -p:PublishTrimmed=true -p:IncludeNativeLibrariesForSelfExtract=true


Configuration

A default config file has the following structure:

{
    "BAOInstallationFolder": null,
    "BackupEnabled": false,
    "ProfileHistoryAmount": 100,
    "InventoryHistoryAmount": 25
}
Options:
Name Type Description
BAOInstallationFolder string The folder in which the game is installed. The program tries to discover the path automatically, but if needed you can enter the path maually.
Example value: "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Batman Arkham Origins"
(Notice the double backslashes.)
BackupEnabled bool Determines if the backup module should be enabled or not. If you wish to enable it, set this to true.
ProfileHistoryAmount int The amount of historical profile data that should be stored in the backup file. Be reasonable and don't raise it too much.
InventoryHistoryAmount int The amount of historical inventory data that should be stored in the backup file. Be reasonable and don't raise it too much.

Disclosure

The program does modify some data in the traffic. Exactly 2 things are modified and nothing else.

  • In the outgoing data only the addressing is changed to match the address of the actual server, since the game will address this proxy server and not the real one. This change is necessary to make the connection work.
  • The second change is in the incoming data. Here only the news sent by the server are changed. Furthermore this change does only occure as long as the server sends the same old news. In case the server sends a new information you will get that unchanged.

Questions, answers

What does this program do?
It does many things. It finds your game installation, modifies the necessary game config file, optionally creates backup of your game progress but most importantly it serves as a proxy server. That means this program will stand between your game and the actual server on the internet and manage the communication. This program utilizes the secure HTTPS connection to the server assuring your privacy and security.

How can this program use the HTTPS connection if the game cannot?
The game cannot connect to the server because the server has a bad (expired) certificate. The program uses its own server certificate validation method. In this method all good and valid certificates are allowed through, in case they renew their server certificate. However I made one exception to allow the game server's expired certificate through. By doing so the program can utilize the data encryption provided by the HTTPS protocol. I made precautions to only accept the game server's certificate, everything else will be rejected if invalid.

I checked the game's config file and it still has http. Is this bad?
No it's fine. The communication between the game and this program will still use the unencrypted HTTP protocol. This is not a problem as the data flow is still on yor local machine. Between this program and the server however the communication will use the HTTPS protocol. So your data is securely encrypted while traveling on the internet.

What's the point of the backup feature?
Nothing much really. It's just there to backup your game progress. This backup can't be used for anything yet, but who knows what the future holds.
The backup file will be located in the "GameSave" folder next to the exe file.


Credits, used packages


Contribution

Feel free to contribute and fix my coding. I know there is much room for improvement.
Also if you are not into coding feel free to correct this README page. I am not a native english speaker, so there could be mistakes here.

About

A proxy server for Batman: Arkham Origins Online that allows you to use the secure HTTPS connection with the game server.

Resources

License

Stars

Watchers

Forks

Contributors

Languages