· 7 years ago · Jul 12, 2018, 03:54 PM
1 using System;
2using System.Diagnostics;
3using System.IO;
4using System.Net;
5using System.Runtime.CompilerServices;
6using System.Windows.Forms;
7using System.Xml;
8using Microsoft.VisualBasic.CompilerServices;
9using Microsoft.VisualBasic.Devices;
10
11namespace PAPI
12{
13 // Token: 0x02000008 RID: 8
14 public class API
15 {
16 // Token: 0x0600000F RID: 15 RVA: 0x000021B3 File Offset: 0x000003B3
17 public API()
18 {
19 this.HWID = new HWID_Class();
20 this.EC = new Encryption();
21 }
22
23// Token: 0x06000010 RID: 16 RVA: 0x000021D4 File Offset: 0x000003D4
24 public object activateLicense(string LicenseKey, string Email)
25 {
26 Process.Start(Convert.ToString(Convert.ToString(string.Concat(new string[]
27 {
28 Settings.WebPortal,
29 Settings.SubDomain,
30 "/Activate/",
31 LicenseKey,
32 "/",
33 this.HWID.GetHWID(),
34 "/",
35 new Computer().Name,
36 "/",
37 Email
38 }))));
39 return null;
40 }
41
42// Token: 0x06000011 RID: 17 RVA: 0x00002258 File Offset: 0x00000458
43 public string checkLicense(object SecretKey, object AppToken, object LicenseKey)
44 {
45 try
46 {
47 WebRequest webRequest = (WebRequest)NewLateBinding.LateGet(null, typeof(WebRequest), "Create", new object[]
48 {
49 Operators.AddObject(Operators.AddObject(Operators.AddObject(Operators.AddObject(Operators.AddObject(Operators.AddObject(Operators.AddObject(Operators.AddObject(Settings.WebPath + Settings.WebAPIPath, SecretKey), Settings.WebLicenseAPI), AppToken), "/"), LicenseKey), "/"), this.HWID.GetHWID()), ".xml")
50 }, null, null, null);
51 webRequest.Timeout = 60000;
52 WebResponse response = webRequest.GetResponse();
53 Stream responseStream = response.GetResponseStream();
54 XmlDocument xmlDocument = new XmlDocument();
55 bool flag = responseStream != null;
56 if (flag)
57 {
58 xmlDocument.Load(responseStream);
59 XmlNode xmlNode = xmlDocument.SelectSingleNode("//response/Status");
60 bool flag2 = xmlNode != null;
61 if (flag2)
62 {
63 string text = this.EC.DecryptDES(xmlNode.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
64 response.Close();
65 responseStream.Close();
66 Settings.Authenticated = false;
67 bool flag3 = Operators.CompareString(text, "ACTIVE", false) != 0;
68 if (flag3)
69 {
70 return text;
71 }
72 Settings.Authenticated = true;
73 Settings.Status = this.EC.DecryptDES(xmlNode.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
74 XmlNode xmlNode2 = xmlDocument.SelectSingleNode("//response/_integrity");
75 bool flag4 = xmlNode2 != null;
76 if (flag4)
77 {
78 Settings.Integrity = xmlNode2.InnerText;
79 }
80 XmlNode xmlNode3 = xmlDocument.SelectSingleNode("//response/License");
81 bool flag5 = xmlNode3 != null;
82 if (flag5)
83 {
84 Settings.LicenseKey = this.EC.DecryptDES(xmlNode3.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
85 }
86 XmlNode xmlNode4 = xmlDocument.SelectSingleNode("//response/License_Created_On");
87 bool flag6 = xmlNode4 != null;
88 if (flag6)
89 {
90 Settings.License_Created_On = this.EC.DecryptDES(xmlNode4.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
91 }
92 XmlNode xmlNode5 = xmlDocument.SelectSingleNode("//response/License_Activated_On");
93 bool flag7 = xmlNode5 != null;
94 if (flag7)
95 {
96 Settings.License_Activated_On = this.EC.DecryptDES(xmlNode5.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
97 }
98 XmlNode xmlNode6 = xmlDocument.SelectSingleNode("//response/License_Expiration_Date");
99 bool flag8 = xmlNode6 != null;
100 if (flag8)
101 {
102 Settings.License_Expiration_Date = this.EC.DecryptDES(xmlNode6.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
103 }
104 XmlNode xmlNode7 = xmlDocument.SelectSingleNode("//response/License_Expiration_Date_Day_Left");
105 bool flag9 = xmlNode7 != null;
106 if (flag9)
107 {
108 Settings.License_Expiration_Date_Day_Left = this.EC.DecryptDES(xmlNode7.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
109 }
110 XmlNode xmlNode8 = xmlDocument.SelectSingleNode("//response/License_Note");
111 bool flag10 = xmlNode8 != null;
112 if (flag10)
113 {
114 Settings.License_Note = this.EC.DecryptDES(xmlNode8.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
115 }
116 XmlNode xmlNode9 = xmlDocument.SelectSingleNode("//response/Customer_Name");
117 bool flag11 = xmlNode9 != null;
118 if (flag11)
119 {
120 Settings.Customer_Name = this.EC.DecryptDES(xmlNode9.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
121 }
122 XmlNode xmlNode10 = xmlDocument.SelectSingleNode("//response/Customer_Email");
123 bool flag12 = xmlNode10 != null;
124 if (flag12)
125 {
126 Settings.Customer_Email = this.EC.DecryptDES(xmlNode10.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
127 }
128 XmlNode xmlNode11 = xmlDocument.SelectSingleNode("//response/Customer_Phone");
129 bool flag13 = xmlNode11 != null;
130 if (flag13)
131 {
132 Settings.Customer_Phone = this.EC.DecryptDES(xmlNode11.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
133 }
134 XmlNode xmlNode12 = xmlDocument.SelectSingleNode("//response/Customer_Country");
135 bool flag14 = xmlNode12 != null;
136 if (flag14)
137 {
138 Settings.Customer_Country = this.EC.DecryptDES(xmlNode12.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
139 }
140 XmlNode xmlNode13 = xmlDocument.SelectSingleNode("//response/Rule_Name");
141 bool flag15 = xmlNode13 != null;
142 if (flag15)
143 {
144 Settings.Rule_Name = this.EC.DecryptDES(xmlNode13.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
145 }
146 XmlNode xmlNode14 = xmlDocument.SelectSingleNode("//response/Rule_Time");
147 bool flag16 = xmlNode14 != null;
148 if (flag16)
149 {
150 Settings.Rule_Time = this.EC.DecryptDES(xmlNode14.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
151 }
152 XmlNode xmlNode15 = xmlDocument.SelectSingleNode("//response/Rule_Device");
153 bool flag17 = xmlNode15 != null;
154 if (flag17)
155 {
156 Settings.Rule_Device = this.EC.DecryptDES(xmlNode15.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
157 }
158 XmlNode xmlNode16 = xmlDocument.SelectSingleNode("//response/Device_Used");
159 bool flag18 = xmlNode16 != null;
160 if (flag18)
161 {
162 Settings.Device_Used = this.EC.DecryptDES(xmlNode16.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
163 }
164 XmlNode xmlNode17 = xmlDocument.SelectSingleNode("//response/Device_Name");
165 bool flag19 = xmlNode17 != null;
166 if (flag19)
167 {
168 Settings.Device_Name = this.EC.DecryptDES(xmlNode17.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
169 }
170 XmlNode xmlNode18 = xmlDocument.SelectSingleNode("//response/Device_Country");
171 bool flag20 = xmlNode18 != null;
172 if (flag20)
173 {
174 Settings.Device_Country = this.EC.DecryptDES(xmlNode18.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
175 }
176 XmlNode xmlNode19 = xmlDocument.SelectSingleNode("//response/Device_IP");
177 bool flag21 = xmlNode19 != null;
178 if (flag21)
179 {
180 Settings.Device_IP = this.EC.DecryptDES(xmlNode19.InnerText, Convert.ToString(RuntimeHelpers.GetObjectValue(AppToken)), Convert.ToString(RuntimeHelpers.GetObjectValue(LicenseKey)));
181 }
182 return this.LicenseIntegrityCheck() ? "VALID" : text;
183 }
184 }
185 }
186 catch (Exception ex)
187 {
188 MessageBox.Show(ex.Message);
189 return null;
190 }
191 return null;
192 }
193
194// Token: 0x06000012 RID: 18 RVA: 0x00002914 File Offset: 0x00000B14
195 public string getServerVariable(string SecretToken, string AppToken, string LicenseKey, string VariableName)
196 {
197 string result;
198 try
199 {
200 WebRequest webRequest = WebRequest.Create(Convert.ToString(Convert.ToString(string.Concat(new string[]
201 {
202 Settings.WebPath,
203 Settings.WebAPIPath,
204 SecretToken,
205 Settings.WebAppSV,
206 AppToken,
207 "/"
208 })) + LicenseKey + "/") + VariableName + ".xml");
209 webRequest.Timeout = 60000;
210 WebResponse response = webRequest.GetResponse();
211 Stream responseStream = response.GetResponseStream();
212 XmlDocument xmlDocument = new XmlDocument();
213 bool flag = responseStream == null;
214 if (flag)
215 {
216 result = Convert.ToString(false);
217 }
218 else
219 {
220 xmlDocument.Load(responseStream);
221 XmlNode xmlNode = xmlDocument.SelectSingleNode("//response/Status");
222 bool flag2 = xmlNode == null;
223 if (flag2)
224 {
225 result = Convert.ToString(false);
226 }
227 else
228 {
229 string innerText = xmlNode.InnerText;
230 XmlNode xmlNode2 = xmlDocument.SelectSingleNode("//response/_integrity");
231 bool flag3 = xmlNode2 == null;
232 if (flag3)
233 {
234 result = Convert.ToString(false);
235 }
236 else
237 {
238 string innerText2 = xmlNode2.InnerText;
239 XmlNode xmlNode3 = xmlDocument.SelectSingleNode("//response/updated_on");
240 bool flag4 = xmlNode3 == null;
241 if (flag4)
242 {
243 result = Convert.ToString(false);
244 }
245 else
246 {
247 string str = this.EC.DecryptDES(xmlNode3.InnerText, AppToken, LicenseKey);
248 XmlNode xmlNode4 = xmlDocument.SelectSingleNode("//response/created_on");
249 bool flag5 = xmlNode4 == null;
250 if (flag5)
251 {
252 result = Convert.ToString(false);
253 }
254 else
255 {
256 string str2 = this.EC.DecryptDES(xmlNode4.InnerText, AppToken, LicenseKey);
257 XmlNode xmlNode5 = xmlDocument.SelectSingleNode("//response/variable_value");
258 bool flag6 = xmlNode5 == null;
259 if (flag6)
260 {
261 result = Convert.ToString(false);
262 }
263 else
264 {
265 string text = this.EC.DecryptDES(xmlNode5.InnerText, AppToken, LicenseKey);
266 int length = (Convert.ToString(text + str2) + str).Length;
267 response.Close();
268 responseStream.Close();
269 bool flag7 = !string.Equals(this.EC.GetHash(Convert.ToString(length)), innerText2, StringComparison.CurrentCultureIgnoreCase);
270 if (flag7)
271 {
272 result = Convert.ToString(false);
273 }
274 else if (Operators.CompareString(innerText, "VALID", false) != 0)
275 {
276 if (Operators.CompareString(innerText, "INVALID", false) != 0)
277 {
278 if (Operators.CompareString(innerText, "EMERGENCY", false) != 0)
279 {
280 result = Convert.ToString(false);
281 }
282 else
283 {
284 result = Convert.ToString(false);
285 }
286 }
287 else
288 {
289 result = Convert.ToString(false);
290 }
291 }
292 else
293 {
294 result = text;
295 }
296 }
297 }
298 }
299 }
300 }
301 }
302 }
303 catch (Exception ex)
304 {
305 MessageBox.Show(ex.Message);
306 result = null;
307 }
308 return result;
309 }
310
311// Token: 0x06000013 RID: 19 RVA: 0x00002BB8 File Offset: 0x00000DB8
312 public string getApplication(string SecretToken, string AppToken)
313 {
314 string result;
315 try
316 {
317 WebRequest webRequest = WebRequest.Create(string.Concat(new string[]
318 {
319 Settings.WebPath,
320 Settings.WebAPIPath,
321 SecretToken,
322 Settings.WebAppAPI,
323 AppToken,
324 ".xml"
325 }));
326 webRequest.Timeout = 60000;
327 WebResponse response = webRequest.GetResponse();
328 Stream responseStream = response.GetResponseStream();
329 XmlDocument xmlDocument = new XmlDocument();
330 bool flag = responseStream != null;
331 if (flag)
332 {
333 xmlDocument.Load(responseStream);
334 XmlNode xmlNode = xmlDocument.SelectSingleNode("//response/Status");
335 bool flag2 = xmlNode != null;
336 if (flag2)
337 {
338 string innerText = xmlNode.InnerText;
339 response.Close();
340 responseStream.Close();
341 bool flag3 = Operators.CompareString(innerText, "EMERGENCY", false) == 0;
342 if (flag3)
343 {
344 return Convert.ToString(false);
345 }
346 }
347 }
348 XmlNode xmlNode2 = xmlDocument.SelectSingleNode("//response/name");
349 bool flag4 = xmlNode2 != null;
350 if (flag4)
351 {
352 string innerText2 = xmlNode2.InnerText;
353 XmlNode xmlNode3 = xmlDocument.SelectSingleNode("//response/subdomain");
354 bool flag5 = xmlNode3 != null;
355 if (flag5)
356 {
357 string innerText3 = xmlNode3.InnerText;
358 XmlNode xmlNode4 = xmlDocument.SelectSingleNode("//response/description");
359 bool flag6 = xmlNode4 != null;
360 if (flag6)
361 {
362 string innerText4 = xmlNode4.InnerText;
363 XmlNode xmlNode5 = xmlDocument.SelectSingleNode("//response/slogan");
364 bool flag7 = xmlNode5 != null;
365 if (flag7)
366 {
367 string innerText5 = xmlNode5.InnerText;
368 XmlNode xmlNode6 = xmlDocument.SelectSingleNode("//response/version");
369 bool flag8 = xmlNode6 != null;
370 if (flag8)
371 {
372 string innerText6 = xmlNode6.InnerText;
373 Settings.AppName = innerText2;
374 Settings.SubDomain = innerText3;
375 Settings.AppDescription = innerText4;
376 Settings.Slogan = innerText5;
377 Settings.AppVersion = innerText6;
378 }
379 }
380 }
381 }
382 }
383 result = Convert.ToString(true);
384 }
385 catch (Exception ex)
386 {
387 MessageBox.Show(ex.Message);
388 result = null;
389 }
390 return result;
391 }
392
393// Token: 0x06000014 RID: 20 RVA: 0x00002DB0 File Offset: 0x00000FB0
394 private bool LicenseIntegrityCheck()
395 {
396 int length = string.Concat(new string[]
397 {
398 Settings.LicenseKey,
399 Settings.Status,
400 Settings.License_Created_On,
401 Settings.License_Activated_On,
402 Settings.License_Expiration_Date,
403 Settings.License_Expiration_Date_Day_Left,
404 Settings.License_Note,
405 Settings.Customer_Name,
406 Settings.Customer_Email,
407 Settings.Customer_Phone,
408 Settings.Device_Country,
409 Settings.Rule_Name,
410 Settings.Rule_Time,
411 Settings.Rule_Device,
412 Settings.Device_Used,
413 Settings.Device_Name,
414 Settings.Device_Country,
415 Settings.Device_IP
416 }).Length;
417 bool authenticated = Settings.Authenticated;
418 bool result;
419 if (authenticated)
420 {
421 string integrity = Settings.Integrity;
422 result = string.Equals(this.EC.GetHash(Convert.ToString(length)), integrity, StringComparison.CurrentCultureIgnoreCase);
423 }
424 else
425 {
426 MessageBox.Show("Forbidden Error!");
427 result = false;
428 }
429 return result;
430 }
431
432// Token: 0x04000008 RID: 8
433 private readonly HWID_Class HWID;
434
435// Token: 0x04000009 RID: 9
436 private readonly Encryption EC;
437 }
438}