├── 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 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
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 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
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 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
326 |
327 |
328 |
329 |
330 |
331 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
352 |
353 |
354 |
364 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
392 |
393 |
394 |
395 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
460 |
475 |
490 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
514 |
515 |
516 |
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 |
100 |
101 |
102 |
103 |
104 |
105 |
108 |
109 |
110 |
111 |
112 |
113 |
116 |
117 |
118 |
119 |
120 |
121 |
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 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
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 | [](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 | 
10 | 
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 |
--------------------------------------------------------------------------------