A VPN Client GUI in native Go and Win32 API's compatible with Windows 7, 8 and higher. This source code does not include the network stack. You can develop your own VPN client library and integrate it into this source.
This package is complete and can be built on its own; however, it does not have the capability to connect to anything.
Dependencies:
- Windows 10 or higher (64-bit) with Internet connection
- MSYS2 platform (MINGW64)
- Inno Setup 6 installed at
C:\Program Files (x86)\Inno Setup 6
Setting up the build environment:
- Open the MINGW64 program and update the packages with
pacman -Syu
- Install the required packages using
pacman -S base-devel mingw-w64-x86_64-make
- Clone the source with
git clone https://github.com/Sina-Ghaderi/vpngui.git
- Navigate to the
vpngui
folder and run the commandmake
to start the build process - After a successful build, the installer output should be located in the
bin/output
folder
The source code includes three executable files: snixconnect, launcher, and service. The snixconnect executable requires system or admin access to run. While the graphical interface itself does not need this access, it is usually necessary to set up the tunnel interface. To launch the snixconnect GUI for users without admin access, the launcher executable sends the user's session ID to the service through a named pipe. The service, running with system access, uses its Token and system privileges to start the snixconnect GUI process in the user's session (using CreateProcessAsUser)
This work is licenced under the terms of GNU GENERAL PUBLIC LICENSE v3