ProxiFyre elevates the foundational capabilities of the Windows Packet Filter's socksify demo, introducing robust enhancements. Not only does it seamlessly integrate support for UDP, but it also empowers users with the flexibility of managing multiple proxy instances. Streamlining its configuration process, ProxiFyre now dynamically sources its settings from an app-config.json file, ensuring a more intuitive and user-friendly experience. Furthermore, with its adaptability in mind, ProxiFyre can be effortlessly configured to run as a Windows Service, providing continuous operation without the need for manual intervention.
The application uses a configuration file named app-config.json. This JSON file should contain configurations for different applications. Each configuration object should have the following properties:
LogLevel can have one of the following values which define the detail of the log: None
, Info
, Deb
, All
On the application name, it can be a partial name or full name of the executable, e.g. firefox
or firefox.exe
both will work for the firefox browser, but also any application whose name includes firefox
or firefox.exe
, e.g. NewFirefox.exe
. If the pattern specified in the appName contains slashes or backslashes then it is treated as a pathname and instead of matching the executable name, the full pathname is matched against the pattern. It allows specifying an entire folder using a full or partial path which can be convenient for UWP applications, e.g. C:\\Program Files\\WindowsApps\\ROBLOXCORPORATION.ROBLOX
for ROBLOX.
If the SOCKS5 proxy does not support authorization, you can skip the username and password in the configuration.
Here is an example configuration:
{
"logLevel": "None",
"proxies": [
{
"appNames": ["chrome", "C:\\Program Files\\WindowsApps\\ROBLOXCORPORATION.ROBLOX"],
"socks5ProxyEndpoint": "158.101.205.51:1080",
"username": "username1",
"password": "password1",
"supportedProtocols": ["TCP", "UDP"]
},
{
"appNames": ["firefox", "firefox_dev"],
"socks5ProxyEndpoint": "127.0.0.1:8080",
"supportedProtocols": ["TCP"]
}
]
}
This guide provides step-by-step instructions on how to set up and run the ProxiFyre application.
Windows Packet Filter is a critical dependency for our project.
Visual Studio Runtime Libraries are required for running applications developed with Visual Studio.
Please ensure you download the correct installer to avoid any installation issues.
Download the Latest Release: Visit our GitHub page to download the latest release of the ProxiFyre software.
Unzip the Software: After downloading, extract the contents of the .zip file to your preferred location.
Create app-config.json
File: Following the template provided in the Configuration section of this document, create an app-config.json
file. This file is crucial for the software to function properly. Save this file in the main application folder.
.exe
file) and run it. It's recommended to run the application as an administrator to ensure all functionalities work as expected.ProxiFyre can be installed and run as a Windows service. Follow these steps:
ProxiFyre.exe
.ProxiFyre.exe install
ProxiFyre.exe start
ProxiFyre.exe stop
ProxiFyre.exe uninstall
Logs are saved in the application folder under the /logs
directory. The details and verbosity of the logs depend on the configuration set in the app-config.json
file.
Before starting the build process, ensure the following requirements are met:
Install vcpkg: You can download and install vcpkg from the official website here.
Install Microsoft GSL library via vcpkg: Once vcpkg is installed, use it to download and install the Microsoft GSL library. Run the following commands in your terminal:
vcpkg install ms-gsl:x86-windows ms-gsl:x64-windows ms-gsl:arm64-windows
Add online NuGet Package Source: In some cases, you may need to add an online NuGet Package Source. To do this, navigate to Visual Studio->Tools->Options->NuGet Package Manager->Package Sources
and add https://nuget.org/api/v2
.
This repository consists of three main projects:
This is an adopted Windows Packet Filter NDISAPI static library project.
This project is a .Net C++/CLI class library that implements the local SOCKS5 router functionality.
This is a .Net-based Windows console application that employs the functionality provided by the socksify .Net C++/CLI class library.