TheMythologist / guardian

Firewall for GTA Online
GNU Lesser General Public License v3.0
46 stars 4 forks source link
firewall gta gta5 gtaonline gtav gtav-online pydivert python python3 windivert

Guardian

Custom firewall for the game GTA Online (version 1.66 and onwards).

Latest release CI status Downloads License

Download the latest version

Requirements

How to use

  1. Download the latest version from the releases
  2. Run Guardian.exe (you will be prompted to run as Administrator)
  3. Start a Solo Session with Guardian
  4. Launch GTA online and enjoy 🎉
    • If you want to let your friends in, add their IP addresses into the Whitelist and use a Whitelisted Session instead.
  5. If you don't know your friends' IPs, you'll have to stop the Solo Session and tell them to join as quick as possible.
    • Note that the session is vulnerable to randoms during this time.
  6. Once your friends are loading into your session (they've confirmed they want to join your session and are now in the clouds), start a Locked Session.
    • While a session is Locked, no one will be able to join the session, but those already connecting / connected should remain.

Guardian may work in other circumstances/setups, but is less likely to produce secure sessions.

How it works

Guardian intercepts all incoming GTA traffic, and only allows specific packets through depending on the configuration. GTA service-related packets are still allowed so you can communicate with GTA servers, but other players will not be able to join your session (unless you specify their IP addresses in the whitelist configuration).

By observing network activity while playing GTA Online, it is discovered that the "type" of packet can be determined based on the packet's payload size even though they are encrypted. Other than user-defined configuration, the only other behaviours intended to be allowed through are the session "heartbeat" and any session information requests from the "matchmaking service" which provides initial connection details to clients.

Session Types

Guardian has many different kinds of sessions, each with different behaviours intended to be used under different circumstances.

The most important requirement for securing a session with Guardian is that you are the "session host". You can still use Guardian to block packets as a non-host player, but improper use of session types as a non-host will likely get you disconnected from the session.

Motivation

GTA Online on PC was too crazy with modders wreaking havoc and constantly spamming text messages or emails. They could also crash sessions, leak IPs, or even scrape R* IDs to join non-public sessions to continue harrassing people. Speyedr did some research and testing, and was eventually able to get Guardian to work again, and he publicly shared it with the open-source community (check out his repository here). I then decided to fork his own project and improve on the codebase further, as well as further improvements that I think the codebase can benefit from.

Build from source

Miscellaneous

Key differences in this fork

Developers

Support