WIP
VPN-Hole
A self-contained GoLang library that is capable of blocking ads,malwares and trackers using DNS Sinkholing. This libray can be integrated with different pre-existing cross-platform applications.
You can learn more about the project from the blogs at leap.se.
Table of Contents
Installation
Go
The detailed download and installation guide can be found at official website of Go.
For Linux:
# 1. Download Go Binary Archive
wget https://golang.org/dl/go1.18.4.linux-amd64.tar.gz
# 2. Extract it
tar -xzf go1.18.4.linux-amd64.tar.gz -C /usr/local/
# 3. Add PATH Variables
sudo nano /etc/profile
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
# 4. Check Go Version
go version
You can refer to the official documentation for setting GOPATH.
GoMobile & Gobind
After installing Go, we need gobind. Gobind is a tool that generates language bindings that make it possible to call Go functions from Java and Objective-C. It is called internally by gomobile which can help us build cross-platform applications.
go install golang.org/x/mobile/cmd/gomobile@latest
# To compile Android APK and IOS Apps
gomobile bind [-target android|ios|iossimulator|macos|maccatalyst] [-bootclasspath <path>] [-classpath <path>] [-o output] [build flags] [package]
VPN-Hole
To clone and build VPN-Hole Library:
git clone https://0xacab.org/leap/vpn-hole.git
cd vpn-hole
Instructions
To load all of the packages in the main module:
# If go.mod and go.sum are present then,
# Run
go mod tidy
If go.mod and go.sum are missing from the cloned repository, then:
go mod init [module-path]
Build & Run
# build the library
go build
An executable binary file would be generated for the library.
# executing the binary
Integration
To integrate the VPN-Hole Library with existing cross-platform applications, we will be using gomobile to compile and bind it.
Adapting to Bitmask_core