├── Images ├── ImgInvisibleMan1.png ├── ImgInvisibleMan2.png └── ImgInvisibleMan3.png ├── Invisible Man.sln ├── Invisible Man ├── AboutWindow.xaml ├── AboutWindow.xaml.cs ├── App.config ├── App.xaml ├── App.xaml.cs ├── IcoInvisibleMan.ico ├── Images │ ├── CountryFlags │ │ ├── Canada.png │ │ ├── Germany.png │ │ ├── Netherlands.png │ │ ├── Singapore.png │ │ ├── United-Kingdom.png │ │ ├── United-States.png │ │ └── Unknown.png │ └── ImgInvisibleManLogo.png ├── Invisible Man.csproj ├── Invisible Man.csproj.user ├── InvisibleManCore.cs ├── LocationWindow.xaml ├── LocationWindow.xaml.cs ├── MainWindow.xaml ├── MainWindow.xaml.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ ├── Settings.settings │ └── app.manifest ├── Styles │ ├── ButtonCircleRed.xaml │ ├── ButtonGray.xaml │ ├── ButtonGreen.xaml │ ├── ButtonRed.xaml │ ├── Colors.xaml │ └── Fonts │ │ ├── SegoeUI-Bold.ttf │ │ ├── SegoeUI-Light.ttf │ │ └── SegoeUI-Regular.ttf ├── UpdateWindow.xaml ├── UpdateWindow.xaml.cs ├── UserControls │ ├── UserControlServerAccount.xaml │ └── UserControlServerAccount.xaml.cs ├── app.manifest └── packages.config ├── LICENSE ├── README.md └── packages ├── HtmlAgilityPack.1.8.11 ├── HtmlAgilityPack.1.8.11.nupkg └── lib │ ├── Net20 │ ├── HtmlAgilityPack.dll │ ├── HtmlAgilityPack.pdb │ └── HtmlAgilityPack.xml │ ├── Net40-client │ ├── HtmlAgilityPack.dll │ ├── HtmlAgilityPack.pdb │ └── HtmlAgilityPack.xml │ ├── Net40 │ ├── HtmlAgilityPack.XML │ ├── HtmlAgilityPack.dll │ └── HtmlAgilityPack.pdb │ ├── Net45 │ ├── HtmlAgilityPack.XML │ ├── HtmlAgilityPack.dll │ └── HtmlAgilityPack.pdb │ ├── NetCore45 │ ├── HtmlAgilityPack.XML │ ├── HtmlAgilityPack.dll │ └── HtmlAgilityPack.pdb │ ├── netstandard1.3 │ ├── HtmlAgilityPack.deps.json │ ├── HtmlAgilityPack.dll │ ├── HtmlAgilityPack.pdb │ └── HtmlAgilityPack.xml │ ├── netstandard1.6 │ ├── HtmlAgilityPack.deps.json │ ├── HtmlAgilityPack.dll │ ├── HtmlAgilityPack.pdb │ └── HtmlAgilityPack.xml │ ├── netstandard2.0 │ ├── HtmlAgilityPack.deps.json │ ├── HtmlAgilityPack.dll │ ├── HtmlAgilityPack.pdb │ └── HtmlAgilityPack.xml │ ├── portable-net45+netcore45+wp8+MonoAndroid+MonoTouch │ ├── HtmlAgilityPack.XML │ ├── HtmlAgilityPack.dll │ └── HtmlAgilityPack.pdb │ ├── portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch │ ├── HtmlAgilityPack.XML │ ├── HtmlAgilityPack.dll │ └── HtmlAgilityPack.pdb │ └── uap10.0 │ ├── HtmlAgilityPack.XML │ ├── HtmlAgilityPack.dll │ ├── HtmlAgilityPack.pdb │ └── HtmlAgilityPack.pri ├── System.Net.Http.4.3.4 ├── System.Net.Http.4.3.4.nupkg ├── ThirdPartyNotices.txt ├── dotnet_library_license.txt ├── lib │ ├── Xamarinmac20 │ │ └── _._ │ ├── monoandroid10 │ │ └── _._ │ ├── monotouch10 │ │ └── _._ │ ├── net45 │ │ └── _._ │ ├── net46 │ │ └── System.Net.Http.dll │ ├── portable-net45+win8+wpa81 │ │ └── _._ │ ├── win8 │ │ └── _._ │ ├── wpa81 │ │ └── _._ │ ├── xamarinios10 │ │ └── _._ │ ├── xamarintvos10 │ │ └── _._ │ └── xamarinwatchos10 │ │ └── _._ ├── ref │ ├── Xamarinmac20 │ │ └── _._ │ ├── monoandroid10 │ │ └── _._ │ ├── monotouch10 │ │ └── _._ │ ├── net45 │ │ └── _._ │ ├── net46 │ │ └── System.Net.Http.dll │ ├── netcore50 │ │ └── System.Net.Http.dll │ ├── netstandard1.1 │ │ └── System.Net.Http.dll │ ├── netstandard1.3 │ │ └── System.Net.Http.dll │ ├── portable-net45+win8+wpa81 │ │ └── _._ │ ├── win8 │ │ └── _._ │ ├── wpa81 │ │ └── _._ │ ├── xamarinios10 │ │ └── _._ │ ├── xamarintvos10 │ │ └── _._ │ └── xamarinwatchos10 │ │ └── _._ └── runtimes │ ├── unix │ └── lib │ │ └── netstandard1.6 │ │ └── System.Net.Http.dll │ └── win │ └── lib │ ├── net46 │ └── System.Net.Http.dll │ ├── netcore50 │ └── System.Net.Http.dll │ └── netstandard1.3 │ └── System.Net.Http.dll └── repositories.config /Images/ImgInvisibleMan1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Images/ImgInvisibleMan1.png -------------------------------------------------------------------------------- /Images/ImgInvisibleMan2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Images/ImgInvisibleMan2.png -------------------------------------------------------------------------------- /Images/ImgInvisibleMan3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Images/ImgInvisibleMan3.png -------------------------------------------------------------------------------- /Invisible Man.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.21005.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Invisible Man", "Invisible Man\Invisible Man.csproj", "{9407E02E-58DE-4454-B43A-DC789977CA13}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Debug|Any CPU.ActiveCfg = Release|Any CPU 19 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Debug|Any CPU.Build.0 = Release|Any CPU 20 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Debug|x64.ActiveCfg = Debug|x64 21 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Debug|x64.Build.0 = Debug|x64 22 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Debug|x86.ActiveCfg = Release|x86 23 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Debug|x86.Build.0 = Release|x86 24 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Release|x64.ActiveCfg = Release|x64 27 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Release|x64.Build.0 = Release|x64 28 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Release|x86.ActiveCfg = Release|x86 29 | {9407E02E-58DE-4454-B43A-DC789977CA13}.Release|x86.Build.0 = Release|x86 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | EndGlobal 35 | -------------------------------------------------------------------------------- /Invisible Man/AboutWindow.xaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | Invisible Man is an open source, censorship and circumvention tool to give access to the open Internet and past censors. 79 | 80 | 81 | 82 | Please visit the website to download a new version or to get help and information. 83 | 84 | 85 | https://invisiblemanvpn.github.io 86 | 87 | 88 | If the website is inaccessible, you can get a new version of Invisible Man by sending an email to us. 89 | 90 | 91 | invisiblemanvpn@gmail.com 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 126 | 127 | 128 | 129 | -------------------------------------------------------------------------------- /Invisible Man/AboutWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Shapes; 14 | 15 | using System.Diagnostics; 16 | 17 | namespace Invisible_Man 18 | { 19 | /// 20 | /// Interaction logic for AboutWindow.xaml 21 | /// 22 | public partial class AboutWindow : Window 23 | { 24 | public AboutWindow() 25 | { 26 | InitializeComponent(); 27 | } 28 | 29 | private void TextBlockSite_PreviewMouseDown(object sender, MouseButtonEventArgs e) 30 | { 31 | // Open the Invisible Man web page 32 | Process.Start("https://invisiblemanvpn.github.io"); 33 | } 34 | 35 | private void TextBlockEmail_PreviewMouseDown(object sender, MouseButtonEventArgs e) 36 | { 37 | // Send email to Invisible Man 38 | Process.Start("mailto:invisiblemanvpn@gmail.com"); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Invisible Man/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Invisible Man/App.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | pack://application:,,,/Styles/Fonts/#SegoeUI 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Invisible Man/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | using System.Windows; 8 | 9 | using System.Threading; 10 | 11 | namespace Invisible_Man 12 | { 13 | /// 14 | /// Interaction logic for App.xaml 15 | /// 16 | public partial class App : Application 17 | { 18 | private static Mutex mutex; 19 | 20 | protected override void OnStartup(StartupEventArgs e) 21 | { 22 | // Restrict the application to just one instance 23 | const string appName = "Invisible Man"; 24 | bool runWindow; 25 | mutex = new Mutex(true, appName, out runWindow); 26 | 27 | if(!runWindow) 28 | { 29 | // Application is already running 30 | Application.Current.Shutdown(); 31 | } 32 | 33 | base.OnStartup(e); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Invisible Man/IcoInvisibleMan.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/IcoInvisibleMan.ico -------------------------------------------------------------------------------- /Invisible Man/Images/CountryFlags/Canada.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Images/CountryFlags/Canada.png -------------------------------------------------------------------------------- /Invisible Man/Images/CountryFlags/Germany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Images/CountryFlags/Germany.png -------------------------------------------------------------------------------- /Invisible Man/Images/CountryFlags/Netherlands.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Images/CountryFlags/Netherlands.png -------------------------------------------------------------------------------- /Invisible Man/Images/CountryFlags/Singapore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Images/CountryFlags/Singapore.png -------------------------------------------------------------------------------- /Invisible Man/Images/CountryFlags/United-Kingdom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Images/CountryFlags/United-Kingdom.png -------------------------------------------------------------------------------- /Invisible Man/Images/CountryFlags/United-States.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Images/CountryFlags/United-States.png -------------------------------------------------------------------------------- /Invisible Man/Images/CountryFlags/Unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Images/CountryFlags/Unknown.png -------------------------------------------------------------------------------- /Invisible Man/Images/ImgInvisibleManLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Images/ImgInvisibleManLogo.png -------------------------------------------------------------------------------- /Invisible Man/Invisible Man.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {9407E02E-58DE-4454-B43A-DC789977CA13} 8 | WinExe 9 | Properties 10 | Invisible_Man 11 | Invisible Man 12 | v4.5 13 | 512 14 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 15 | 4 16 | 12.0.41002.1 17 | false 18 | F:\Giloy\Applications\Invisible Man\Setup\ 19 | true 20 | Disk 21 | false 22 | Foreground 23 | 7 24 | Days 25 | false 26 | false 27 | true 28 | true 29 | 2 30 | 1.0.0.%2a 31 | false 32 | true 33 | true 34 | 35 | 36 | AnyCPU 37 | true 38 | full 39 | false 40 | bin\Debug\ 41 | DEBUG;TRACE 42 | prompt 43 | 4 44 | 45 | 46 | x86 47 | pdbonly 48 | true 49 | bin\Release\x86\ 50 | TRACE 51 | prompt 52 | 4 53 | 0168 54 | 55 | 56 | IcoInvisibleMan.ico 57 | 58 | 59 | 55959D7008ED664C7139F213870BC11907679186 60 | 61 | 62 | Invisible Man_TemporaryKey.pfx 63 | 64 | 65 | true 66 | 67 | 68 | true 69 | 70 | 71 | true 72 | bin\x86\Debug\ 73 | DEBUG;TRACE 74 | full 75 | x86 76 | prompt 77 | MinimumRecommendedRules.ruleset 78 | true 79 | 80 | 81 | bin\x86\Release\ 82 | TRACE 83 | true 84 | 0168 85 | pdbonly 86 | x86 87 | prompt 88 | MinimumRecommendedRules.ruleset 89 | true 90 | 91 | 92 | true 93 | bin\x64\Debug\ 94 | DEBUG;TRACE 95 | full 96 | x64 97 | prompt 98 | MinimumRecommendedRules.ruleset 99 | true 100 | 101 | 102 | bin\x64\Release\ 103 | TRACE 104 | true 105 | 0168 106 | pdbonly 107 | x64 108 | prompt 109 | MinimumRecommendedRules.ruleset 110 | true 111 | 112 | 113 | 114 | LocalIntranet 115 | 116 | 117 | 118 | 119 | 120 | Properties\app.manifest 121 | 122 | 123 | 124 | ..\packages\HtmlAgilityPack.1.8.11\lib\Net45\HtmlAgilityPack.dll 125 | True 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 4.0 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | MSBuild:Compile 148 | Designer 149 | 150 | 151 | UpdateWindow.xaml 152 | 153 | 154 | AboutWindow.xaml 155 | 156 | 157 | UserControlServerAccount.xaml 158 | 159 | 160 | MSBuild:Compile 161 | Designer 162 | 163 | 164 | MSBuild:Compile 165 | Designer 166 | 167 | 168 | Designer 169 | MSBuild:Compile 170 | 171 | 172 | MSBuild:Compile 173 | Designer 174 | 175 | 176 | App.xaml 177 | Code 178 | 179 | 180 | 181 | LocationWindow.xaml 182 | 183 | 184 | MainWindow.xaml 185 | Code 186 | 187 | 188 | Designer 189 | MSBuild:Compile 190 | 191 | 192 | Designer 193 | MSBuild:Compile 194 | 195 | 196 | Designer 197 | MSBuild:Compile 198 | 199 | 200 | Designer 201 | MSBuild:Compile 202 | 203 | 204 | Designer 205 | MSBuild:Compile 206 | 207 | 208 | Designer 209 | MSBuild:Compile 210 | 211 | 212 | 213 | 214 | Code 215 | 216 | 217 | True 218 | True 219 | Resources.resx 220 | 221 | 222 | True 223 | Settings.settings 224 | True 225 | 226 | 227 | ResXFileCodeGenerator 228 | Resources.Designer.cs 229 | 230 | 231 | 232 | Designer 233 | 234 | 235 | SettingsSingleFileGenerator 236 | Settings.Designer.cs 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | False 276 | Microsoft .NET Framework 4.5 %28x86 and x64%29 277 | true 278 | 279 | 280 | False 281 | .NET Framework 3.5 SP1 Client Profile 282 | false 283 | 284 | 285 | False 286 | .NET Framework 3.5 SP1 287 | false 288 | 289 | 290 | 291 | 298 | -------------------------------------------------------------------------------- /Invisible Man/Invisible Man.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | F:\Giloy\Applications\Invisible Man\Setup\|F:\Giloy\Applications\Invisible Man\Invisible Man\Output\|publish\ 5 | 6 | 7 | 8 | 9 | 10 | en-US 11 | false 12 | 13 | -------------------------------------------------------------------------------- /Invisible Man/InvisibleManCore.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | using System.IO; 8 | using System.Diagnostics; 9 | using System.Net; 10 | using System.Net.Http; 11 | using HtmlAgilityPack; 12 | 13 | namespace Invisible_Man 14 | { 15 | class ServerInformation 16 | { 17 | public string serverName { get; set; } 18 | public string countryImage { get; set; } 19 | public string serverAddress { get; set; } 20 | public string username { get; set; } 21 | public string password { get; set; } 22 | 23 | public ServerInformation(string serverName, string countryImage, string serverAddress, string username, string password) 24 | { 25 | this.serverName = serverName; 26 | this.countryImage = countryImage; 27 | this.serverAddress = serverAddress; 28 | this.username = username; 29 | this.password = password; 30 | } 31 | } 32 | 33 | class Message 34 | { 35 | public string content { get; set; } 36 | public string link { get; set; } 37 | 38 | public Message(string content, string link) 39 | { 40 | this.content = content; 41 | this.link = link; 42 | } 43 | } 44 | 45 | class InvisibleManCore 46 | { 47 | // Initialize 48 | public static int bundleIdentifier = 4; 49 | public static int index = 0; 50 | public static bool isSelectServer = false; 51 | 52 | private static string path = Directory.GetCurrentDirectory(); 53 | 54 | // Available servers 55 | public static List serverInformations = new List 56 | { 57 | new ServerInformation("VPN Account - 1", "United-Kingdom.png", "Account address","username","password"), 58 | new ServerInformation("VPN Account - 2", "Canada.png", "Account address","username","password"), 59 | new ServerInformation("VPN Account - 3", "Singapore.png", "Account address","username","password") 60 | }; 61 | 62 | /// 63 | /// Save the selected server index in a file 64 | /// 65 | public void SaveServerInFile() 66 | { 67 | try 68 | { 69 | // Get and encode data 70 | string information = index.ToString(); 71 | byte[] dataByte = System.Text.Encoding.UTF8.GetBytes(information); 72 | string encodedData = System.Convert.ToBase64String(dataByte); 73 | 74 | // Save data in file 75 | string serverInfoPath = path + "\\data"; 76 | 77 | if (!Directory.Exists(serverInfoPath)) 78 | Directory.CreateDirectory(serverInfoPath); 79 | 80 | File.WriteAllLines(serverInfoPath + "\\ServerInfo.inm", new string[1] { encodedData }); 81 | } 82 | catch (Exception) 83 | { 84 | // Do nothing! 85 | } 86 | } 87 | 88 | /// 89 | /// Load the selected server index from the file 90 | /// 91 | /// Load successfully or not 92 | public bool LoadServerFromFile() 93 | { 94 | try 95 | { 96 | string serverInfoPath = path + "\\data\\ServerInfo.inm"; 97 | 98 | if (File.Exists(serverInfoPath)) 99 | { 100 | string[] encodedData = File.ReadAllLines(serverInfoPath); 101 | 102 | if (encodedData.Length != 1) // File is corrupt 103 | { 104 | return false; 105 | } 106 | else 107 | { 108 | // Convert encodedData to byte 109 | byte[] dataByte = System.Convert.FromBase64String(encodedData[0]); 110 | 111 | // Convert dataByte to string 112 | int information = Convert.ToInt32(System.Text.Encoding.UTF8.GetString(dataByte)); 113 | 114 | if (information >= serverInformations.Count) // File is corrupt 115 | { 116 | return false; 117 | } 118 | else 119 | { 120 | index = information; 121 | return true; 122 | } 123 | } 124 | } 125 | else 126 | { 127 | return false; 128 | } 129 | } 130 | catch(Exception) 131 | { 132 | return false; 133 | } 134 | } 135 | 136 | /// 137 | /// Use Rasdial to connect to VPN account 138 | /// 139 | /// The result of connecting 140 | private string Connect() 141 | { 142 | try 143 | { 144 | StringBuilder stringBuilder = new StringBuilder(); 145 | ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe"); 146 | 147 | string rootDrive = Path.GetPathRoot(path); 148 | processStartInfo.Arguments = "/C " + rootDrive.Split('\\')[0] + " & cd \"" + path + "\\data\" & rasdial \"InvisibleManVPN\" " 149 | + serverInformations[index].username + " " + serverInformations[index].password + " /phonebook:Connection.inm"; 150 | processStartInfo.RedirectStandardError = true; 151 | processStartInfo.RedirectStandardOutput = true; 152 | processStartInfo.UseShellExecute = false; 153 | processStartInfo.CreateNoWindow = true; 154 | 155 | Process process = Process.Start(processStartInfo); 156 | string output = process.StandardOutput.ReadToEnd(); 157 | process.WaitForExit(); 158 | 159 | if (output.Length != 0) 160 | { 161 | stringBuilder.Append(output); 162 | return output; 163 | } 164 | else 165 | { 166 | return "CommandFailed"; 167 | } 168 | } 169 | catch (Exception) 170 | { 171 | return "CommandFailed"; 172 | } 173 | } 174 | 175 | /// 176 | /// Run the disconnect instruction and disconnect from VPN account 177 | /// 178 | private void Disconnect() 179 | { 180 | try 181 | { 182 | StringBuilder stringBuilder = new StringBuilder(); 183 | ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe"); 184 | 185 | string rootDrive = Path.GetPathRoot(path); 186 | processStartInfo.Arguments = "/C " + rootDrive.Split('\\')[0] + " & cd \"" + path + "\\data" 187 | + "\" & rasdial \"InvisibleManVPN\" /disconnect"; 188 | processStartInfo.RedirectStandardError = true; 189 | processStartInfo.RedirectStandardOutput = true; 190 | processStartInfo.UseShellExecute = false; 191 | processStartInfo.CreateNoWindow = true; 192 | 193 | Process process = Process.Start(processStartInfo); 194 | string output = process.StandardOutput.ReadToEnd(); 195 | process.WaitForExit(); 196 | } 197 | catch (Exception) 198 | { 199 | // Do nothing! 200 | } 201 | } 202 | 203 | /// 204 | /// Set selected server information 205 | /// 206 | /// The index of selected server 207 | public void SetServer(int serverIndex) 208 | { 209 | index = serverIndex; 210 | SaveServerInFile(); 211 | isSelectServer = true; 212 | } 213 | 214 | /// 215 | /// Connect to VPN account 216 | /// 217 | /// Connecting successful or not 218 | public bool ConnectVPN() 219 | { 220 | // Make a connection file 221 | StringBuilder stringBuilder = new StringBuilder(); 222 | stringBuilder.AppendLine("[InvisibleManVPN]"); 223 | stringBuilder.AppendLine("MEDIA=rastapi"); 224 | stringBuilder.AppendLine("Port=VPN2-0"); 225 | stringBuilder.AppendLine("Device=WAN Miniport (IKEv2)"); 226 | stringBuilder.AppendLine("DEVICE=vpn"); 227 | stringBuilder.AppendLine("PhoneNumber=" + serverInformations[index].serverAddress); 228 | 229 | // Save connection in Data folder 230 | try 231 | { 232 | string vpnFolder = path + "\\data"; 233 | 234 | if (!Directory.Exists(vpnFolder)) 235 | Directory.CreateDirectory(vpnFolder); 236 | 237 | File.WriteAllText(vpnFolder + "\\Connection.inm", stringBuilder.ToString()); 238 | 239 | // Connect to VPN 240 | string output = Connect(); 241 | 242 | if(output == "CommandFailed") 243 | { 244 | return false; 245 | } 246 | else 247 | { 248 | string[] stateLines = output.Split('\n'); 249 | string state = stateLines[stateLines.Length - 2]; 250 | 251 | if (state == "Command completed successfully.") 252 | return true; 253 | else 254 | return false; 255 | } 256 | } 257 | catch (Exception) 258 | { 259 | return false; 260 | } 261 | } 262 | 263 | /// 264 | /// Disconnect from VPN account 265 | /// 266 | public void DisconnectVPN() 267 | { 268 | Disconnect(); 269 | } 270 | 271 | /// 272 | /// Check the server to update VPN 273 | /// 274 | public async Task CheckForUpdatesVPN() 275 | { 276 | try 277 | { 278 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 279 | var url = "https://invisiblemanvpn.github.io/index.html"; 280 | HttpClient httpClient = new HttpClient(); 281 | string html = await httpClient.GetStringAsync(url); 282 | 283 | HtmlDocument htmlDocument = new HtmlDocument(); 284 | htmlDocument.LoadHtml(html); 285 | List htmlNodeList = htmlDocument.DocumentNode.SelectNodes("//meta") 286 | .Where(node => node.GetAttributeValue("name", "") 287 | .Equals("BundleIdentifier")).ToList(); 288 | HtmlAttribute contentHtmlAttribute = htmlNodeList[0].Attributes["content"]; 289 | int bundleIdentifierContent = Convert.ToInt32(contentHtmlAttribute.Value); 290 | 291 | if (bundleIdentifierContent > bundleIdentifier) // If new update available on the site 292 | return "NewUpdate"; 293 | else 294 | return "AlreadyHave"; 295 | } 296 | catch(Exception) 297 | { 298 | return "FailedToConnect"; 299 | } 300 | } 301 | 302 | /// 303 | /// Check the server to message 304 | /// 305 | public async Task CheckForMessage() 306 | { 307 | try 308 | { 309 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 310 | var url = "https://invisiblemanvpn.github.io/index.html"; 311 | 312 | HttpClient httpClient = new HttpClient(); 313 | string html = await httpClient.GetStringAsync(url); 314 | 315 | HtmlDocument htmlDocument = new HtmlDocument(); 316 | htmlDocument.LoadHtml(html); 317 | List htmlNodeList = htmlDocument.DocumentNode.SelectNodes("//meta") 318 | .Where(node => node.GetAttributeValue("name", "") 319 | .Equals("Message")).ToList(); 320 | HtmlAttribute contentHtmlAttribute = htmlNodeList[0].Attributes["content"]; 321 | 322 | string[] messageString = contentHtmlAttribute.Value.Split('|'); 323 | int messageTime = Convert.ToInt32(messageString[0]); 324 | string messageContent = messageString[1]; 325 | string messageLink = null; 326 | if (messageString.Length == 3) 327 | messageLink = messageString[2]; 328 | 329 | Message message = new Message(messageContent, messageLink); 330 | 331 | await Task.Delay(messageTime * 1000); 332 | return message; 333 | } 334 | catch(Exception) 335 | { 336 | return new Message("FailedToConnect", null); 337 | } 338 | } 339 | } 340 | } 341 | -------------------------------------------------------------------------------- /Invisible Man/LocationWindow.xaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /Invisible Man/LocationWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Shapes; 14 | 15 | using Invisible_Man.UserControls; 16 | 17 | namespace Invisible_Man 18 | { 19 | /// 20 | /// Interaction logic for LocationWindow.xaml 21 | /// 22 | public partial class LocationWindow : Window 23 | { 24 | public LocationWindow() 25 | { 26 | InitializeComponent(); 27 | 28 | // Show all the available servers 29 | ShowServers(); 30 | } 31 | 32 | /// 33 | /// Get the server list from InvisibleManCore and add them to stackPanelServer 34 | /// 35 | private void ShowServers() 36 | { 37 | StackPanelServer.Children.Clear(); 38 | 39 | for (int i = 0; i < InvisibleManCore.serverInformations.Count; i++) 40 | { 41 | // Get images and set the ImageBrush 42 | Uri uri = new Uri("pack://application:,,,/Images/CountryFlags/" + InvisibleManCore.serverInformations[i].countryImage); 43 | BitmapImage bitmapImage = new BitmapImage(uri); 44 | ImageBrush imageBrush = new ImageBrush(bitmapImage); 45 | 46 | // Create a new UserControlServerAccount 47 | UserControlServerAccount userControlServerAccount = new UserControlServerAccount(); 48 | userControlServerAccount.index = i; 49 | userControlServerAccount.ImageFlag = imageBrush.ImageSource; 50 | userControlServerAccount.ServerName = InvisibleManCore.serverInformations[i].serverName; 51 | 52 | // Add to StackPanelServer 53 | StackPanelServer.Children.Add(userControlServerAccount); 54 | } 55 | 56 | // Disable the selected server 57 | StackPanelServer.Children[InvisibleManCore.index].IsEnabled = false; 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Invisible Man/MainWindow.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 364 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 405 | 460 | 475 | 490 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 517 | 518 | 519 | -------------------------------------------------------------------------------- /Invisible Man/MainWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | 16 | using System.ComponentModel; 17 | using System.Windows.Threading; 18 | using System.Diagnostics; 19 | using System.Windows.Media.Animation; 20 | 21 | namespace Invisible_Man 22 | { 23 | /// 24 | /// Interaction logic for MainWindow.xaml 25 | /// 26 | public partial class MainWindow : Window 27 | { 28 | // BackgroundWorkers and Dispatchers to check connecting states 29 | private BackgroundWorker connectBackgroundWorker = new BackgroundWorker(); 30 | private BackgroundWorker updateBackgroundWorker = new BackgroundWorker(); 31 | private BackgroundWorker messageBackgroundWorker = new BackgroundWorker(); 32 | private DispatcherTimer connectDispatcherTimer = new DispatcherTimer(); 33 | private DispatcherTimer disconnectDispatcherTimer = new DispatcherTimer(); 34 | private DispatcherTimer cancelDispatcherTimer = new DispatcherTimer(); 35 | private DispatcherTimer changeServerDispatcherTimer = new DispatcherTimer(); 36 | 37 | // Show connection state - 0 : disconnecting, 1: connecting, 2: check connecttion, 3: cancelling and 4: change the server 38 | private static int connectingState = -1; 39 | 40 | // Notify icon 41 | private System.Windows.Forms.NotifyIcon notifyIcon = new System.Windows.Forms.NotifyIcon(); 42 | 43 | // Message link 44 | private static string messageLink = null; 45 | 46 | public MainWindow() 47 | { 48 | InitializeComponent(); 49 | 50 | // Show and control the tray icon 51 | TrayIconHandler(); 52 | 53 | // Set BackgroundWorkers and Dispatchers 54 | connectBackgroundWorker.DoWork += connectBackgroundWorker_DoWork; 55 | updateBackgroundWorker.DoWork += updateBackgroundWorker_DoWork; 56 | messageBackgroundWorker.DoWork += messageBackgroundWorker_DoWork; 57 | connectDispatcherTimer.Tick += connectDispatcherTimer_Tick; 58 | connectDispatcherTimer.Interval = TimeSpan.FromSeconds(1); 59 | disconnectDispatcherTimer.Tick += disconnectDispatcherTimer_Tick; 60 | disconnectDispatcherTimer.Interval = TimeSpan.FromSeconds(1); 61 | cancelDispatcherTimer.Tick += cancelDispatcherTimer_Tick; 62 | cancelDispatcherTimer.Interval = TimeSpan.FromSeconds(1); 63 | changeServerDispatcherTimer.Tick += changeServerDispatcherTimer_Tick; 64 | changeServerDispatcherTimer.Interval = TimeSpan.FromSeconds(1); 65 | 66 | // Load server data from file 67 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 68 | if (invisibleManCore.LoadServerFromFile()) 69 | { 70 | // Set LabelCountry 71 | LabelCountry.Content = InvisibleManCore.serverInformations[InvisibleManCore.index].serverName; 72 | 73 | // Start to connecting when start 74 | ButtonConnect_Click(null, null); 75 | } 76 | else 77 | { 78 | // Reset to first server and set LabelCountry 79 | InvisibleManCore.index = 0; 80 | LabelCountry.Content = InvisibleManCore.serverInformations[InvisibleManCore.index].serverName; 81 | 82 | // Save the first server information and disconnect (if need) 83 | invisibleManCore.SaveServerInFile(); 84 | ChangeServer(); 85 | } 86 | 87 | // Check for new version of Invisible Man 88 | updateBackgroundWorker.RunWorkerAsync(); 89 | 90 | // Check for message of Invisible Man 91 | messageBackgroundWorker.RunWorkerAsync(); 92 | } 93 | 94 | /// 95 | /// Connect, disconnect, check, cancel and change server, runs in background with connectBackgroundWorker 96 | /// 97 | private void connectBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) 98 | { 99 | if (connectingState == 0) // If you want to disconnecting 100 | { 101 | // Show disconnecting 102 | Dispatcher.BeginInvoke(new Action(delegate 103 | { 104 | ShowConnectingMenu("Disconnecting"); 105 | })); 106 | 107 | // Disconnect from VPN 108 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 109 | invisibleManCore.DisconnectVPN(); 110 | 111 | // Result 112 | Dispatcher.BeginInvoke(new Action(delegate 113 | { 114 | ShowConnectingMenu("NotConnected"); 115 | })); 116 | } 117 | else if (connectingState == 1) // If you want to connecting 118 | { 119 | // Show connecting 120 | Dispatcher.BeginInvoke(new Action(delegate 121 | { 122 | ShowConnectingMenu("Connecting"); 123 | })); 124 | 125 | // Connect to VPN 126 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 127 | bool isConnect = invisibleManCore.ConnectVPN(); 128 | 129 | connectDispatcherTimer.Start(); 130 | 131 | // Result 132 | Dispatcher.BeginInvoke(new Action(delegate 133 | { 134 | if (isConnect) 135 | { 136 | ShowConnectingMenu("Connected"); 137 | notifyIcon.ShowBalloonTip(500, "Invisible Man is connected", "Enjoy total Internet freedom!", System.Windows.Forms.ToolTipIcon.Info); 138 | } 139 | })); 140 | } 141 | else if(connectingState == 2) // If you want to check connection 142 | { 143 | // Check the VPN 144 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 145 | bool isConnect = invisibleManCore.ConnectVPN(); 146 | 147 | connectDispatcherTimer.Start(); 148 | 149 | // Result 150 | Dispatcher.BeginInvoke(new Action(delegate 151 | { 152 | if (isConnect) 153 | ShowConnectingMenu("Connected"); 154 | else 155 | ShowConnectingMenu("Connecting"); 156 | })); 157 | } 158 | else if (connectingState == 3) // If you want to cancel 159 | { 160 | // Show cancelling 161 | Dispatcher.BeginInvoke(new Action(delegate 162 | { 163 | ShowConnectingMenu("Cancelling"); 164 | })); 165 | 166 | // Check the VPN 167 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 168 | invisibleManCore.DisconnectVPN(); 169 | 170 | // Result 171 | Dispatcher.BeginInvoke(new Action(delegate 172 | { 173 | ShowConnectingMenu("NotConnected"); 174 | })); 175 | } 176 | else if(connectingState == 4) // If you change the server 177 | { 178 | // Show disconnecting 179 | Dispatcher.BeginInvoke(new Action(delegate 180 | { 181 | ShowConnectingMenu("Disconnecting"); 182 | })); 183 | 184 | // Disconnect from VPN 185 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 186 | invisibleManCore.DisconnectVPN(); 187 | 188 | // Show connecting 189 | Dispatcher.BeginInvoke(new Action(delegate 190 | { 191 | ShowConnectingMenu("Connecting"); 192 | })); 193 | 194 | // Connect to VPN 195 | invisibleManCore = new InvisibleManCore(); 196 | bool isConnect = invisibleManCore.ConnectVPN(); 197 | 198 | connectDispatcherTimer.Start(); 199 | 200 | // Result 201 | Dispatcher.BeginInvoke(new Action(delegate 202 | { 203 | if (isConnect) 204 | { 205 | ShowConnectingMenu("Connected"); 206 | notifyIcon.ShowBalloonTip(500, "Invisible Man is connected", "Enjoy total Internet freedom!", System.Windows.Forms.ToolTipIcon.Info); 207 | } 208 | })); 209 | } 210 | } 211 | 212 | /// 213 | /// Check for updates in updateBackgroundWorker 214 | /// 215 | private async void updateBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) 216 | { 217 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 218 | string result = await invisibleManCore.CheckForUpdatesVPN(); 219 | 220 | // Show update menu 221 | await Dispatcher.BeginInvoke(new Action(delegate 222 | { 223 | if (result == "NewUpdate") 224 | GridNewUpdate.Visibility = System.Windows.Visibility.Visible; 225 | })); 226 | } 227 | 228 | /// 229 | /// Check for message in messageBackgroundWorker 230 | /// 231 | private async void messageBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) 232 | { 233 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 234 | Message message = await invisibleManCore.CheckForMessage(); 235 | 236 | await Dispatcher.BeginInvoke(new Action(delegate 237 | { 238 | if (message.content != "FailedToConnect") 239 | { 240 | LabelMessage.Content = message.content; 241 | messageLink = message.link; 242 | if(!string.IsNullOrEmpty(messageLink)) 243 | GridMessageContent.Cursor = Cursors.Hand; 244 | 245 | GridMessage.Visibility = System.Windows.Visibility.Visible; 246 | 247 | // Run the animation 248 | Storyboard messageStoryboard = this.TryFindResource("AnimMessage") as Storyboard; 249 | messageStoryboard.Begin(); 250 | } 251 | })); 252 | } 253 | 254 | /// 255 | /// Check the connection is connect or not each 1 seconds when you connect to VPN 256 | /// 257 | private void connectDispatcherTimer_Tick(object sender, EventArgs e) 258 | { 259 | if (!connectBackgroundWorker.IsBusy) 260 | { 261 | connectDispatcherTimer.Stop(); 262 | disconnectDispatcherTimer.Stop(); 263 | cancelDispatcherTimer.Stop(); 264 | changeServerDispatcherTimer.Stop(); 265 | connectingState = 2; 266 | connectBackgroundWorker.RunWorkerAsync(); 267 | } 268 | } 269 | 270 | /// 271 | /// When you click Disconnect button, this function check the connectBackgroundWorker and when it not buy, start to disconnect operation 272 | /// 273 | private void disconnectDispatcherTimer_Tick(object sender, EventArgs e) 274 | { 275 | if (!connectBackgroundWorker.IsBusy) 276 | { 277 | connectDispatcherTimer.Stop(); 278 | disconnectDispatcherTimer.Stop(); 279 | cancelDispatcherTimer.Stop(); 280 | changeServerDispatcherTimer.Stop(); 281 | connectingState = 0; 282 | connectBackgroundWorker.RunWorkerAsync(); 283 | } 284 | } 285 | 286 | /// 287 | /// When you click on Cancel button, this function check the connectBackgroundWorker and when it not busy, start to cancel operation 288 | /// 289 | private void cancelDispatcherTimer_Tick(object sender, EventArgs e) 290 | { 291 | if (!connectBackgroundWorker.IsBusy) 292 | { 293 | connectDispatcherTimer.Stop(); 294 | disconnectDispatcherTimer.Stop(); 295 | cancelDispatcherTimer.Stop(); 296 | changeServerDispatcherTimer.Stop(); 297 | connectingState = 3; 298 | connectBackgroundWorker.RunWorkerAsync(); 299 | } 300 | } 301 | 302 | /// 303 | /// When you choose a new server location, this function check the connectBackgroundWorker and when it not busy, start to connect to new server VPN 304 | /// 305 | private void changeServerDispatcherTimer_Tick(object sender, EventArgs e) 306 | { 307 | if (!connectBackgroundWorker.IsBusy) 308 | { 309 | connectDispatcherTimer.Stop(); 310 | disconnectDispatcherTimer.Stop(); 311 | cancelDispatcherTimer.Stop(); 312 | changeServerDispatcherTimer.Stop(); 313 | connectingState = 4; 314 | connectBackgroundWorker.RunWorkerAsync(); 315 | } 316 | } 317 | 318 | private void ButtonConnect_Click(object sender, RoutedEventArgs e) 319 | { 320 | try 321 | { 322 | connectDispatcherTimer.Stop(); 323 | disconnectDispatcherTimer.Stop(); 324 | cancelDispatcherTimer.Stop(); 325 | changeServerDispatcherTimer.Stop(); 326 | connectingState = 1; 327 | connectBackgroundWorker.RunWorkerAsync(); 328 | } 329 | catch (Exception) 330 | { 331 | // Do nothing! 332 | } 333 | } 334 | 335 | private void ButtonDisconnect_Click(object sender, RoutedEventArgs e) 336 | { 337 | try 338 | { 339 | ShowConnectingMenu("Disconnecting"); 340 | connectDispatcherTimer.Stop(); 341 | disconnectDispatcherTimer.Stop(); 342 | cancelDispatcherTimer.Stop(); 343 | changeServerDispatcherTimer.Stop(); 344 | disconnectDispatcherTimer.Start(); 345 | } 346 | catch (Exception) 347 | { 348 | // Do nothing! 349 | } 350 | } 351 | 352 | private void ButtonCancel_Click(object sender, RoutedEventArgs e) 353 | { 354 | try 355 | { 356 | ShowConnectingMenu("Cancelling"); 357 | connectDispatcherTimer.Stop(); 358 | disconnectDispatcherTimer.Stop(); 359 | cancelDispatcherTimer.Stop(); 360 | changeServerDispatcherTimer.Stop(); 361 | cancelDispatcherTimer.Start(); 362 | } 363 | catch (Exception) 364 | { 365 | // Do nothing! 366 | } 367 | } 368 | 369 | private void ButtonGithub_Click(object sender, RoutedEventArgs e) 370 | { 371 | // Open the Invisible Man github web page 372 | Process.Start("https://github.com/InvisibleManVPN/InvisibleMan-VPNClient"); 373 | } 374 | 375 | private void ButtonBugReporting_Click(object sender, RoutedEventArgs e) 376 | { 377 | // Open the github issue web page 378 | Process.Start("https://github.com/InvisibleManVPN/InvisibleMan-VPNClient/issues"); 379 | } 380 | 381 | private void ButtonUpdate_Click(object sender, RoutedEventArgs e) 382 | { 383 | // Show the update window 384 | UpdateWindow updateWindow = new UpdateWindow(); 385 | updateWindow.Owner = this; 386 | updateWindow.ShowDialog(); 387 | } 388 | 389 | private void ButtonAbout_Click(object sender, RoutedEventArgs e) 390 | { 391 | // Show the about window 392 | AboutWindow aboutWindow = new AboutWindow(); 393 | aboutWindow.Owner = this; 394 | aboutWindow.ShowDialog(); 395 | } 396 | 397 | private void TextBlockLocation_PreviewMouseDown(object sender, MouseButtonEventArgs e) 398 | { 399 | // Show the location window 400 | LocationWindow locationWindow = new LocationWindow(); 401 | locationWindow.Owner = this; 402 | locationWindow.ShowDialog(); 403 | 404 | if (InvisibleManCore.isSelectServer) // If you choose a new server location, set the new information to InvisibleManCore 405 | { 406 | LabelCountry.Content = InvisibleManCore.serverInformations[InvisibleManCore.index].serverName; 407 | InvisibleManCore.isSelectServer = false; 408 | ChangeServer(); 409 | } 410 | } 411 | 412 | private void ButtonCloseMessage_PreviewMouseDown(object sender, MouseButtonEventArgs e) 413 | { 414 | Storyboard messageCloseStoryboard = this.TryFindResource("AnimMessageClose") as Storyboard; 415 | messageCloseStoryboard.Begin(); 416 | } 417 | 418 | private void Application_Closed(object sender, EventArgs e) 419 | { 420 | notifyIcon.Visible = false; 421 | } 422 | 423 | /// 424 | /// Show and hide disconnect, connecting and connected Grids by ConnectingState 425 | /// 426 | /// Set the connecting state 427 | private void ShowConnectingMenu(string connectingState) 428 | { 429 | if (connectingState == "NotConnected") 430 | { 431 | GridStateLogoDisconnected.Visibility = System.Windows.Visibility.Visible; 432 | GridStateLogoConnecting.Visibility = System.Windows.Visibility.Hidden; 433 | GridStateLogoConnected.Visibility = System.Windows.Visibility.Hidden; 434 | 435 | ButtonConnect.Visibility = System.Windows.Visibility.Visible; 436 | ButtonCancel.Visibility = System.Windows.Visibility.Hidden; 437 | ButtonDisconnect.Visibility = System.Windows.Visibility.Hidden; 438 | 439 | LabelState.Content = "Not connected"; 440 | } 441 | else if(connectingState == "Connecting") 442 | { 443 | GridStateLogoDisconnected.Visibility = System.Windows.Visibility.Hidden; 444 | GridStateLogoConnecting.Visibility = System.Windows.Visibility.Visible; 445 | GridStateLogoConnected.Visibility = System.Windows.Visibility.Hidden; 446 | 447 | ButtonConnect.Visibility = System.Windows.Visibility.Hidden; 448 | ButtonCancel.Visibility = System.Windows.Visibility.Visible; 449 | ButtonDisconnect.Visibility = System.Windows.Visibility.Hidden; 450 | 451 | LabelState.Content = "Connecting..."; 452 | } 453 | else if (connectingState == "Connected") 454 | { 455 | GridStateLogoDisconnected.Visibility = System.Windows.Visibility.Hidden; 456 | GridStateLogoConnecting.Visibility = System.Windows.Visibility.Hidden; 457 | GridStateLogoConnected.Visibility = System.Windows.Visibility.Visible; 458 | 459 | ButtonConnect.Visibility = System.Windows.Visibility.Hidden; 460 | ButtonCancel.Visibility = System.Windows.Visibility.Hidden; 461 | ButtonDisconnect.Visibility = System.Windows.Visibility.Visible; 462 | 463 | LabelState.Content = "Connected"; 464 | } 465 | else if (connectingState == "Disconnecting") 466 | { 467 | GridStateLogoDisconnected.Visibility = System.Windows.Visibility.Hidden; 468 | GridStateLogoConnecting.Visibility = System.Windows.Visibility.Visible; 469 | GridStateLogoConnected.Visibility = System.Windows.Visibility.Hidden; 470 | 471 | ButtonConnect.Visibility = System.Windows.Visibility.Hidden; 472 | ButtonCancel.Visibility = System.Windows.Visibility.Visible; 473 | ButtonDisconnect.Visibility = System.Windows.Visibility.Hidden; 474 | 475 | LabelState.Content = "Disconnecting..."; 476 | } 477 | else if (connectingState == "Cancelling") 478 | { 479 | GridStateLogoDisconnected.Visibility = System.Windows.Visibility.Hidden; 480 | GridStateLogoConnecting.Visibility = System.Windows.Visibility.Visible; 481 | GridStateLogoConnected.Visibility = System.Windows.Visibility.Hidden; 482 | 483 | ButtonConnect.Visibility = System.Windows.Visibility.Hidden; 484 | ButtonCancel.Visibility = System.Windows.Visibility.Visible; 485 | ButtonDisconnect.Visibility = System.Windows.Visibility.Hidden; 486 | 487 | LabelState.Content = "Cancelling..."; 488 | } 489 | } 490 | 491 | /// 492 | /// Show tray icon and controls the settings on it 493 | /// 494 | private void TrayIconHandler() 495 | { 496 | // Show the tray icon 497 | notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(System.Reflection.Assembly.GetEntryAssembly().ManifestModule.Name); 498 | notifyIcon.Visible = true; 499 | 500 | // Settings when you click on the tray icon 501 | notifyIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(notifyIcon_Click); 502 | 503 | // Add context menu to notify icon 504 | System.Windows.Forms.ContextMenu contextMenu = new System.Windows.Forms.ContextMenu(); 505 | contextMenu.MenuItems.Add("Open Invisible Man", new EventHandler(OpenNotify)); 506 | contextMenu.MenuItems.Add("Check for updates", new EventHandler(UpdateNotify)); 507 | contextMenu.MenuItems.Add("About", new EventHandler(AboutNotify)); 508 | contextMenu.MenuItems.Add("Close", new EventHandler(CloseNotify)); 509 | 510 | notifyIcon.ContextMenu = contextMenu; 511 | } 512 | 513 | private void notifyIcon_Click(object sender, System.Windows.Forms.MouseEventArgs e) 514 | { 515 | if(e.Button == System.Windows.Forms.MouseButtons.Left) 516 | { 517 | this.Show(); 518 | this.WindowState = System.Windows.WindowState.Normal; 519 | } 520 | } 521 | 522 | private void OpenNotify(object sender, EventArgs e) 523 | { 524 | this.WindowState = System.Windows.WindowState.Normal; 525 | } 526 | 527 | private void UpdateNotify(object sender, EventArgs e) 528 | { 529 | this.WindowState = System.Windows.WindowState.Normal; 530 | 531 | // Close all other child windows 532 | WindowCollection windowCollection = System.Windows.Application.Current.Windows; 533 | foreach (Window window in windowCollection) 534 | if(window != Application.Current.MainWindow) 535 | window.Close(); 536 | 537 | ButtonUpdate_Click(null, null); 538 | } 539 | 540 | private void AboutNotify(object sender, EventArgs e) 541 | { 542 | this.WindowState = System.Windows.WindowState.Normal; 543 | 544 | // Close all other child windows 545 | WindowCollection windowCollection = System.Windows.Application.Current.Windows; 546 | foreach (Window window in windowCollection) 547 | if (window != Application.Current.MainWindow) 548 | window.Close(); 549 | 550 | ButtonAbout_Click(null, null); 551 | } 552 | 553 | private void CloseNotify(object sender, EventArgs e) 554 | { 555 | this.Close(); 556 | } 557 | 558 | /// 559 | /// Stop all operations and set the new server information and connect to new server 560 | /// 561 | private void ChangeServer() 562 | { 563 | try 564 | { 565 | ShowConnectingMenu("Disconnecting"); 566 | connectDispatcherTimer.Stop(); 567 | disconnectDispatcherTimer.Stop(); 568 | cancelDispatcherTimer.Stop(); 569 | changeServerDispatcherTimer.Stop(); 570 | changeServerDispatcherTimer.Start(); 571 | } 572 | catch (Exception) 573 | { 574 | // Do nothing! 575 | } 576 | } 577 | 578 | private void GridMessageContent_PreviewMouseDown(object sender, MouseButtonEventArgs e) 579 | { 580 | if(!string.IsNullOrEmpty(messageLink)) 581 | Process.Start(messageLink); 582 | } 583 | } 584 | } 585 | -------------------------------------------------------------------------------- /Invisible Man/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | // General Information about an assembly is controlled through the following 8 | // set of attributes. Change these attribute values to modify the information 9 | // associated with an assembly. 10 | [assembly: AssemblyTitle("Invisible Man")] 11 | [assembly: AssemblyDescription("Free premium PPTP VPN")] 12 | [assembly: AssemblyConfiguration("")] 13 | [assembly: AssemblyCompany("Invisible Man")] 14 | [assembly: AssemblyProduct("Invisible Man")] 15 | [assembly: AssemblyCopyright("Copyright © 2019 Invisible Man")] 16 | [assembly: AssemblyTrademark("")] 17 | [assembly: AssemblyCulture("")] 18 | 19 | // Setting ComVisible to false makes the types in this assembly not visible 20 | // to COM components. If you need to access a type in this assembly from 21 | // COM, set the ComVisible attribute to true on that type. 22 | [assembly: ComVisible(false)] 23 | 24 | //In order to begin building localizable applications, set 25 | //CultureYouAreCodingWith in your .csproj file 26 | //inside a . For example, if you are using US english 27 | //in your source files, set the to en-US. Then uncomment 28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 29 | //the line below to match the UICulture setting in the project file. 30 | 31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 32 | 33 | 34 | [assembly: ThemeInfo( 35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 36 | //(used if a resource is not found in the page, 37 | // or application resource dictionaries) 38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 39 | //(used if a resource is not found in the page, 40 | // app, or any theme specific resource dictionaries) 41 | )] 42 | 43 | 44 | // Version information for an assembly consists of the following four values: 45 | // 46 | // Major Version 47 | // Minor Version 48 | // Build Number 49 | // Revision 50 | // 51 | // You can specify all the values or you can default the Build and Revision Numbers 52 | // by using the '*' as shown below: 53 | // [assembly: AssemblyVersion("1.0.*")] 54 | [assembly: AssemblyVersion("1.7.0.0")] 55 | [assembly: AssemblyFileVersion("1.7.0.0")] 56 | -------------------------------------------------------------------------------- /Invisible Man/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Invisible_Man.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Invisible_Man.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Invisible Man/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /Invisible Man/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Invisible_Man.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Invisible Man/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Invisible Man/Properties/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Invisible Man/Styles/ButtonCircleRed.xaml: -------------------------------------------------------------------------------- 1 |  3 | 4 | 30 | 31 | -------------------------------------------------------------------------------- /Invisible Man/Styles/ButtonGray.xaml: -------------------------------------------------------------------------------- 1 |  3 | 26 | -------------------------------------------------------------------------------- /Invisible Man/Styles/ButtonGreen.xaml: -------------------------------------------------------------------------------- 1 |  3 | 4 | 27 | 28 | -------------------------------------------------------------------------------- /Invisible Man/Styles/ButtonRed.xaml: -------------------------------------------------------------------------------- 1 |  3 | 4 | 27 | 28 | -------------------------------------------------------------------------------- /Invisible Man/Styles/Colors.xaml: -------------------------------------------------------------------------------- 1 |  3 | 4 | #fff4f3ef 5 | 6 | #e0dfdf 7 | 8 | #ffffff 9 | 10 | #d95f5f 11 | 12 | #ec6868 13 | 14 | #cb5858 15 | 16 | #19b3e4 17 | 18 | #3198c8 19 | 20 | #7bd08a 21 | 22 | #85de95 23 | 24 | #75c683 25 | 26 | -------------------------------------------------------------------------------- /Invisible Man/Styles/Fonts/SegoeUI-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Styles/Fonts/SegoeUI-Bold.ttf -------------------------------------------------------------------------------- /Invisible Man/Styles/Fonts/SegoeUI-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Styles/Fonts/SegoeUI-Light.ttf -------------------------------------------------------------------------------- /Invisible Man/Styles/Fonts/SegoeUI-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/Invisible Man/Styles/Fonts/SegoeUI-Regular.ttf -------------------------------------------------------------------------------- /Invisible Man/UpdateWindow.xaml: -------------------------------------------------------------------------------- 1 |  7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /Invisible Man/UpdateWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Shapes; 14 | 15 | using System.ComponentModel; 16 | using System.Diagnostics; 17 | 18 | namespace Invisible_Man 19 | { 20 | /// 21 | /// Interaction logic for UpdateWindow.xaml 22 | /// 23 | public partial class UpdateWindow : Window 24 | { 25 | // BackgroundWorker to check for updates 26 | private BackgroundWorker updateBackgroundWorker = new BackgroundWorker(); 27 | 28 | public UpdateWindow() 29 | { 30 | InitializeComponent(); 31 | 32 | // Set BackgroundWorker 33 | updateBackgroundWorker.DoWork += updateBackgroundWorker_DoWork; 34 | updateBackgroundWorker.RunWorkerAsync(); 35 | } 36 | 37 | /// 38 | /// Check for updates in updateBackgroundWorker 39 | /// 40 | private async void updateBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) 41 | { 42 | // Show waiting 43 | await Dispatcher.BeginInvoke(new Action(delegate 44 | { 45 | ShowUpdateMenu("Waiting"); 46 | })); 47 | 48 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 49 | string result = await invisibleManCore.CheckForUpdatesVPN(); 50 | 51 | // Show update menu 52 | await Dispatcher.BeginInvoke(new Action(delegate 53 | { 54 | ShowUpdateMenu(result); 55 | })); 56 | } 57 | 58 | private void ButtonCancel_Click(object sender, RoutedEventArgs e) 59 | { 60 | this.Close(); 61 | } 62 | 63 | private void ButtonTryAgain_Click(object sender, RoutedEventArgs e) 64 | { 65 | updateBackgroundWorker.RunWorkerAsync(); 66 | } 67 | 68 | private void ButtonClose_Click(object sender, RoutedEventArgs e) 69 | { 70 | this.Close(); 71 | } 72 | 73 | private void ButtonUpdate_Click(object sender, RoutedEventArgs e) 74 | { 75 | // Open the Invisible Man web page 76 | Process.Start("https://invisiblemanvpn.github.io"); 77 | } 78 | 79 | /// 80 | /// Show and hide waiting, new, try again and already Grids by updateState 81 | /// 82 | /// Set the update state 83 | private void ShowUpdateMenu(string updateState) 84 | { 85 | if(updateState == "Waiting") 86 | { 87 | GridWaiting.Visibility = System.Windows.Visibility.Visible; 88 | GridNew.Visibility = System.Windows.Visibility.Hidden; 89 | GridTryAgain.Visibility = System.Windows.Visibility.Hidden; 90 | GridAlready.Visibility = System.Windows.Visibility.Hidden; 91 | 92 | ButtonCancel.Visibility = System.Windows.Visibility.Visible; 93 | ButtonUpdate.Visibility = System.Windows.Visibility.Hidden; 94 | ButtonTryAgain.Visibility = System.Windows.Visibility.Hidden; 95 | ButtonClose.Visibility = System.Windows.Visibility.Hidden; 96 | 97 | LabelState.Content = "Waiting for server response..."; 98 | } 99 | else if(updateState == "NewUpdate") 100 | { 101 | GridWaiting.Visibility = System.Windows.Visibility.Hidden; 102 | GridNew.Visibility = System.Windows.Visibility.Visible; 103 | GridTryAgain.Visibility = System.Windows.Visibility.Hidden; 104 | GridAlready.Visibility = System.Windows.Visibility.Hidden; 105 | 106 | ButtonCancel.Visibility = System.Windows.Visibility.Hidden; 107 | ButtonUpdate.Visibility = System.Windows.Visibility.Visible; 108 | ButtonTryAgain.Visibility = System.Windows.Visibility.Hidden; 109 | ButtonClose.Visibility = System.Windows.Visibility.Hidden; 110 | 111 | LabelState.Content = "A new version of Invisible Man is available"; 112 | } 113 | else if (updateState == "AlreadyHave") 114 | { 115 | GridWaiting.Visibility = System.Windows.Visibility.Hidden; 116 | GridNew.Visibility = System.Windows.Visibility.Hidden; 117 | GridTryAgain.Visibility = System.Windows.Visibility.Hidden; 118 | GridAlready.Visibility = System.Windows.Visibility.Visible; 119 | 120 | ButtonCancel.Visibility = System.Windows.Visibility.Hidden; 121 | ButtonUpdate.Visibility = System.Windows.Visibility.Hidden; 122 | ButtonTryAgain.Visibility = System.Windows.Visibility.Hidden; 123 | ButtonClose.Visibility = System.Windows.Visibility.Visible; 124 | 125 | LabelState.Content = "You already have the latest version"; 126 | } 127 | else if (updateState == "FailedToConnect") 128 | { 129 | GridWaiting.Visibility = System.Windows.Visibility.Hidden; 130 | GridNew.Visibility = System.Windows.Visibility.Hidden; 131 | GridTryAgain.Visibility = System.Windows.Visibility.Visible; 132 | GridAlready.Visibility = System.Windows.Visibility.Hidden; 133 | 134 | ButtonCancel.Visibility = System.Windows.Visibility.Hidden; 135 | ButtonUpdate.Visibility = System.Windows.Visibility.Hidden; 136 | ButtonTryAgain.Visibility = System.Windows.Visibility.Visible; 137 | ButtonClose.Visibility = System.Windows.Visibility.Hidden; 138 | 139 | LabelState.Content = "Failed to connect to the server"; 140 | } 141 | } 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /Invisible Man/UserControls/UserControlServerAccount.xaml: -------------------------------------------------------------------------------- 1 |  8 | 9 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Invisible Man/UserControls/UserControlServerAccount.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | 16 | namespace Invisible_Man.UserControls 17 | { 18 | /// 19 | /// Interaction logic for UserControlServerAccount.xaml 20 | /// 21 | public partial class UserControlServerAccount : UserControl 22 | { 23 | public UserControlServerAccount() 24 | { 25 | InitializeComponent(); 26 | } 27 | 28 | public int index { get; set; } 29 | 30 | public string ServerName 31 | { 32 | get 33 | { 34 | return this.LabelServerName.Content.ToString(); 35 | } 36 | set 37 | { 38 | this.LabelServerName.Content = value; 39 | } 40 | } 41 | 42 | public ImageSource ImageFlag 43 | { 44 | get 45 | { 46 | return this.ImageBrushFlag.ImageSource; 47 | } 48 | set 49 | { 50 | this.ImageBrushFlag.ImageSource = value; 51 | } 52 | } 53 | 54 | private void ButtonServerAccount_Click(object sender, RoutedEventArgs e) 55 | { 56 | InvisibleManCore invisibleManCore = new InvisibleManCore(); 57 | invisibleManCore.SetServer(index); 58 | Window.GetWindow(this).Close(); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /Invisible Man/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Invisible Man/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Invisible Man 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Invisible Man - VPN Client 2 | 3 | > Free premium PPTP VPN 4 | 5 | [![Downloads](https://img.shields.io/github/downloads/invisiblemanvpn/InvisibleMan-VPNClient/total.svg?label=downloads%20%28total%29)](https://github.com/InvisibleManVPN/InvisibleMan-VPNClient/releases) 6 | 7 | Invisible Man is an open source, censorship and circumvention tool to give access to the open Internet and past censors. Invisible Man is built on C# WPF. 8 | 9 | ![InvisibleManScreenShot1](https://github.com/InvisibleManVPN/InvisibleMan-VPNClient/blob/master/Images/ImgInvisibleMan1.png) 10 | ![InvisibleManScreenShot2](https://github.com/InvisibleManVPN/InvisibleMan-VPNClient/blob/master/Images/ImgInvisibleMan3.png) 11 | 12 | ## All these benefits by pushing one button 13 | 14 | - **COMPLETE PRIVACY:** With Invisible Man, your actual IP address is hidden from the services you visit. Not even your Internet service provider can see what you do online. 15 | 16 | - **ACCESS BLOCKED CONTENT:** Change your virtual location and faceless restrictions when it comes to accessing content online. 17 | 18 | - **Wi‑Fi SECURITY:** Even on unsecured public Wi‑Fi, your traffic is encrypted and impossible to intercept. 19 | 20 | ## Getting started 21 | 22 | If you just want to download the application, you can use following links: 23 | 24 | [Download Invisible Man - x64](https://github.com/InvisibleManVPN/InvisibleMan-VPNClient/releases/download/1.0/InvisibleMan-x64.exe) 25 | 26 | [Download Invisible Man - x86](https://github.com/InvisibleManVPN/InvisibleMan-VPNClient/releases/download/1.0/InvisibleMan-x86.exe) 27 | 28 | But if you want to get the source of Invisible Man, just use `git clone "https://github.com/InvisibleManVPN/InvisibleMan-VPNClient.git"` and open the project in Visual Studio. 29 | 30 | ## Contacts 31 | 32 | Web page: [https://invisiblemanvpn.github.io/](https://invisiblemanvpn.github.io/) 33 | 34 | Email: [invisiblemanvpn@gmail.com](mailto:invisiblemanvpn@gmail.com) 35 | -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/HtmlAgilityPack.1.8.11.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/HtmlAgilityPack.1.8.11.nupkg -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/Net20/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/Net20/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/Net20/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/Net20/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/Net40-client/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/Net40-client/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/Net40-client/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/Net40-client/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/Net40/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/Net40/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/Net40/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/Net40/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/Net45/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/Net45/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/Net45/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/Net45/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/NetCore45/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/NetCore45/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/NetCore45/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/NetCore45/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/netstandard1.3/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/netstandard1.3/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/netstandard1.3/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/netstandard1.3/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/netstandard1.6/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/netstandard1.6/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/netstandard1.6/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/netstandard1.6/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/netstandard2.0/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/netstandard2.0/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/netstandard2.0/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/netstandard2.0/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/portable-net45+netcore45+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/uap10.0/HtmlAgilityPack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/uap10.0/HtmlAgilityPack.dll -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/uap10.0/HtmlAgilityPack.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/uap10.0/HtmlAgilityPack.pdb -------------------------------------------------------------------------------- /packages/HtmlAgilityPack.1.8.11/lib/uap10.0/HtmlAgilityPack.pri: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/HtmlAgilityPack.1.8.11/lib/uap10.0/HtmlAgilityPack.pri -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/System.Net.Http.4.3.4.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/System.Net.Http.4.3.4.nupkg -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ThirdPartyNotices.txt: -------------------------------------------------------------------------------- 1 | This Microsoft .NET Library may incorporate components from the projects listed 2 | below. Microsoft licenses these components under the Microsoft .NET Library 3 | software license terms. The original copyright notices and the licenses under 4 | which Microsoft received such components are set forth below for informational 5 | purposes only. Microsoft reserves all rights not expressly granted herein, 6 | whether by implication, estoppel or otherwise. 7 | 8 | 1. .NET Core (https://github.com/dotnet/core/) 9 | 10 | .NET Core 11 | Copyright (c) .NET Foundation and Contributors 12 | 13 | The MIT License (MIT) 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/dotnet_library_license.txt: -------------------------------------------------------------------------------- 1 | 2 | MICROSOFT SOFTWARE LICENSE TERMS 3 | 4 | 5 | MICROSOFT .NET LIBRARY 6 | 7 | These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft 8 | 9 | · updates, 10 | 11 | · supplements, 12 | 13 | · Internet-based services, and 14 | 15 | · support services 16 | 17 | for this software, unless other terms accompany those items. If so, those terms apply. 18 | 19 | BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. 20 | 21 | 22 | IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW. 23 | 24 | 1. INSTALLATION AND USE RIGHTS. 25 | 26 | a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs. 27 | 28 | b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only. 29 | 30 | 2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. 31 | 32 | a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below. 33 | 34 | i. Right to Use and Distribute. 35 | 36 | · You may copy and distribute the object code form of the software. 37 | 38 | · Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. 39 | 40 | ii. Distribution Requirements. For any Distributable Code you distribute, you must 41 | 42 | · add significant primary functionality to it in your programs; 43 | 44 | · require distributors and external end users to agree to terms that protect it at least as much as this agreement; 45 | 46 | · display your valid copyright notice on your programs; and 47 | 48 | · indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs. 49 | 50 | iii. Distribution Restrictions. You may not 51 | 52 | · alter any copyright, trademark or patent notice in the Distributable Code; 53 | 54 | · use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft; 55 | 56 | · include Distributable Code in malicious, deceptive or unlawful programs; or 57 | 58 | · modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that 59 | 60 | · the code be disclosed or distributed in source code form; or 61 | 62 | · others have the right to modify it. 63 | 64 | 3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not 65 | 66 | · work around any technical limitations in the software; 67 | 68 | · reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; 69 | 70 | · publish the software for others to copy; 71 | 72 | · rent, lease or lend the software; 73 | 74 | · transfer the software or this agreement to any third party; or 75 | 76 | · use the software for commercial software hosting services. 77 | 78 | 4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software. 79 | 80 | 5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. 81 | 82 | 6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. 83 | 84 | 7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. 85 | 86 | 8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services. 87 | 88 | 9. APPLICABLE LAW. 89 | 90 | a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort. 91 | 92 | b. Outside the United States. If you acquired the software in any other country, the laws of that country apply. 93 | 94 | 10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. 95 | 96 | 11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 97 | 98 | FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS. 99 | 100 | 12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. 101 | 102 | This limitation applies to 103 | 104 | · anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and 105 | 106 | · claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. 107 | 108 | It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. 109 | 110 | Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French. 111 | 112 | Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. 113 | 114 | EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues. 115 | 116 | LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. 117 | 118 | Cette limitation concerne : 119 | 120 | · tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et 121 | 122 | · les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur. 123 | 124 | Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard. 125 | 126 | EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas. 127 | 128 | 129 | -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/Xamarinmac20/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/Xamarinmac20/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/monoandroid10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/monoandroid10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/monotouch10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/monotouch10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/net45/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/net45/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/net46/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/net46/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/portable-net45+win8+wpa81/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/portable-net45+win8+wpa81/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/win8/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/win8/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/wpa81/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/wpa81/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/xamarinios10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/xamarinios10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/xamarintvos10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/xamarintvos10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/lib/xamarinwatchos10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/lib/xamarinwatchos10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/Xamarinmac20/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/Xamarinmac20/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/monoandroid10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/monoandroid10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/monotouch10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/monotouch10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/net45/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/net45/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/net46/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/net46/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/netcore50/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/netcore50/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/netstandard1.1/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/netstandard1.1/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/netstandard1.3/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/netstandard1.3/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/portable-net45+win8+wpa81/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/portable-net45+win8+wpa81/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/win8/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/win8/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/wpa81/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/wpa81/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/xamarinios10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/xamarinios10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/xamarintvos10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/xamarintvos10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/ref/xamarinwatchos10/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/ref/xamarinwatchos10/_._ -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/runtimes/unix/lib/netstandard1.6/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/runtimes/unix/lib/netstandard1.6/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/runtimes/win/lib/net46/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/runtimes/win/lib/net46/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/runtimes/win/lib/netcore50/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/runtimes/win/lib/netcore50/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/System.Net.Http.4.3.4/runtimes/win/lib/netstandard1.3/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InvisibleManVPN/InvisibleMan-VPNClient/155db54bd7d0bd774feb2b16bdd6d399ad216343/packages/System.Net.Http.4.3.4/runtimes/win/lib/netstandard1.3/System.Net.Http.dll -------------------------------------------------------------------------------- /packages/repositories.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | --------------------------------------------------------------------------------