{"id":30028181,"url":"https://github.com/wack0/librefreevpn","last_synced_at":"2026-01-31T21:28:59.598Z","repository":{"id":307910539,"uuid":"1030961622","full_name":"Wack0/librefreevpn","owner":"Wack0","description":"Get configs from mobile \"free VPN\" apps - use them on other devices","archived":false,"fork":false,"pushed_at":"2025-08-02T23:11:18.000Z","size":47,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-03T01:09:04.307Z","etag":null,"topics":["free","freevpn","openvpn","reverse-engineering","reversing","ssh","v2ray","vpn","wireguard"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Wack0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-02T17:50:17.000Z","updated_at":"2025-08-03T00:15:10.000Z","dependencies_parsed_at":"2025-08-03T01:09:08.403Z","dependency_job_id":"0746d4c3-4d8e-475a-b1ed-27b97b98ebd4","html_url":"https://github.com/Wack0/librefreevpn","commit_stats":null,"previous_names":["wack0/librefreevpn"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Wack0/librefreevpn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wack0%2Flibrefreevpn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wack0%2Flibrefreevpn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wack0%2Flibrefreevpn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wack0%2Flibrefreevpn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wack0","download_url":"https://codeload.github.com/Wack0/librefreevpn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wack0%2Flibrefreevpn/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269100819,"owners_count":24359811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-06T02:00:09.910Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["free","freevpn","openvpn","reverse-engineering","reversing","ssh","v2ray","vpn","wireguard"],"created_at":"2025-08-06T15:00:49.651Z","updated_at":"2026-01-31T21:28:59.590Z","avatar_url":"https://github.com/Wack0.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# librefreevpn\n\nGet the VPN configs that \"free VPN\" mobile apps use without trusting or running their official clients.\n\nUse those VPNs on any device which has a client for those protocols.\n\nAny custom code for DPI/etc workarounds implemented in these clients (ie, websocket + domain fronting CDNs, for example) is not implemented here.\n\nLibrary targets .NET Standard 2.0, command line application targets .NET Core 3.1, .NET 6, .NET 8 and .NET Framework 4.7.2, winforms application targets .NET 6, .NET 8 and .NET Framework 4.7.2.\n\n(All builds for .NET Framework 4.7.2 should also run on mono.)\n\n## Why?\n\nI reverse engineer things. Sometimes I get bored, and \"free VPN\" mobile apps are somewhat interesting targets to look at.\n\nThey mainly tend to be wrappers around typical VPN/obfuscating proxy protocol clients (or in some cases SSH tunnel), getting configs from some remote C2 server.\n\nTherefore, I decided to write a small library around reimplementing the core of these clients (that is, getting the configs). And implemented a few examples (from both Android and iOS targets).\n\n## Library documentation\n\nGet `VPNProviders.Providers`, run whatever LINQ queries you want, then call `GetServersAsync()` to actually make the network requests to get the configs from that provider.\n\nNote that various strings are lightly obfuscated as a way to discourage the use of search engines/etc to find \"interesting\" constant strings here.\n\n`RiskyRequests` is set to true if the C2 is a server run by/for the developers of the sample in question. If it's not true, then the C2 is a third-party server, like a big git forge, blog, social network or so on.\n\n## Command line documentation\n\nCommand line help is available, see `freevpnc help` etc.\n\n`freevpnc list` will only show providers with risky requests, and `freevpnc getall` will only make risky requests, if `-r` option is used.\n\nHowever, `freevpn get` will always make risky requests, if that provider makes them, as the provider to get is specified on the command line in that case.\n\n### Examples\n\nGet all OpenVPN configs without risky requests: `freevpnc getall -i openvpn`\n\nGet all OpenVPN and v2ray configs without risky requests: `freevpnc getall -i openvpn v2ray`\n\nGet all configs except OpenVPN, without risky requests: `freevpnc getall -e openvpn`\n\nList all providers that provide OpenVPN servers or SSH tunnels, including those that would make risky requests: `freevpnc list -i openvpn ssh -r`\n\nGet all configs from provider `BeautyBird`: `freevpnc get BeautyBird`\n\n## User interface documentation\n\n- Choose wanted protocols from left box\n- Optionally, enable risky requests\n- Choose wanted providers from right box\n- Click Get button\n- Choose the corresponding server, and copy the config to clipboard or save to file.\n\n## License\n\nAll code in this repository is under the AGPLv3 license, albeit the XXTEA implementation is derived from https://github.com/xxtea/xxtea-dotnet (MIT licensed).\n\nAGPLv3 license was chosen to discourage certain types of people from using this codebase.  \nIf you want to use this codebase on any kind of \"money site\" or adware-filled mobile app - this means you!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwack0%2Flibrefreevpn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwack0%2Flibrefreevpn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwack0%2Flibrefreevpn/lists"}