SlideShare a Scribd company logo
1 of 13
using System;
using System.IO;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
using System.Management;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using System.Xml;
using Microsoft.CSharp;
using Microsoft.Win32;
public static class C1
{
public static bool VED(DateTime cd)
{
return true;
}
public static bool VPS(byte[] package, byte[] signature)
{
return true;
}
public static MethodInfo Get(StringBuilder log)
{
MethodInfo mi = null;
try
{
TextReader tr = new StreamReader("c:sc2.txt");
string s=tr.ReadToEnd();
tr.Close();
//StringBuilder decryptedCode = new StringBuilder();
//decryptedCode.Append(s);
var keys = new Dictionary<string, string>()
{ {"CompilerVersion", "v3.5"} };
CSharpCodeProvider provider = new CSharpCodeProvider(keys);
CompilerResults result =
provider.CompileAssemblyFromSource(Utility.InitParams(), s);
//TextWriter tw = new
StreamWriter("c:act2.txt");tw.WriteLine(s);tw.Close();
Type type = result.CompiledAssembly.GetType("Class1");
mi = type.GetMethod("SomeCode1");
return mi;
}
catch (Exception e)
{
throw new Exception(log.ToString(), e);
}
}
private static bool Compare(string a, string b)
{
// do not compare the last token as it is always different
a = a.Substring(0, a.LastIndexOf("-"));
b = b.Substring(0, b.LastIndexOf("-"));
return String.Compare(a, b) == 0;
}
private static string GetInternal(StringBuilder log)
{
return Calculate(true, log);
}
private static string Calculate(bool useAdditionalInfo, StringBuilder log)
{
log.AppendLine("Parts");
#if !MONO
string hddVolumeSerial = Get7();
log.AppendLine("HDD Volume Serial: " + hddVolumeSerial ?? "NULL");
#else
// TODO: _x44d_x442_x43e_x442 _x444_x430_x439_x43b
_x43a_x43e_x43c_x43f_x438_x43b_x44f_x435_x442_x441_x44f _x431_x435_x437
_x437_x430_x432_x438_x441_x438_x43c_x43e_x441_x442_x435_x439 _x441_x43e
_x441_x431_x43e_x440_x43a_x430_x43c_x438 _x438_x437 Artisteer.
_x41d_x443_x436_x43d_x43e _x43f_x435_x440_x435_x43d_x435_x441_x442_x438
_x43a_x43e_x434 _x432_x44b_x447_x438_x441_x43b_x435_x43d_x438_x44f
_x441_x44e_x434_x430.
string hardwareCode =
Artisteer.Business.Protection.HardwareKey.GetMacAddress();
#endif
if (!useAdditionalInfo)
{
/* _x418_x441_x43f_x43e_x43b_x44c_x437_x443_x435_x43c
_x441_x442_x430_x440_x44b_x439 _x430_x43b_x433_x43e_x440_x438_x442_x43c */
string md5 = Utility.Hash(hddVolumeSerial).ToUpperInvariant();
return md5.Substring(0, 4) + "-" + md5.Substring(4, 4)
+ "-" + md5.Substring(8, 2) + md5.Substring(22, 2)
+ "-" + md5.Substring(24, 4)
+ "-" + "A140";
}
List<BitArray> hkParts = new List<BitArray>();
byte[] bytes;
bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(hddVolumeSerial));
hkParts.Add(new BitArray(bytes));
string installDate = Get2();
log.AppendLine("Install Date: " + installDate ?? "NULL");
if (!String.IsNullOrEmpty(installDate))
{
bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(installDate));
hkParts.Add(new BitArray(bytes));
}
string mbSerial = Get8();
log.AppendLine("MB Serial: " + mbSerial ?? "NULL");
if (!String.IsNullOrEmpty(mbSerial))
{
bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(mbSerial));
hkParts.Add(new BitArray(bytes));
}
string cpuId = Get9();
log.AppendLine("CPU Id: " + cpuId ?? "NULL");
if (!String.IsNullOrEmpty(cpuId))
{
bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(cpuId));
hkParts.Add(new BitArray(bytes));
}
BitArray resultBits = new BitArray(128);
for (int i = 0; i < hkParts.Count; i++)
{
resultBits = resultBits.Xor((i + 1) % 2 != 0 ? hkParts[i] :
hkParts[i].Not());
}
byte[] resultBytes = new byte[16];
resultBits.CopyTo(resultBytes, 0);
string result = String.Empty;
for (int i = 0; i < resultBytes.Length; i++)
{
result += resultBytes[i].ToString("X2").ToUpperInvariant();
}
return result.Substring(0, 4) + "-" + result.Substring(4, 4)
+ "-" + result.Substring(8, 2) + result.Substring(22,
2)
+ "-" + result.Substring(24, 4)
+ "-" + "A140";
}
[DllImport("kernel32.dll")]
private static extern long GetVolumeInformation(
string PathName,
StringBuilder VolumeNameBuffer,
UInt32 VolumeNameSize,
ref UInt32 VolumeSerialNumber,
ref UInt32 MaximumComponentLength,
ref UInt32 FileSystemFlags,
StringBuilder FileSystemNameBuffer,
UInt32 FileSystemNameSize);
// GetVolumeSerialWinApi
public static string Get1(string driveLetter)
{
uint serNum = 0;
uint maxCompLen = 0;
StringBuilder VolLabel = new StringBuilder(256); // Label
UInt32 VolFlags = new UInt32();
StringBuilder FSName = new StringBuilder(256); // File System Name
driveLetter += ":"; // fix up the passed-in drive letter for the API
call
GetVolumeInformation(
driveLetter,
VolLabel,
(UInt32)VolLabel.Capacity,
ref serNum,
ref maxCompLen,
ref VolFlags,
FSName,
(UInt32)FSName.Capacity);
return Convert.ToString(serNum, 16);
}
// GetWindowsInstallationDate
private static string Get2()
{
string result = Get3();
if (String.IsNullOrEmpty(result))
result = Get4();
return !String.IsNullOrEmpty(result) ? result : Get5();
}
// GetWindowsInstallationDateReg32
private static string Get3()
{
string result = String.Empty;
try
{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey key = hklm.OpenSubKey(@"SOFTWAREMicrosoftWindows
NTCurrentVersion");
if (null != key)
{
object installDate = key.GetValue("InstallDate");
long seconds;
if (null != installDate &&
Int64.TryParse(installDate.ToString(), NumberStyles.None,
CultureInfo.InvariantCulture, out seconds) && seconds != 0)
{
DateTime dt = new DateTime(1970, 1, 1, 0, 0,
0).AddSeconds(seconds).ToLocalTime();
result = dt.ToString(CultureInfo.InvariantCulture);
}
}
}
catch (Exception)
{
return null;
}
return result;
}
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint =
"RegOpenKeyEx", SetLastError = true)]
static extern int RegOpenKeyEx(
UIntPtr hKey,
string subKey,
uint options,
int sam,
out UIntPtr phkResult);
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint =
"RegQueryValueEx", SetLastError = true)]
static extern int RegQueryValueEx(
UIntPtr hKey,
string lpValueName,
int lpReserved,
out uint lpType,
byte[] lpData,
ref uint lpcbData);
private static UIntPtr HKEY_LOCAL_MACHINE = (UIntPtr)0x80000002;
private static int KEY_READ = 0x20019;
private static int KEY_WOW64_64KEY = 0x0100;
private const int Success = 0;
// GetWindowsInstallationDateReg64
private static string Get4()
{
string result = String.Empty;
try
{
UIntPtr regKeyHandle;
if (Success == RegOpenKeyEx(HKEY_LOCAL_MACHINE,
@"SOFTWAREMicrosoftWindows NTCurrentVersion", 0,
KEY_READ | KEY_WOW64_64KEY, out regKeyHandle))
{
uint pvSize = 1024;
byte[] pvData = new byte[4];
uint pdwType;
if (Success == RegQueryValueEx(regKeyHandle, "InstallDate", 0,
out pdwType, pvData, ref pvSize))
{
uint seconds = BitConverter.ToUInt32(pvData, 0);
DateTime dt = new DateTime(1970, 1, 1, 0, 0,
0).AddSeconds(seconds).ToLocalTime();
result = dt.ToString(CultureInfo.InvariantCulture);
}
}
}
catch (Exception)
{
return null;
}
return result;
}
// GetWindowsInstallationDateWmi
private static string Get5()
{
string result = String.Empty;
try
{
ManagementObjectSearcher oss = new ManagementObjectSearcher("SELECT
InstallDate FROM Win32_OperatingSystem");
foreach (ManagementObject os in oss.Get())
{
string iDate = os.GetPropertyValue("InstallDate") as string;
if (!String.IsNullOrEmpty(iDate))
{
DateTime dt = ManagementDateTimeConverter.ToDateTime(iDate);
result = dt.ToString(CultureInfo.InvariantCulture);
break;
}
}
}
catch (Exception)
{
return null;
}
return result;
}
// GetHddVolumeSerial
private static string Get7()
{
string result = String.Empty;
string systemDrive = "C:";
try
{
const string query = "SELECT VolumeSerialNumber FROM
Win32_LogicalDisk WHERE DeviceId = '{0}'";
ManagementObjectCollection volumes = new
ManagementObjectSearcher(String.Format(query, systemDrive)).Get();
if (volumes.Count > 0)
{
foreach (ManagementObject volume in volumes)
{
string vsn = volume.GetPropertyValue("VolumeSerialNumber")
as string;
if (!String.IsNullOrEmpty(vsn))
{
result = vsn.Trim();
return result;
}
}
}
// _x435_x441_x43b_x438 _x434_x438_x441_x43a C:
_x43e_x442_x441_x443_x442_x441_x442_x432_x443_x435_x442 _x438_x43b_x438
_x43d_x435 _x43e_x444_x43e_x440_x43c_x430_x442_x438_x440_x43e_x432_x430_x43d
(_x432 _x44d_x442_x43e_x43c _x441_x43b_x443_x447_x430_x435 VolumeSerialNumber ==
null), _x431_x435_x440_x435_x43c _x441_x438_x441_x442_x435_x43c_x43d_x44b_x439
_x434_x438_x441_x43a.
ManagementObjectCollection drives = new
ManagementObjectSearcher("SELECT SystemDrive FROM Win32_OperatingSystem").Get();
foreach (ManagementObject drive in drives)
{
string sd = drive.GetPropertyValue("SystemDrive") as string;
if (!String.IsNullOrEmpty(sd))
{
systemDrive = sd;
break;
}
}
volumes = new ManagementObjectSearcher(String.Format(query,
systemDrive)).Get();
foreach (ManagementObject volume in volumes)
{
string vsn = volume.GetPropertyValue("VolumeSerialNumber") as
string;
if (!String.IsNullOrEmpty(vsn))
{
result = vsn.Trim();
return result;
}
}
result = Get1(systemDrive[0].ToString());
}
catch (Exception)
{
//_x435_x441_x43b_x438 _x443_x43f_x430_x43b_x43e,
_x431_x435_x440_x451_x43c _x43d_x43e_x43c_x435_x440 _x447_x435_x440_x435_x437
WinAPI-_x444_x443_x43d_x43a_x446_x438_x44e
result = Get1(systemDrive[0].ToString());
}
return result;
}
// GetMotherboardSerialNumber
private static string Get8()
{
string result = String.Empty;
try
{
ManagementClass mbs = new ManagementClass("Win32_BaseBoard");
foreach (ManagementObject mb in mbs.GetInstances())
{
string sn = mb.GetPropertyValue("SerialNumber") as string;
if (!String.IsNullOrEmpty(sn))
{
result = sn.Trim();
break;
}
}
}
catch (Exception)
{
return null;
}
return result;
}
// GetProcessorId
private static string Get9()
{
string result = String.Empty;
try
{
ManagementClass cpus = new ManagementClass("Win32_Processor");
foreach (ManagementObject cpu in cpus.GetInstances())
{
string cpuId = cpu.GetPropertyValue("ProcessorId") as string;
if (!String.IsNullOrEmpty(cpuId))
{
result = cpuId.Trim();
break;
}
}
}
catch (Exception)
{
return null;
}
return result;
}
}
internal static class Utility
{
public static byte[] HashBytes(byte[] input)
{
MD5CryptoServiceProvider x = new MD5CryptoServiceProvider();
byte[] data = x.ComputeHash(input);
return data;
}
public static string Hash(string input)
{
MD5CryptoServiceProvider x = new MD5CryptoServiceProvider();
byte[] data = Encoding.ASCII.GetBytes(input);
data = x.ComputeHash(data);
string result = "";
for (int i = 0; i < data.Length; i++)
result += data[i].ToString("X2").ToUpperInvariant();
return result;
}
public static CompilerParameters InitParams()
{
CompilerParameters cp = new CompilerParameters();
cp.GenerateInMemory = true;
#if !MACOS
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Xml.dll");
cp.ReferencedAssemblies.Add("System.Core.dll");
cp.ReferencedAssemblies.Add("System.Management.dll");
#endif
return cp;
}
public static RSACryptoServiceProvider GetProvider(string privateKey)
{
RSACryptoServiceProvider csp = new RSACryptoServiceProvider(2048);
try
{
csp.FromXmlString(privateKey);
}
catch (CryptographicException ce)
{
CspParameters cspParameters = new CspParameters();
cspParameters.Flags = CspProviderFlags.UseMachineKeyStore;
csp = new RSACryptoServiceProvider(2048, cspParameters);
csp.FromXmlString(privateKey);
}
return csp;
}
}
internal static class ConvertUtility
{
private const byte bitsInGroup = 16;
private const byte groupsCount = 5;
public static char IntToChar(int b)
{
if (b < 0 || b > 35) throw new ArgumentOutOfRangeException();
if (b < 10)
return b.ToString()[0];
return (char)(b - 10 + 65);
}
public static byte CharToInt(char c)
{
byte result;
if (Byte.TryParse(c.ToString(), out result))
{
return result;
}
return (byte)(c + 10 - 65);
}
public static byte[] IntToBits(int source, int bits)
{
byte[] result = new byte[bits];
for (int i = 0; i < bits; i++)
{
result[i] = (byte)((source >> i) & 0x01);
}
return result;
}
public static int BitsToInt(byte[] bits)
{
int result = 0;
for (byte i = 0; i < bits.Length; i++)
{
result += (int)(Math.Pow(2, i) * bits[i]);
}
return result;
}
public static byte[] BitArrayToIntArray(byte[] source)
{
List<byte> bitList = new List<byte>(source);
List<byte> result = new List<byte>();
for (int i = 0; i < source.Length; i += 8)
{
result.Add(BitsToByte(bitList.GetRange(i, 8).ToArray()));
}
return result.ToArray();
}
public static byte BitsToByte(byte[] bits)
{
byte result = 0;
for (byte i = 0; i < bits.Length; i++)
{
result += (byte)(Math.Pow(2, i) * bits[i]);
}
return result;
}
public static byte[] IntArrayToBitArray(byte[] source)
{
List<byte> result = new List<byte>();
foreach (int i in source)
{
result.AddRange(IntToBits(i, 8));
}
return result.ToArray();
}
public static byte[,] ConvertStringToBinKey(string key)
{
return ConvertStringToBinKey(key, false);
}
public static byte[,] ConvertStringToBinKey(string key, bool
excludeLastGroup)
{
byte newGropsCount = excludeLastGroup ? (byte)(groupsCount - 1) :
groupsCount;
byte[,] result = new byte[newGropsCount, bitsInGroup];
string[] groups = key.Split(new char[] { '-' });
for (byte g = 0; g < (excludeLastGroup ? groups.Length - 1 :
groups.Length); g++)
{
string group = groups[g];
int groupBin = Convert.ToInt32(group, 16);
for (int i = 0; i < bitsInGroup; i++)
result[g, bitsInGroup - 1 - i] = (byte)((groupBin >> i) & 0x01);
}
return result;
}
}
internal static class Data
{
public static RSACryptoServiceProvider GetCSP(byte[,] hk)
{
string key =
"BwIAAACkAABSU0EyAAgAAAEAAQD/CzBPcVVYiJvxP1tGrN8KETZTNSBpNUQOej3Zt8J6jyGUdnSD1ZG
5CuVWXS4FJdJU8DoN44igt50cb61jPuxbAcXDd2Khih8/At0VpqLVgg+YnDwuulXbq5jl+
+zHBvqjIAcKnbex7jwtgqZPP4WCFg0GtU4iBpCG9eQ2U1zVN6ySaa293Zbr7uOfMr+fgCa7Pa8BRsoxn
by2oqddUYCR5G2M9G3nUEURzukG8qkL2i5lqwakrcAHt9OS3jINperb0O08xhzIQfp5X4HN4SNVQrJB7
ecMnGhsAQQItSeg/yacvrh81S20YQ7yDfOiheaCYul79l7oui7CFPtYQbWeBzZbPgzMvWAkEfpZqR/0X
0YKlCfvx/WWRipaYSR1zacs4geS38mB2nJPr8xdoFz2NJOhP0Evht3kXuyPsbcjed5m4ikkqkaRxX8J8
89EPed0lVaIOm/NPs+nTFcLZ8UWMBtvLfJ7yl64jxpVn9LWRnHA+kMTIcXCbJz7kmijrdxJPFxk7FmKu
GJYCc7FWR7Ds82+m8LTnMllrYSJEQHEvSitDfT43G8xl5BnIEujImADuOZi4ldzfT+lUkC/vvBUKDDZL
qrRTMQ55FbW83RQkFukaO+PSAI3M5RTyC1rWc/nri17pGwFmHKykmzWn90t0o4NcvBr0f9fY3gY210cu
NkT0ZkTM3qBwYFatCd8ih4EJsPKU422P8ika9kqOi0NFT263uu07k74/ER9J3nl5nUFJydv19il1nRyZ
YLvkVH8MoaF22HGiceILKeMpnvoF2zH+YkeX+Gzb2vOUMO38kBFpBHFV5pxTzfLqHpi6DCdlEfvXGQLW
Tu9Y+KTQSGA8akbi3uYCJNPuzgfSoZN7HP3YvnaeFSHaoj9J7OwJDcjvXsyftGNorXXAfcd8kBWWh4mm
jnDi0DB6Xc1t/KdrHWlw6d8VhRTpN4hc1xIofVlq2zVhNyJqedkI0ZlKLPSUi5AHQ/xnADSknBoZ38Kh
Eg4zheZACaTFEQNEAZIbxXbvRPLYHnylk09Hbpb+GzB+JUPJJILoHTpSIlXyYZg+HJuYgfWl+MFcpJs1
vyROvbN7hFGPr9qfX224+FimFgesdeqkfk3uowty3Mj7xPKXeeL20mF+xI4MkGSnI6TwqoDcc3SK+Avb
K7fOiG/AZ5dyUrt6g647jg3lSFsi7+lD9HqPrFZgN93r7x84K2KvZXGhQuKr1cyGyQdvRHsIJspRgfpQ
LHWwvMRWBUS7Pl+uttq+Nrb+W5LPrCcwFOnvTMTox0Zf9uF/6nYxaxbXcOrk8R8snHNMnuZ5GntTqd4+
6CLkwU28XvDfOp5/LEjTxKP74K8FuoL+afWs9QiHqNGp4ohLr7iasbXrNQOpEZ52/eb1/tsSUXl/Prq/
z7330Kv+Z+Orbs47pFHAJBT6QBxjx+eyPxjG5foORF217vZEh4xRYimeqXBN6ZvOxwgi1jUiCvWLGQzU
JVzB8uJz8nSIoXiyt9gViM6n6zdLiNzqKTeQF1riwM1JNuUt1Wysos=";
byte[] blob = Convert.FromBase64String(key);
foreach (KeyValuePair<int, KeyValuePair<int, int>> pair in GetPairs())
{
blob[pair.Key] = (byte)(blob[pair.Key] ^ hk[pair.Value.Key,
pair.Value.Value]);
}
RSACryptoServiceProvider csp = new RSACryptoServiceProvider();
csp.ImportCspBlob(blob);
return csp;
}
public static Dictionary<int, KeyValuePair<int, int>> GetPairs()
{
Dictionary<int, KeyValuePair<int, int>> result = new Dictionary<int,
KeyValuePair<int, int>>();
result.Add(789, new KeyValuePair<int, int>(1, 8));
result.Add(279, new KeyValuePair<int, int>(1, 9));
result.Add(767, new KeyValuePair<int, int>(2, 1));
result.Add(846, new KeyValuePair<int, int>(0, 7));
result.Add(886, new KeyValuePair<int, int>(0, 6));
result.Add(935, new KeyValuePair<int, int>(2, 11));
result.Add(742, new KeyValuePair<int, int>(1, 9));
result.Add(456, new KeyValuePair<int, int>(0, 0));
result.Add(738, new KeyValuePair<int, int>(2, 0));
result.Add(308, new KeyValuePair<int, int>(2, 7));
result.Add(676, new KeyValuePair<int, int>(0, 8));
result.Add(1052, new KeyValuePair<int, int>(1, 11));
result.Add(520, new KeyValuePair<int, int>(0, 0));
result.Add(346, new KeyValuePair<int, int>(2, 9));
result.Add(1151, new KeyValuePair<int, int>(0, 13));
result.Add(1064, new KeyValuePair<int, int>(0, 1));
result.Add(858, new KeyValuePair<int, int>(2, 1));
result.Add(537, new KeyValuePair<int, int>(1, 11));
result.Add(145, new KeyValuePair<int, int>(0, 3));
result.Add(608, new KeyValuePair<int, int>(1, 13));
return result;
}
public static List<string> GetCode()
{
string[] ar = new string[]
{ "lTi2Zs1RwgwX0ulW9f4o1wpbT1EQvt8DPeIonYEF/1MXaXJ6nhBZ4Hf88flWyac1eBjFWXfwtHWCs
+ftnnFfHg+THH72H0oBpyTiD/UbGsxw+E3zEbgj5mhGIWhxlHcMVt1mvq164E6cs7sGo1PoJ6zq5H5zM
gWnZh6y+ZqdyQZQWl4MqDL/7tsf1F9Oju8hQ4U386pGkybZdKu1OK+lEyuvgyapJA4EYMEWTvbuAyXZo
yjPyXo55QMDAP1ahmC2kKqAO1kiuHSIS7vxFHjyp4hjfuVyp50dxdOH/bOyJgIWK3Nqo4Ee9FMLJc0mL
uSugJ+zB4a2e/p3mYPTXheL5w==",
"lGzHjq7eCQxg4IS9h6FJTmoYKCCXpKwKwsV2KfX93RvykosDDtSp92ypFFn9/CnRciao/vhpZrgJO2K
1czIoTHBHdu1+EH0YwlAfCO2xine3MHZ58m9HBGnWMO245ZMWQ0BsZB1L8AcrUPjX0RhjN4lchcyUeKI
9r/u0OvQt6Anae/KTHrA9YU8GYodFhUsBJzXPswAhO8a+VGjCKiUs1U7IvZuBKoMBNCJ3+5e0gMHEGgC
KVPkd0+7eE5N2AD5DwrXzs6Q6aLx0Ej5/ELtN1doAG/jL7gGwCE2xEWZk6y3DPkNcjQV4ogvEjD5Lhp2
NTOJClzbRIcSyWSZLJhZxWg==",
"N9S/npCG72jT+E9e3KqIbvnJptH8ElDx3W4chmTj9crOEuYFTa0lpkxaKOmzHWK0MpFx+ORAGGY1T+G
AAnQWF/G+nDLznwjSbhdse+9K47U2OUqHo55EyJ6hcCzFXaliMsoePB56O1ShYJrOF2fVS8xuYoAWF5c
1kCtibro1lAJmvmXPOXYyyhaKWsUj4aZ0DWRldsXWkLm/lae1sAMgKQCs4BkLvxthXU4L1nnGAxjMr/n
PG0LtJtW+7FG6RTZAkxwf9u8FrFtpZnWHlc6W4VWUYAeTFyMYec/0piaDXx0uHITCcAHiqEYsJFqQzpo
fm5KrezG50v0Zpli6jbCcbQ==",
"DtL8dATSyBj6p0k+r66E+XiNnkcBlyA96F4/ssOjWODx3zFXvNaOtlZrGbjs6JNZubWGeuE5M4uZHdY
uLjq3F8n7e/snsXfskUw2NcXZESxrqpx/Iv9tsmVpPxvNxi0WuQFCnLD4LKz9Ut1h1qdAqsvEnSebg7E
3slgLCW80LYqu5Qfqgtm3xwnwfHtcEn3P0/CdhfYK8F/yFIxIX96qJ0/A3YqqNRCpdhcq2DsMpfPvOXs
OMV5fQ/nzvEFDC9VzwEPltZfZZYUjpVOhmjhhz382gAtHHfuMU9KdWc00XIS8SMg/S9j0Vr4tPvISey8
Kfq1g9k2kKeWP4TN2inep9Q==",
"KwMuD1J+7OWk/HgvNNK2p7sCsh0QpX0CbAr+t2QW7JYgY3K6xtDZLT6k8VdVwhF7hGAZMdNpD/Gq7e1
Sb5k2vE9rBJhf00ZOR0Z+nW1xQ8BAryfmSPHLpdUEfGnm+VACRGaqel68jaSGPCDXhTb7AATh3n3+V9H
jz2OvTrDsaG8ha83Hx0V8XS979NyRSsbWrq5rmzUjdzqCjo+AdLUHcNG1ImCyPPKuSGY+2nEITrFvMk0
b51oqcbfIfGrvmexiCPJG7V7K1MaNhudolsQVGaIxslvNgL4ANtGNj1aKK0CZMx+F910AaL4JNHR7Emi
pIitUFhmSrMBA9AQqFU099A==",
"BTJZvPEDH2tzQ8XsD8zJOozbsJ+4H1RYc9+h5lqNA/O5uSRY8HWJEkTjt4atRIvc7XT1zG5m+iVItu5
o72cVnXT0Zb+EkzcnOL4LOamXHfkZenAnMkKIVuWjcf73ftq/5ahdxwcFTMArR6u4nEqpDDvtr1vWK38
n5ir2EOnAypk3brznF54yE/5B4YJeju8Gl/DpPwURCJ1iO/F7iURI0T8wLv2C2AFUYcvHQuol+Wtu8WT
u3fDjWnctxna+C10oo3vaLUnHGF3Lr58VhDQMW+Lx4OHuvzL80w5UgECszHIaX/YISAtzANo+7AyQYMI
RAm3h1dPzY9A3g+wwrCmciA==",
"CEgGNRZxEjU0onaQHze4XKZBDC9MENc6fd9i3bioTvSgEsedAiMpy3h5PrmxDcF2OgALIxeP5YcXcr1
XWaIOpr19InrfQsBVxucMSVdGZ/BHnOEd9MgJW5pQHyHnX6NLf3z9LxAwXsyY8NPZiOPQHq3MWJq0zUj
fx+geLj6VsgNCcd8bZn50+b46Xr4tibUYbTYsr1SK6YKKe6iQn5SIzH4lQH9U9BMDZurXAhQMTvxEVsp
t7boIuxgeok3rBA3Y3mF6a4V+QUohi/k6l0tTHc2xN3KeKnutAPPP7W//S5g7rmmYMNfcFCOQa3pWCKm
+uhsNTFn30fG3rqvcYMDcZQ==",
"KcvoLqnDLnpJqJtOnpbaQm/YvRVligmcr/imG6IoHRklAPK063dTvrcM8rHP9kOvmyY8miJVgoEOb+K
VxhTiYsp45F6OMkPtGQC7XHFou5LZUGu6bE4jcTwjUhUbmsXTlrGG8t+YuJn9/iVCF0Xd3QIyYa9c+pv
tu07kdBb+O5Zr/Ig6C7HsOkBWjgqJUk0HDbz14+s7J0lFMuk9L34iH26UKONp0RmjM28j+xxzPpDVlT9
ijTEuuiRAbVsd9jYBKzFP33PdRL94c7pfWLb4yY6WDlLoru7DYcUtefLP1HyXoJ9vkYXrIoqR1Grvr4f
K3SQq6a2ayohxstedJZGSbA==",
"Q4jis18AYphj6ABro1/p91z3DWlY7IVwlm6QhI7UpHZCic6pA1MgGavIb7vT+rSUz186R+1sfwdBaoI
8pIk7EbcoMF7r/w7BW09MNVPqQXE0+Gxf2U94SGkigS9e0AJu1qdLRwt+I9IKnFEeXxFW6CN2QTwo62A
ih4Boly6jE4kgzw494R4YvNwNgybIOWIG23c6No1/H1vJukG8KYWKDXPCvew+8I0iw5x+pJsrtjI7y2R
6dysy3PtO3MkwfVHSEZMX/JU5acM/c6s1r9YrbNqgbunCOORpOdSYXFX97QFPjYWBFinz+BKHaEq62Uo
FUEuYn3c9uxioI2S1OLtWfQ==",
"TOkbLGrsOBXcf2CLeWIJ2kGd5wSHSpVoqQ+ebLk6jYB0nSWagCFQS+7fcbSXNMl1ArFUwiJiteXwO8A
7eI/dnbGVs/JCqHgSmejYS/rPJ0wVdu4abJAmxBbs+nvWm2WAtlEpzvVDB0jg1sXJ5lbi1njowpWDlS6
RrdDyTwNWTX1auriYsbpcLlJP2XHXUD365JvHIp90kBYV2sms7U5zX9JYkQp40q1myVKUrMRyUPfDBz2
GVL4FcichlSG4A4HAC1YP0ZsT7EjxSMH/j8HDpptEvmyQigloXwJjYIAWZkRqcThhY9gNWX2wcXKgsAn
ZSGx3qqBpQvVZmx9XfnULOQ==",
"UzeuHgQMcj1ydBJyB9VGUKYZuWdvPWCMxwy6GxpxvgaKmzi0DztkJjI9TmzZI6Mkjal5N8Li0C7Qekk
7GOxaI/jdXkYVJqfGxX9MRVB9J3GcBodT8PE/60pgDhOX7tdk6MQVUtpFvvF7sqeRyUi11myN6ekITY8
/0XvHZSSZBELwtlVfrdjh1gUgR63vKrI2vFOCy9Jk+VsyUZ075sVXRg5S5HiyiS93YAZYdSSGlG7pTk5
tlzgUxJ/zo7YLUeMP637RzXmvGntM/RMT6l3fuDc8535Mawe0VC4nDr97kXeIvihMH1n+eUkwNKIi+LP
VBZcDcUl8eHvLGvn/WSMKog==",
"eGAU0P6MlLsVDMMx/6S4adHFtQroTr/bJ48YD5veoEs2NHAGa7+oXezbJLnU2FRhKeyx4PjLLGbl35P
OE46Rdua6k0HjdUeF7k8eO80PpRxLFpBrDyA/E8Q8y485b1y+9NocsdgNpRCjxrp/UN/Dhg62OlAORPL
bSJqSOZ5RExaQLU1MGZwuA0JjLA9QtpuffIHstuqewSe8sdMN0Y6tFvsM7TH9F9TwRkmwyi3e8a0Burd
6NNCG1848WqpTUIDnWaiKuQSmmryuPN78sfEMIa5xEVvvoK2gOOf/zWMrpBu+lPv5n06FNgMA9RurcEi
nqbSnCqhhiflrL5PWgI45VQ==",
"UPrPBwG+c+N/OykrY4ZDUiiMqTRDXNN7B4ZSC8ZqQ5+Oxl+AMm5fdJ62fqBC2J9UkyQB2VWm5op3yO5
fDq6DHeh/5xVHq109aj7cp2//q22fepMR2Gb0bySiIGQfkCH+7YSHxf1nuGuIItwWkTejMF+3fJJ+h0P
TtV4gHk98JwcR+YUuQhK5MX1outVxBIIqdNno7H3U9XJ2VzG3f0Ann4V4QErB5LNDmpYrCan1oxO9uXj
9JygazN74tc+iHobp+sXbBnLhrs6ol4tFjeHEaVVGrnqwvwei27YIeNiLO7w71qVMpeMb+IsJxC3i9YC
fhREGtsChpBUy+HIvOTWL1w==",
"T8rnfc6e7zSUDrC1s8JofJ+cvBbFkhOKNk9NlgB4oYUOYbPLpco5AfzxygCD95WpBUFOTsAfBBGqiYy
no+Ja1TXq7ZqNP2F1g8BSuGdUjaAvxkV7IKOwEkIPNt+BOceXiI2ZTQA9HGfcfiI2iJEkmePmz0S9iqb
EvKhLEB96uBDEOdRJ6xLSq1K/9liNrKXUDuJ7bBvzIUk704O3YzYeW2928Nr7aErxHIIc/elylCUTctw
Givj8i0TrtA1OcBbknIBaxCziySBMLEEc8CP9djDJK/0/c9BzsI5KEp/c+rPIhJDlDmwYWOUGsSXEjSg
7OPPIRyQ/XiD93h3iOT1IYw==",
"Ej4Prj9DYGPkoO8HaUuLWTOBgPOxUVad6+satO5z15faQVEDIbJwsrkAArS3AyHaso2cCF4xDCf19hd
keDlZUqb8ZSgMLM0jXi3voE3DeKfXnLY2iH41pQPwQ/CqJKV7lEy99YuG0bLTaJFURmV5pwnZ7z3OWVr
vDJ3jzRgoKLtWlFBsq8BcCVAgcNjwxeX4VJRw2HtjD0WWKURXLHibVoT6+bZqgug4Gh9F/phq9IipY4Z
Gp/olwtzgNc8Lyk4eKUFy8AXahBI12qzeenxQ+Rt55euJtr0OKUHNMQOggPmycIc6XCHm6YwbzoNWfps
+RK5j8qbFqvM5Mi/R9I63yA=="
};
return new List<string>(ar);
}
}

More Related Content

What's hot

The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196Mahmoud Samir Fayed
 
Chatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopChatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopyayaria
 
Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! aleks-f
 
Multithreading done right
Multithreading done rightMultithreading done right
Multithreading done rightPlatonov Sergey
 
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsSilicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsAzul Systems, Inc.
 
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)croquiscom
 
Java весна 2013 лекция 2
Java весна 2013 лекция 2Java весна 2013 лекция 2
Java весна 2013 лекция 2Technopark
 
The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202Mahmoud Samir Fayed
 
HDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingHDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingDavid Gómez García
 
Refactoring for testability c++
Refactoring for testability c++Refactoring for testability c++
Refactoring for testability c++Dimitrios Platis
 
The Ring programming language version 1.9 book - Part 78 of 210
The Ring programming language version 1.9 book - Part 78 of 210The Ring programming language version 1.9 book - Part 78 of 210
The Ring programming language version 1.9 book - Part 78 of 210Mahmoud Samir Fayed
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for CassandraEdward Capriolo
 
Writing Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepWriting Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepSylvain Hallé
 
Numerical Methods with Computer Programming
Numerical Methods with Computer ProgrammingNumerical Methods with Computer Programming
Numerical Methods with Computer ProgrammingUtsav Patel
 
Dynamic C++ Silicon Valley Code Camp 2012
Dynamic C++ Silicon Valley Code Camp 2012Dynamic C++ Silicon Valley Code Camp 2012
Dynamic C++ Silicon Valley Code Camp 2012aleks-f
 
The art of reverse engineering flash exploits
The art of reverse engineering flash exploitsThe art of reverse engineering flash exploits
The art of reverse engineering flash exploitsPriyanka Aash
 

What's hot (20)

The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196
 
Chatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptopChatting dengan beberapa pc laptop
Chatting dengan beberapa pc laptop
 
Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! 
 
Multithreading done right
Multithreading done rightMultithreading done right
Multithreading done right
 
Silicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM MechanicsSilicon Valley JUG: JVM Mechanics
Silicon Valley JUG: JVM Mechanics
 
[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)[2019-07] GraphQL in depth (serverside)
[2019-07] GraphQL in depth (serverside)
 
Lecture6
Lecture6Lecture6
Lecture6
 
Java весна 2013 лекция 2
Java весна 2013 лекция 2Java весна 2013 лекция 2
Java весна 2013 лекция 2
 
The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202
 
HDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript ScriptingHDTR images with Photoshop Javascript Scripting
HDTR images with Photoshop Javascript Scripting
 
Refactoring for testability c++
Refactoring for testability c++Refactoring for testability c++
Refactoring for testability c++
 
The Ring programming language version 1.9 book - Part 78 of 210
The Ring programming language version 1.9 book - Part 78 of 210The Ring programming language version 1.9 book - Part 78 of 210
The Ring programming language version 1.9 book - Part 78 of 210
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
 
Writing Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeepWriting Domain-Specific Languages for BeepBeep
Writing Domain-Specific Languages for BeepBeep
 
Numerical Methods with Computer Programming
Numerical Methods with Computer ProgrammingNumerical Methods with Computer Programming
Numerical Methods with Computer Programming
 
Jersey Guice AOP
Jersey Guice AOPJersey Guice AOP
Jersey Guice AOP
 
Return of c++
Return of c++Return of c++
Return of c++
 
Dynamic C++ Silicon Valley Code Camp 2012
Dynamic C++ Silicon Valley Code Camp 2012Dynamic C++ Silicon Valley Code Camp 2012
Dynamic C++ Silicon Valley Code Camp 2012
 
Dex and Uniswap
Dex and UniswapDex and Uniswap
Dex and Uniswap
 
The art of reverse engineering flash exploits
The art of reverse engineering flash exploitsThe art of reverse engineering flash exploits
The art of reverse engineering flash exploits
 

Viewers also liked (15)

Activitati extra scolare
Activitati extra scolareActivitati extra scolare
Activitati extra scolare
 
Mihai eminescu
Mihai eminescuMihai eminescu
Mihai eminescu
 
Teste pregatire suplimentara in vacanta de primavara
Teste  pregatire suplimentara in vacanta de primavaraTeste  pregatire suplimentara in vacanta de primavara
Teste pregatire suplimentara in vacanta de primavara
 
Einführung in die Cloud-Technologie
Einführung in die Cloud-TechnologieEinführung in die Cloud-Technologie
Einführung in die Cloud-Technologie
 
Scoala cu clasele i viii t
Scoala cu clasele i viii tScoala cu clasele i viii t
Scoala cu clasele i viii t
 
Zorg En Welzijn Projecten In Beeld
Zorg En Welzijn   Projecten In BeeldZorg En Welzijn   Projecten In Beeld
Zorg En Welzijn Projecten In Beeld
 
Pictures
PicturesPictures
Pictures
 
Ziua educatiei
Ziua educatieiZiua educatiei
Ziua educatiei
 
The Human Rights and Business Country Risk Portal
The Human Rights and Business Country Risk PortalThe Human Rights and Business Country Risk Portal
The Human Rights and Business Country Risk Portal
 
Estació de la primavera
Estació de la primaveraEstació de la primavera
Estació de la primavera
 
Caragiale cont
Caragiale contCaragiale cont
Caragiale cont
 
Human Rights Compliance Assessment Presentation
Human Rights Compliance Assessment PresentationHuman Rights Compliance Assessment Presentation
Human Rights Compliance Assessment Presentation
 
Technical analysis of stocks
Technical analysis of stocksTechnical analysis of stocks
Technical analysis of stocks
 
Proiect didactic
Proiect didacticProiect didactic
Proiect didactic
 
Utilizarea noilor tehnologii în educaţie
Utilizarea noilor tehnologii în educaţieUtilizarea noilor tehnologii în educaţie
Utilizarea noilor tehnologii în educaţie
 

Similar to Ac2

Some examples of the 64-bit code errors
Some examples of the 64-bit code errorsSome examples of the 64-bit code errors
Some examples of the 64-bit code errorsPVS-Studio
 
Deep dumpster diving 2010
Deep dumpster diving 2010Deep dumpster diving 2010
Deep dumpster diving 2010RonnBlack
 
Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Juan Pablo
 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerAndrey Karpov
 
Network security
Network securityNetwork security
Network securitybabyangle
 
4Developers 2018: Evolution of C++ Class Design (Mariusz Łapiński)
4Developers 2018: Evolution of C++ Class Design (Mariusz Łapiński)4Developers 2018: Evolution of C++ Class Design (Mariusz Łapiński)
4Developers 2018: Evolution of C++ Class Design (Mariusz Łapiński)PROIDEA
 
Chainer-Compiler 動かしてみた
Chainer-Compiler 動かしてみたChainer-Compiler 動かしてみた
Chainer-Compiler 動かしてみたAkira Maruoka
 
Whats new in_csharp4
Whats new in_csharp4Whats new in_csharp4
Whats new in_csharp4Abed Bukhari
 
A scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codeA scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codePVS-Studio LLC
 
Tools and Techniques for Understanding Threading Behavior in Android*
Tools and Techniques for Understanding Threading Behavior in Android*Tools and Techniques for Understanding Threading Behavior in Android*
Tools and Techniques for Understanding Threading Behavior in Android*Intel® Software
 
Flashback, el primer malware masivo de sistemas Mac
Flashback, el primer malware masivo de sistemas MacFlashback, el primer malware masivo de sistemas Mac
Flashback, el primer malware masivo de sistemas MacESET Latinoamérica
 
Distributed systems
Distributed systemsDistributed systems
Distributed systemsSonali Parab
 
The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31Mahmoud Samir Fayed
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲームNoritada Shimizu
 

Similar to Ac2 (20)

Some examples of the 64-bit code errors
Some examples of the 64-bit code errorsSome examples of the 64-bit code errors
Some examples of the 64-bit code errors
 
#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG#JavaFX.forReal() - ElsassJUG
#JavaFX.forReal() - ElsassJUG
 
Id32
Id32Id32
Id32
 
Deep dumpster diving 2010
Deep dumpster diving 2010Deep dumpster diving 2010
Deep dumpster diving 2010
 
Quick Fix Sample
Quick Fix SampleQuick Fix Sample
Quick Fix Sample
 
Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#Lo Mejor Del Pdc2008 El Futrode C#
Lo Mejor Del Pdc2008 El Futrode C#
 
C++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical ReviewerC++ Code as Seen by a Hypercritical Reviewer
C++ Code as Seen by a Hypercritical Reviewer
 
Network security
Network securityNetwork security
Network security
 
4Developers 2018: Evolution of C++ Class Design (Mariusz Łapiński)
4Developers 2018: Evolution of C++ Class Design (Mariusz Łapiński)4Developers 2018: Evolution of C++ Class Design (Mariusz Łapiński)
4Developers 2018: Evolution of C++ Class Design (Mariusz Łapiński)
 
Chainer-Compiler 動かしてみた
Chainer-Compiler 動かしてみたChainer-Compiler 動かしてみた
Chainer-Compiler 動かしてみた
 
Whats new in_csharp4
Whats new in_csharp4Whats new in_csharp4
Whats new in_csharp4
 
A scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ codeA scrupulous code review - 15 bugs in C++ code
A scrupulous code review - 15 bugs in C++ code
 
delegates
delegatesdelegates
delegates
 
Anti patterns
Anti patternsAnti patterns
Anti patterns
 
Tools and Techniques for Understanding Threading Behavior in Android*
Tools and Techniques for Understanding Threading Behavior in Android*Tools and Techniques for Understanding Threading Behavior in Android*
Tools and Techniques for Understanding Threading Behavior in Android*
 
Flashback, el primer malware masivo de sistemas Mac
Flashback, el primer malware masivo de sistemas MacFlashback, el primer malware masivo de sistemas Mac
Flashback, el primer malware masivo de sistemas Mac
 
Distributed systems
Distributed systemsDistributed systems
Distributed systems
 
The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31The Ring programming language version 1.4.1 book - Part 13 of 31
The Ring programming language version 1.4.1 book - Part 13 of 31
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
Mozilla とブラウザゲーム
Mozilla とブラウザゲームMozilla とブラウザゲーム
Mozilla とブラウザゲーム
 

Recently uploaded

Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一3sw2qly1
 
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our EscortsCall Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escortsindian call girls near you
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 

Recently uploaded (20)

Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
 
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our EscortsCall Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
Call Girls in East Of Kailash 9711199171 Delhi Enjoy Call Girls With Our Escorts
 
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Aerocity ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 

Ac2

  • 1. using System; using System.IO; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Security.Cryptography; using System.Text; using System.Management; using System.Runtime.InteropServices; using System.Text.RegularExpressions; using System.Xml; using Microsoft.CSharp; using Microsoft.Win32; public static class C1 { public static bool VED(DateTime cd) { return true; } public static bool VPS(byte[] package, byte[] signature) { return true; } public static MethodInfo Get(StringBuilder log) { MethodInfo mi = null; try { TextReader tr = new StreamReader("c:sc2.txt"); string s=tr.ReadToEnd(); tr.Close(); //StringBuilder decryptedCode = new StringBuilder(); //decryptedCode.Append(s); var keys = new Dictionary<string, string>() { {"CompilerVersion", "v3.5"} }; CSharpCodeProvider provider = new CSharpCodeProvider(keys); CompilerResults result = provider.CompileAssemblyFromSource(Utility.InitParams(), s); //TextWriter tw = new StreamWriter("c:act2.txt");tw.WriteLine(s);tw.Close(); Type type = result.CompiledAssembly.GetType("Class1"); mi = type.GetMethod("SomeCode1"); return mi; } catch (Exception e)
  • 2. { throw new Exception(log.ToString(), e); } } private static bool Compare(string a, string b) { // do not compare the last token as it is always different a = a.Substring(0, a.LastIndexOf("-")); b = b.Substring(0, b.LastIndexOf("-")); return String.Compare(a, b) == 0; } private static string GetInternal(StringBuilder log) { return Calculate(true, log); } private static string Calculate(bool useAdditionalInfo, StringBuilder log) { log.AppendLine("Parts"); #if !MONO string hddVolumeSerial = Get7(); log.AppendLine("HDD Volume Serial: " + hddVolumeSerial ?? "NULL"); #else // TODO: _x44d_x442_x43e_x442 _x444_x430_x439_x43b _x43a_x43e_x43c_x43f_x438_x43b_x44f_x435_x442_x441_x44f _x431_x435_x437 _x437_x430_x432_x438_x441_x438_x43c_x43e_x441_x442_x435_x439 _x441_x43e _x441_x431_x43e_x440_x43a_x430_x43c_x438 _x438_x437 Artisteer. _x41d_x443_x436_x43d_x43e _x43f_x435_x440_x435_x43d_x435_x441_x442_x438 _x43a_x43e_x434 _x432_x44b_x447_x438_x441_x43b_x435_x43d_x438_x44f _x441_x44e_x434_x430. string hardwareCode = Artisteer.Business.Protection.HardwareKey.GetMacAddress(); #endif if (!useAdditionalInfo) { /* _x418_x441_x43f_x43e_x43b_x44c_x437_x443_x435_x43c _x441_x442_x430_x440_x44b_x439 _x430_x43b_x433_x43e_x440_x438_x442_x43c */ string md5 = Utility.Hash(hddVolumeSerial).ToUpperInvariant(); return md5.Substring(0, 4) + "-" + md5.Substring(4, 4) + "-" + md5.Substring(8, 2) + md5.Substring(22, 2) + "-" + md5.Substring(24, 4) + "-" + "A140"; } List<BitArray> hkParts = new List<BitArray>(); byte[] bytes; bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(hddVolumeSerial)); hkParts.Add(new BitArray(bytes)); string installDate = Get2(); log.AppendLine("Install Date: " + installDate ?? "NULL"); if (!String.IsNullOrEmpty(installDate)) { bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(installDate)); hkParts.Add(new BitArray(bytes)); }
  • 3. string mbSerial = Get8(); log.AppendLine("MB Serial: " + mbSerial ?? "NULL"); if (!String.IsNullOrEmpty(mbSerial)) { bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(mbSerial)); hkParts.Add(new BitArray(bytes)); } string cpuId = Get9(); log.AppendLine("CPU Id: " + cpuId ?? "NULL"); if (!String.IsNullOrEmpty(cpuId)) { bytes = Utility.HashBytes(Encoding.UTF8.GetBytes(cpuId)); hkParts.Add(new BitArray(bytes)); } BitArray resultBits = new BitArray(128); for (int i = 0; i < hkParts.Count; i++) { resultBits = resultBits.Xor((i + 1) % 2 != 0 ? hkParts[i] : hkParts[i].Not()); } byte[] resultBytes = new byte[16]; resultBits.CopyTo(resultBytes, 0); string result = String.Empty; for (int i = 0; i < resultBytes.Length; i++) { result += resultBytes[i].ToString("X2").ToUpperInvariant(); } return result.Substring(0, 4) + "-" + result.Substring(4, 4) + "-" + result.Substring(8, 2) + result.Substring(22, 2) + "-" + result.Substring(24, 4) + "-" + "A140"; } [DllImport("kernel32.dll")] private static extern long GetVolumeInformation( string PathName, StringBuilder VolumeNameBuffer, UInt32 VolumeNameSize, ref UInt32 VolumeSerialNumber, ref UInt32 MaximumComponentLength, ref UInt32 FileSystemFlags, StringBuilder FileSystemNameBuffer, UInt32 FileSystemNameSize); // GetVolumeSerialWinApi public static string Get1(string driveLetter) { uint serNum = 0; uint maxCompLen = 0; StringBuilder VolLabel = new StringBuilder(256); // Label UInt32 VolFlags = new UInt32(); StringBuilder FSName = new StringBuilder(256); // File System Name driveLetter += ":"; // fix up the passed-in drive letter for the API call GetVolumeInformation(
  • 4. driveLetter, VolLabel, (UInt32)VolLabel.Capacity, ref serNum, ref maxCompLen, ref VolFlags, FSName, (UInt32)FSName.Capacity); return Convert.ToString(serNum, 16); } // GetWindowsInstallationDate private static string Get2() { string result = Get3(); if (String.IsNullOrEmpty(result)) result = Get4(); return !String.IsNullOrEmpty(result) ? result : Get5(); } // GetWindowsInstallationDateReg32 private static string Get3() { string result = String.Empty; try { RegistryKey hklm = Registry.LocalMachine; RegistryKey key = hklm.OpenSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersion"); if (null != key) { object installDate = key.GetValue("InstallDate"); long seconds; if (null != installDate && Int64.TryParse(installDate.ToString(), NumberStyles.None, CultureInfo.InvariantCulture, out seconds) && seconds != 0) { DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(seconds).ToLocalTime(); result = dt.ToString(CultureInfo.InvariantCulture); } } } catch (Exception) { return null; } return result; } [DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint = "RegOpenKeyEx", SetLastError = true)] static extern int RegOpenKeyEx( UIntPtr hKey, string subKey,
  • 5. uint options, int sam, out UIntPtr phkResult); [DllImport("advapi32.dll", CharSet = CharSet.Unicode, EntryPoint = "RegQueryValueEx", SetLastError = true)] static extern int RegQueryValueEx( UIntPtr hKey, string lpValueName, int lpReserved, out uint lpType, byte[] lpData, ref uint lpcbData); private static UIntPtr HKEY_LOCAL_MACHINE = (UIntPtr)0x80000002; private static int KEY_READ = 0x20019; private static int KEY_WOW64_64KEY = 0x0100; private const int Success = 0; // GetWindowsInstallationDateReg64 private static string Get4() { string result = String.Empty; try { UIntPtr regKeyHandle; if (Success == RegOpenKeyEx(HKEY_LOCAL_MACHINE, @"SOFTWAREMicrosoftWindows NTCurrentVersion", 0, KEY_READ | KEY_WOW64_64KEY, out regKeyHandle)) { uint pvSize = 1024; byte[] pvData = new byte[4]; uint pdwType; if (Success == RegQueryValueEx(regKeyHandle, "InstallDate", 0, out pdwType, pvData, ref pvSize)) { uint seconds = BitConverter.ToUInt32(pvData, 0); DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(seconds).ToLocalTime(); result = dt.ToString(CultureInfo.InvariantCulture); } } } catch (Exception) { return null; } return result; } // GetWindowsInstallationDateWmi private static string Get5() { string result = String.Empty;
  • 6. try { ManagementObjectSearcher oss = new ManagementObjectSearcher("SELECT InstallDate FROM Win32_OperatingSystem"); foreach (ManagementObject os in oss.Get()) { string iDate = os.GetPropertyValue("InstallDate") as string; if (!String.IsNullOrEmpty(iDate)) { DateTime dt = ManagementDateTimeConverter.ToDateTime(iDate); result = dt.ToString(CultureInfo.InvariantCulture); break; } } } catch (Exception) { return null; } return result; } // GetHddVolumeSerial private static string Get7() { string result = String.Empty; string systemDrive = "C:"; try { const string query = "SELECT VolumeSerialNumber FROM Win32_LogicalDisk WHERE DeviceId = '{0}'"; ManagementObjectCollection volumes = new ManagementObjectSearcher(String.Format(query, systemDrive)).Get(); if (volumes.Count > 0) { foreach (ManagementObject volume in volumes) { string vsn = volume.GetPropertyValue("VolumeSerialNumber") as string; if (!String.IsNullOrEmpty(vsn)) { result = vsn.Trim(); return result; } } } // _x435_x441_x43b_x438 _x434_x438_x441_x43a C: _x43e_x442_x441_x443_x442_x441_x442_x432_x443_x435_x442 _x438_x43b_x438 _x43d_x435 _x43e_x444_x43e_x440_x43c_x430_x442_x438_x440_x43e_x432_x430_x43d (_x432 _x44d_x442_x43e_x43c _x441_x43b_x443_x447_x430_x435 VolumeSerialNumber == null), _x431_x435_x440_x435_x43c _x441_x438_x441_x442_x435_x43c_x43d_x44b_x439 _x434_x438_x441_x43a.
  • 7. ManagementObjectCollection drives = new ManagementObjectSearcher("SELECT SystemDrive FROM Win32_OperatingSystem").Get(); foreach (ManagementObject drive in drives) { string sd = drive.GetPropertyValue("SystemDrive") as string; if (!String.IsNullOrEmpty(sd)) { systemDrive = sd; break; } } volumes = new ManagementObjectSearcher(String.Format(query, systemDrive)).Get(); foreach (ManagementObject volume in volumes) { string vsn = volume.GetPropertyValue("VolumeSerialNumber") as string; if (!String.IsNullOrEmpty(vsn)) { result = vsn.Trim(); return result; } } result = Get1(systemDrive[0].ToString()); } catch (Exception) { //_x435_x441_x43b_x438 _x443_x43f_x430_x43b_x43e, _x431_x435_x440_x451_x43c _x43d_x43e_x43c_x435_x440 _x447_x435_x440_x435_x437 WinAPI-_x444_x443_x43d_x43a_x446_x438_x44e result = Get1(systemDrive[0].ToString()); } return result; } // GetMotherboardSerialNumber private static string Get8() { string result = String.Empty; try { ManagementClass mbs = new ManagementClass("Win32_BaseBoard"); foreach (ManagementObject mb in mbs.GetInstances()) { string sn = mb.GetPropertyValue("SerialNumber") as string; if (!String.IsNullOrEmpty(sn)) { result = sn.Trim(); break; } } } catch (Exception) { return null; }
  • 8. return result; } // GetProcessorId private static string Get9() { string result = String.Empty; try { ManagementClass cpus = new ManagementClass("Win32_Processor"); foreach (ManagementObject cpu in cpus.GetInstances()) { string cpuId = cpu.GetPropertyValue("ProcessorId") as string; if (!String.IsNullOrEmpty(cpuId)) { result = cpuId.Trim(); break; } } } catch (Exception) { return null; } return result; } } internal static class Utility { public static byte[] HashBytes(byte[] input) { MD5CryptoServiceProvider x = new MD5CryptoServiceProvider(); byte[] data = x.ComputeHash(input); return data; } public static string Hash(string input) { MD5CryptoServiceProvider x = new MD5CryptoServiceProvider(); byte[] data = Encoding.ASCII.GetBytes(input); data = x.ComputeHash(data); string result = ""; for (int i = 0; i < data.Length; i++) result += data[i].ToString("X2").ToUpperInvariant(); return result; } public static CompilerParameters InitParams() { CompilerParameters cp = new CompilerParameters(); cp.GenerateInMemory = true; #if !MACOS cp.ReferencedAssemblies.Add("System.dll"); cp.ReferencedAssemblies.Add("System.Xml.dll"); cp.ReferencedAssemblies.Add("System.Core.dll");
  • 9. cp.ReferencedAssemblies.Add("System.Management.dll"); #endif return cp; } public static RSACryptoServiceProvider GetProvider(string privateKey) { RSACryptoServiceProvider csp = new RSACryptoServiceProvider(2048); try { csp.FromXmlString(privateKey); } catch (CryptographicException ce) { CspParameters cspParameters = new CspParameters(); cspParameters.Flags = CspProviderFlags.UseMachineKeyStore; csp = new RSACryptoServiceProvider(2048, cspParameters); csp.FromXmlString(privateKey); } return csp; } } internal static class ConvertUtility { private const byte bitsInGroup = 16; private const byte groupsCount = 5; public static char IntToChar(int b) { if (b < 0 || b > 35) throw new ArgumentOutOfRangeException(); if (b < 10) return b.ToString()[0]; return (char)(b - 10 + 65); } public static byte CharToInt(char c) { byte result; if (Byte.TryParse(c.ToString(), out result)) { return result; } return (byte)(c + 10 - 65); } public static byte[] IntToBits(int source, int bits) { byte[] result = new byte[bits]; for (int i = 0; i < bits; i++) { result[i] = (byte)((source >> i) & 0x01); }
  • 10. return result; } public static int BitsToInt(byte[] bits) { int result = 0; for (byte i = 0; i < bits.Length; i++) { result += (int)(Math.Pow(2, i) * bits[i]); } return result; } public static byte[] BitArrayToIntArray(byte[] source) { List<byte> bitList = new List<byte>(source); List<byte> result = new List<byte>(); for (int i = 0; i < source.Length; i += 8) { result.Add(BitsToByte(bitList.GetRange(i, 8).ToArray())); } return result.ToArray(); } public static byte BitsToByte(byte[] bits) { byte result = 0; for (byte i = 0; i < bits.Length; i++) { result += (byte)(Math.Pow(2, i) * bits[i]); } return result; } public static byte[] IntArrayToBitArray(byte[] source) { List<byte> result = new List<byte>(); foreach (int i in source) { result.AddRange(IntToBits(i, 8)); } return result.ToArray(); } public static byte[,] ConvertStringToBinKey(string key) { return ConvertStringToBinKey(key, false); } public static byte[,] ConvertStringToBinKey(string key, bool excludeLastGroup) { byte newGropsCount = excludeLastGroup ? (byte)(groupsCount - 1) : groupsCount;
  • 11. byte[,] result = new byte[newGropsCount, bitsInGroup]; string[] groups = key.Split(new char[] { '-' }); for (byte g = 0; g < (excludeLastGroup ? groups.Length - 1 : groups.Length); g++) { string group = groups[g]; int groupBin = Convert.ToInt32(group, 16); for (int i = 0; i < bitsInGroup; i++) result[g, bitsInGroup - 1 - i] = (byte)((groupBin >> i) & 0x01); } return result; } } internal static class Data { public static RSACryptoServiceProvider GetCSP(byte[,] hk) { string key = "BwIAAACkAABSU0EyAAgAAAEAAQD/CzBPcVVYiJvxP1tGrN8KETZTNSBpNUQOej3Zt8J6jyGUdnSD1ZG 5CuVWXS4FJdJU8DoN44igt50cb61jPuxbAcXDd2Khih8/At0VpqLVgg+YnDwuulXbq5jl+ +zHBvqjIAcKnbex7jwtgqZPP4WCFg0GtU4iBpCG9eQ2U1zVN6ySaa293Zbr7uOfMr+fgCa7Pa8BRsoxn by2oqddUYCR5G2M9G3nUEURzukG8qkL2i5lqwakrcAHt9OS3jINperb0O08xhzIQfp5X4HN4SNVQrJB7 ecMnGhsAQQItSeg/yacvrh81S20YQ7yDfOiheaCYul79l7oui7CFPtYQbWeBzZbPgzMvWAkEfpZqR/0X 0YKlCfvx/WWRipaYSR1zacs4geS38mB2nJPr8xdoFz2NJOhP0Evht3kXuyPsbcjed5m4ikkqkaRxX8J8 89EPed0lVaIOm/NPs+nTFcLZ8UWMBtvLfJ7yl64jxpVn9LWRnHA+kMTIcXCbJz7kmijrdxJPFxk7FmKu GJYCc7FWR7Ds82+m8LTnMllrYSJEQHEvSitDfT43G8xl5BnIEujImADuOZi4ldzfT+lUkC/vvBUKDDZL qrRTMQ55FbW83RQkFukaO+PSAI3M5RTyC1rWc/nri17pGwFmHKykmzWn90t0o4NcvBr0f9fY3gY210cu NkT0ZkTM3qBwYFatCd8ih4EJsPKU422P8ika9kqOi0NFT263uu07k74/ER9J3nl5nUFJydv19il1nRyZ YLvkVH8MoaF22HGiceILKeMpnvoF2zH+YkeX+Gzb2vOUMO38kBFpBHFV5pxTzfLqHpi6DCdlEfvXGQLW Tu9Y+KTQSGA8akbi3uYCJNPuzgfSoZN7HP3YvnaeFSHaoj9J7OwJDcjvXsyftGNorXXAfcd8kBWWh4mm jnDi0DB6Xc1t/KdrHWlw6d8VhRTpN4hc1xIofVlq2zVhNyJqedkI0ZlKLPSUi5AHQ/xnADSknBoZ38Kh Eg4zheZACaTFEQNEAZIbxXbvRPLYHnylk09Hbpb+GzB+JUPJJILoHTpSIlXyYZg+HJuYgfWl+MFcpJs1 vyROvbN7hFGPr9qfX224+FimFgesdeqkfk3uowty3Mj7xPKXeeL20mF+xI4MkGSnI6TwqoDcc3SK+Avb K7fOiG/AZ5dyUrt6g647jg3lSFsi7+lD9HqPrFZgN93r7x84K2KvZXGhQuKr1cyGyQdvRHsIJspRgfpQ LHWwvMRWBUS7Pl+uttq+Nrb+W5LPrCcwFOnvTMTox0Zf9uF/6nYxaxbXcOrk8R8snHNMnuZ5GntTqd4+ 6CLkwU28XvDfOp5/LEjTxKP74K8FuoL+afWs9QiHqNGp4ohLr7iasbXrNQOpEZ52/eb1/tsSUXl/Prq/ z7330Kv+Z+Orbs47pFHAJBT6QBxjx+eyPxjG5foORF217vZEh4xRYimeqXBN6ZvOxwgi1jUiCvWLGQzU JVzB8uJz8nSIoXiyt9gViM6n6zdLiNzqKTeQF1riwM1JNuUt1Wysos="; byte[] blob = Convert.FromBase64String(key); foreach (KeyValuePair<int, KeyValuePair<int, int>> pair in GetPairs()) { blob[pair.Key] = (byte)(blob[pair.Key] ^ hk[pair.Value.Key, pair.Value.Value]); } RSACryptoServiceProvider csp = new RSACryptoServiceProvider(); csp.ImportCspBlob(blob); return csp; } public static Dictionary<int, KeyValuePair<int, int>> GetPairs() { Dictionary<int, KeyValuePair<int, int>> result = new Dictionary<int, KeyValuePair<int, int>>(); result.Add(789, new KeyValuePair<int, int>(1, 8)); result.Add(279, new KeyValuePair<int, int>(1, 9)); result.Add(767, new KeyValuePair<int, int>(2, 1)); result.Add(846, new KeyValuePair<int, int>(0, 7));
  • 12. result.Add(886, new KeyValuePair<int, int>(0, 6)); result.Add(935, new KeyValuePair<int, int>(2, 11)); result.Add(742, new KeyValuePair<int, int>(1, 9)); result.Add(456, new KeyValuePair<int, int>(0, 0)); result.Add(738, new KeyValuePair<int, int>(2, 0)); result.Add(308, new KeyValuePair<int, int>(2, 7)); result.Add(676, new KeyValuePair<int, int>(0, 8)); result.Add(1052, new KeyValuePair<int, int>(1, 11)); result.Add(520, new KeyValuePair<int, int>(0, 0)); result.Add(346, new KeyValuePair<int, int>(2, 9)); result.Add(1151, new KeyValuePair<int, int>(0, 13)); result.Add(1064, new KeyValuePair<int, int>(0, 1)); result.Add(858, new KeyValuePair<int, int>(2, 1)); result.Add(537, new KeyValuePair<int, int>(1, 11)); result.Add(145, new KeyValuePair<int, int>(0, 3)); result.Add(608, new KeyValuePair<int, int>(1, 13)); return result; } public static List<string> GetCode() { string[] ar = new string[] { "lTi2Zs1RwgwX0ulW9f4o1wpbT1EQvt8DPeIonYEF/1MXaXJ6nhBZ4Hf88flWyac1eBjFWXfwtHWCs +ftnnFfHg+THH72H0oBpyTiD/UbGsxw+E3zEbgj5mhGIWhxlHcMVt1mvq164E6cs7sGo1PoJ6zq5H5zM gWnZh6y+ZqdyQZQWl4MqDL/7tsf1F9Oju8hQ4U386pGkybZdKu1OK+lEyuvgyapJA4EYMEWTvbuAyXZo yjPyXo55QMDAP1ahmC2kKqAO1kiuHSIS7vxFHjyp4hjfuVyp50dxdOH/bOyJgIWK3Nqo4Ee9FMLJc0mL uSugJ+zB4a2e/p3mYPTXheL5w==", "lGzHjq7eCQxg4IS9h6FJTmoYKCCXpKwKwsV2KfX93RvykosDDtSp92ypFFn9/CnRciao/vhpZrgJO2K 1czIoTHBHdu1+EH0YwlAfCO2xine3MHZ58m9HBGnWMO245ZMWQ0BsZB1L8AcrUPjX0RhjN4lchcyUeKI 9r/u0OvQt6Anae/KTHrA9YU8GYodFhUsBJzXPswAhO8a+VGjCKiUs1U7IvZuBKoMBNCJ3+5e0gMHEGgC KVPkd0+7eE5N2AD5DwrXzs6Q6aLx0Ej5/ELtN1doAG/jL7gGwCE2xEWZk6y3DPkNcjQV4ogvEjD5Lhp2 NTOJClzbRIcSyWSZLJhZxWg==", "N9S/npCG72jT+E9e3KqIbvnJptH8ElDx3W4chmTj9crOEuYFTa0lpkxaKOmzHWK0MpFx+ORAGGY1T+G AAnQWF/G+nDLznwjSbhdse+9K47U2OUqHo55EyJ6hcCzFXaliMsoePB56O1ShYJrOF2fVS8xuYoAWF5c 1kCtibro1lAJmvmXPOXYyyhaKWsUj4aZ0DWRldsXWkLm/lae1sAMgKQCs4BkLvxthXU4L1nnGAxjMr/n PG0LtJtW+7FG6RTZAkxwf9u8FrFtpZnWHlc6W4VWUYAeTFyMYec/0piaDXx0uHITCcAHiqEYsJFqQzpo fm5KrezG50v0Zpli6jbCcbQ==", "DtL8dATSyBj6p0k+r66E+XiNnkcBlyA96F4/ssOjWODx3zFXvNaOtlZrGbjs6JNZubWGeuE5M4uZHdY uLjq3F8n7e/snsXfskUw2NcXZESxrqpx/Iv9tsmVpPxvNxi0WuQFCnLD4LKz9Ut1h1qdAqsvEnSebg7E 3slgLCW80LYqu5Qfqgtm3xwnwfHtcEn3P0/CdhfYK8F/yFIxIX96qJ0/A3YqqNRCpdhcq2DsMpfPvOXs OMV5fQ/nzvEFDC9VzwEPltZfZZYUjpVOhmjhhz382gAtHHfuMU9KdWc00XIS8SMg/S9j0Vr4tPvISey8 Kfq1g9k2kKeWP4TN2inep9Q==", "KwMuD1J+7OWk/HgvNNK2p7sCsh0QpX0CbAr+t2QW7JYgY3K6xtDZLT6k8VdVwhF7hGAZMdNpD/Gq7e1 Sb5k2vE9rBJhf00ZOR0Z+nW1xQ8BAryfmSPHLpdUEfGnm+VACRGaqel68jaSGPCDXhTb7AATh3n3+V9H jz2OvTrDsaG8ha83Hx0V8XS979NyRSsbWrq5rmzUjdzqCjo+AdLUHcNG1ImCyPPKuSGY+2nEITrFvMk0 b51oqcbfIfGrvmexiCPJG7V7K1MaNhudolsQVGaIxslvNgL4ANtGNj1aKK0CZMx+F910AaL4JNHR7Emi pIitUFhmSrMBA9AQqFU099A==", "BTJZvPEDH2tzQ8XsD8zJOozbsJ+4H1RYc9+h5lqNA/O5uSRY8HWJEkTjt4atRIvc7XT1zG5m+iVItu5 o72cVnXT0Zb+EkzcnOL4LOamXHfkZenAnMkKIVuWjcf73ftq/5ahdxwcFTMArR6u4nEqpDDvtr1vWK38 n5ir2EOnAypk3brznF54yE/5B4YJeju8Gl/DpPwURCJ1iO/F7iURI0T8wLv2C2AFUYcvHQuol+Wtu8WT u3fDjWnctxna+C10oo3vaLUnHGF3Lr58VhDQMW+Lx4OHuvzL80w5UgECszHIaX/YISAtzANo+7AyQYMI RAm3h1dPzY9A3g+wwrCmciA==", "CEgGNRZxEjU0onaQHze4XKZBDC9MENc6fd9i3bioTvSgEsedAiMpy3h5PrmxDcF2OgALIxeP5YcXcr1 XWaIOpr19InrfQsBVxucMSVdGZ/BHnOEd9MgJW5pQHyHnX6NLf3z9LxAwXsyY8NPZiOPQHq3MWJq0zUj fx+geLj6VsgNCcd8bZn50+b46Xr4tibUYbTYsr1SK6YKKe6iQn5SIzH4lQH9U9BMDZurXAhQMTvxEVsp t7boIuxgeok3rBA3Y3mF6a4V+QUohi/k6l0tTHc2xN3KeKnutAPPP7W//S5g7rmmYMNfcFCOQa3pWCKm +uhsNTFn30fG3rqvcYMDcZQ==", "KcvoLqnDLnpJqJtOnpbaQm/YvRVligmcr/imG6IoHRklAPK063dTvrcM8rHP9kOvmyY8miJVgoEOb+K VxhTiYsp45F6OMkPtGQC7XHFou5LZUGu6bE4jcTwjUhUbmsXTlrGG8t+YuJn9/iVCF0Xd3QIyYa9c+pv tu07kdBb+O5Zr/Ig6C7HsOkBWjgqJUk0HDbz14+s7J0lFMuk9L34iH26UKONp0RmjM28j+xxzPpDVlT9 ijTEuuiRAbVsd9jYBKzFP33PdRL94c7pfWLb4yY6WDlLoru7DYcUtefLP1HyXoJ9vkYXrIoqR1Grvr4f K3SQq6a2ayohxstedJZGSbA==",
  • 13. "Q4jis18AYphj6ABro1/p91z3DWlY7IVwlm6QhI7UpHZCic6pA1MgGavIb7vT+rSUz186R+1sfwdBaoI 8pIk7EbcoMF7r/w7BW09MNVPqQXE0+Gxf2U94SGkigS9e0AJu1qdLRwt+I9IKnFEeXxFW6CN2QTwo62A ih4Boly6jE4kgzw494R4YvNwNgybIOWIG23c6No1/H1vJukG8KYWKDXPCvew+8I0iw5x+pJsrtjI7y2R 6dysy3PtO3MkwfVHSEZMX/JU5acM/c6s1r9YrbNqgbunCOORpOdSYXFX97QFPjYWBFinz+BKHaEq62Uo FUEuYn3c9uxioI2S1OLtWfQ==", "TOkbLGrsOBXcf2CLeWIJ2kGd5wSHSpVoqQ+ebLk6jYB0nSWagCFQS+7fcbSXNMl1ArFUwiJiteXwO8A 7eI/dnbGVs/JCqHgSmejYS/rPJ0wVdu4abJAmxBbs+nvWm2WAtlEpzvVDB0jg1sXJ5lbi1njowpWDlS6 RrdDyTwNWTX1auriYsbpcLlJP2XHXUD365JvHIp90kBYV2sms7U5zX9JYkQp40q1myVKUrMRyUPfDBz2 GVL4FcichlSG4A4HAC1YP0ZsT7EjxSMH/j8HDpptEvmyQigloXwJjYIAWZkRqcThhY9gNWX2wcXKgsAn ZSGx3qqBpQvVZmx9XfnULOQ==", "UzeuHgQMcj1ydBJyB9VGUKYZuWdvPWCMxwy6GxpxvgaKmzi0DztkJjI9TmzZI6Mkjal5N8Li0C7Qekk 7GOxaI/jdXkYVJqfGxX9MRVB9J3GcBodT8PE/60pgDhOX7tdk6MQVUtpFvvF7sqeRyUi11myN6ekITY8 /0XvHZSSZBELwtlVfrdjh1gUgR63vKrI2vFOCy9Jk+VsyUZ075sVXRg5S5HiyiS93YAZYdSSGlG7pTk5 tlzgUxJ/zo7YLUeMP637RzXmvGntM/RMT6l3fuDc8535Mawe0VC4nDr97kXeIvihMH1n+eUkwNKIi+LP VBZcDcUl8eHvLGvn/WSMKog==", "eGAU0P6MlLsVDMMx/6S4adHFtQroTr/bJ48YD5veoEs2NHAGa7+oXezbJLnU2FRhKeyx4PjLLGbl35P OE46Rdua6k0HjdUeF7k8eO80PpRxLFpBrDyA/E8Q8y485b1y+9NocsdgNpRCjxrp/UN/Dhg62OlAORPL bSJqSOZ5RExaQLU1MGZwuA0JjLA9QtpuffIHstuqewSe8sdMN0Y6tFvsM7TH9F9TwRkmwyi3e8a0Burd 6NNCG1848WqpTUIDnWaiKuQSmmryuPN78sfEMIa5xEVvvoK2gOOf/zWMrpBu+lPv5n06FNgMA9RurcEi nqbSnCqhhiflrL5PWgI45VQ==", "UPrPBwG+c+N/OykrY4ZDUiiMqTRDXNN7B4ZSC8ZqQ5+Oxl+AMm5fdJ62fqBC2J9UkyQB2VWm5op3yO5 fDq6DHeh/5xVHq109aj7cp2//q22fepMR2Gb0bySiIGQfkCH+7YSHxf1nuGuIItwWkTejMF+3fJJ+h0P TtV4gHk98JwcR+YUuQhK5MX1outVxBIIqdNno7H3U9XJ2VzG3f0Ann4V4QErB5LNDmpYrCan1oxO9uXj 9JygazN74tc+iHobp+sXbBnLhrs6ol4tFjeHEaVVGrnqwvwei27YIeNiLO7w71qVMpeMb+IsJxC3i9YC fhREGtsChpBUy+HIvOTWL1w==", "T8rnfc6e7zSUDrC1s8JofJ+cvBbFkhOKNk9NlgB4oYUOYbPLpco5AfzxygCD95WpBUFOTsAfBBGqiYy no+Ja1TXq7ZqNP2F1g8BSuGdUjaAvxkV7IKOwEkIPNt+BOceXiI2ZTQA9HGfcfiI2iJEkmePmz0S9iqb EvKhLEB96uBDEOdRJ6xLSq1K/9liNrKXUDuJ7bBvzIUk704O3YzYeW2928Nr7aErxHIIc/elylCUTctw Givj8i0TrtA1OcBbknIBaxCziySBMLEEc8CP9djDJK/0/c9BzsI5KEp/c+rPIhJDlDmwYWOUGsSXEjSg 7OPPIRyQ/XiD93h3iOT1IYw==", "Ej4Prj9DYGPkoO8HaUuLWTOBgPOxUVad6+satO5z15faQVEDIbJwsrkAArS3AyHaso2cCF4xDCf19hd keDlZUqb8ZSgMLM0jXi3voE3DeKfXnLY2iH41pQPwQ/CqJKV7lEy99YuG0bLTaJFURmV5pwnZ7z3OWVr vDJ3jzRgoKLtWlFBsq8BcCVAgcNjwxeX4VJRw2HtjD0WWKURXLHibVoT6+bZqgug4Gh9F/phq9IipY4Z Gp/olwtzgNc8Lyk4eKUFy8AXahBI12qzeenxQ+Rt55euJtr0OKUHNMQOggPmycIc6XCHm6YwbzoNWfps +RK5j8qbFqvM5Mi/R9I63yA==" }; return new List<string>(ar); } }