Categorygithub.com/tboerc/gwall
modulepackage
2.0.0+incompatible
Repository: https://github.com/tboerc/gwall.git
Documentation: pkg.go.dev

# README

gwall

Github license

gwall is a CLI tool written in Go that uses WinDivert to make a firewall for Grand Theft Auto Online.

Contents

Why?

Have you ever played Grand Theft Auto Online on PC? Its a swarm of hackers or modders and I'm just tired of it. Sometimes is impossible to have fun with friends or do some open world missions without a griefer or something.

There are some programs already that do this task, like Guardian. But I made a lightweight CLI tool with less functionalities, for now at least, that suit my needs.

How it works?

This tool uses WinDivert under the hood, feel free to understand how it works, but it's basically a user-mode packet capture-and-divert package. With that, the CLI can capture packets that make other users connect on your online session, and block it by the source IP. So if there is a packet with unknown source IP, one that is not on whitelist, it will be blocked, and the user with that IP will not join on your session.

Most times the tool works as expected, but there is sometimes that Rockstar changes how your friend connects on your session, so your friend will get blocked. If that happens, turn off your gwall and ask your friend to run it and then join his session, that should do the trick.

Requirements

  • Administrator privileges
  • Windows 7 or greater 64 Bit

Installation

  • Download the latest release here
  • Extract it anywhere you want, but make sure is a folder whitout special characters
  • Add the folder with extracted content to your PATH, you can follow this guide if you don't know how to do it

Usage

If you successfully added the folder to your PATH you can run the gwall command anywhere with CMD or PowerShell. Make sure you are executing the commands with Administrator privileges.

Solo session

To start a solo session just run the following command:

gwall solo

Whitelist session

There are a few more steps to start a whitelist session, first you need to add all your friends public IP to the list. They can find their public IP with the following command:

gwall ip

But, if somenone don't want to use gwall, it's possible to get the public IP on this site. Just remember to use the IPv4 value.

To add the values to the whitelist, run the following command for each IP:

gwall add 220.191.42.195 # Replace with your friend IP

After setting up the list, just run:

gwall whitelist

Avaliable commands

All gwall commands are available below for further usage.

gwall solo

Block any user from your session.

gwall solo

gwall whitelist

Allow users from your whitelist to be on your session.

gwall whitelist

gwall list

List all IP addresses on your whitelist.

gwall list
# output ↓
Index     IP
0         220.191.42.191
1         220.191.42.192
2         220.191.42.193

gwall add

Add an IP to the whitelist. Most of the time you want to add your friend's public IP, but if your friend plays on the same internet as you, you need to add their local IP.

gwall add 220.191.42.191

gwall remove

Remove an IP from whitelist. You can get the IP list with gwall list.

gwall remove 220.191.42.191

gwall ip

Display your public IP address. You can use this to send your public IP to a friend and add it to their whitelist.

gwall ip
# output ↓
220.191.42.191

gwall stop

Stop, if needed, the WinDivert service. Run this if you wish to remove gwall and are having trouble deleting it's folder.

gwall stop

Unistallation

If you want to uninstall gwall, just delete it's folder. If you have problems deleting the folder, just type gwall stop on CMD or PowerShell to fully stop the WinDivert service and you will be able to delete the folder.

Build from source

You can build this from source by cloning this repo on your machine. You will need Go and make for that.

git clone https://github.com/tboerc/gwall.git
go mod tidy
make build

Contributions

All contributions are helpful, feel free to make a Pull Request.

Thanks to

# Packages

No description provided by the author
No description provided by the author

# Functions

No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author
No description provided by the author

# Type aliases

No description provided by the author