From c5aa980b756e11dde432b0cd71ab444a275fcc69 Mon Sep 17 00:00:00 2001
From: CreepyCrafter24 <33260128+CreepyCrafter24@users.noreply.github.com>
Date: Sat, 16 Nov 2019 17:59:28 +0100
Subject: [PATCH] Added HID class
---
Misc/HIDClasses.txt | 15 +++++++++++
Misc/Misc.csproj | 5 ++++
Misc/Security.cs | 65 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 85 insertions(+)
create mode 100644 Misc/HIDClasses.txt
diff --git a/Misc/HIDClasses.txt b/Misc/HIDClasses.txt
new file mode 100644
index 0000000..4aa14d8
--- /dev/null
+++ b/Misc/HIDClasses.txt
@@ -0,0 +1,15 @@
+"Win32_Processor:UniqueId
+Win32_Processor:ProcessorId
+Win32_Processor:Name
+Win32_Processor:Manufacturer
+Win32_BIOS:Manufacturer
+Win32_BIOS:SMBIOSBIOSVersion
+Win32_BIOS:IdentificationCode
+Win32_BIOS:SerialNumber
+Win32_BIOS:ReleaseDate
+Win32_BIOS:Version
+Win32_BaseBoard:Model
+Win32_BaseBoard:Manufacturer
+Win32_BaseBoard:Name
+Win32_BaseBoard:SerialNumber
+Win32_NetworkAdapterConfiguration:MACAddress:IPEnabled"
\ No newline at end of file
diff --git a/Misc/Misc.csproj b/Misc/Misc.csproj
index 1e75a46..cfbe1ab 100644
--- a/Misc/Misc.csproj
+++ b/Misc/Misc.csproj
@@ -33,6 +33,8 @@
+
+
@@ -46,5 +48,8 @@
+
+
+
\ No newline at end of file
diff --git a/Misc/Security.cs b/Misc/Security.cs
index 6613d9c..8e02a9e 100644
--- a/Misc/Security.cs
+++ b/Misc/Security.cs
@@ -3,6 +3,8 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
+using System.Management;
+using System.Security.Cryptography;
using System.Security.Principal;
using System.Text;
using System.Threading.Tasks;
@@ -28,4 +30,67 @@ namespace Misc
catch { throw; }
}
}
+
+ public static class HID
+ {
+
+ private static byte[] _fingerPrint;
+ static readonly string HIDClasses = @"Win32_Processor:UniqueId
+Win32_Processor:ProcessorId
+Win32_Processor:Name
+Win32_Processor:Manufacturer
+Win32_BIOS:Manufacturer
+Win32_BIOS:SMBIOSBIOSVersion
+Win32_BIOS:IdentificationCode
+Win32_BIOS:SerialNumber
+Win32_BIOS:ReleaseDate
+Win32_BIOS:Version
+Win32_BaseBoard:Model
+Win32_BaseBoard:Manufacturer
+Win32_BaseBoard:Name
+Win32_BaseBoard:SerialNumber
+Win32_NetworkAdapterConfiguration:MACAddress:IPEnabled";
+ public static byte[] Value
+ {
+ get {
+ if (_fingerPrint == null)
+ {
+ string fingerprint_tmp = "";
+ HIDClasses.Split('\r').Select(s =>
+ {
+ if (s.StartsWith("\n"))
+ s = s.Remove(0, 1);
+ return s.Split(':');
+ }).ToList().ForEach(s =>
+ {
+ using (ManagementClass mc = new ManagementClass(s[0]))
+ using (ManagementObjectCollection moc = mc.GetInstances())
+ {
+ ManagementBaseObject[] array = moc.OfType().ToArray();
+ for (int j = 0; j < array.Length; j++)
+ {
+ if ((s.Length > 2) && array[j][s[2]].ToString() != "True") continue;
+ try
+ {
+ fingerprint_tmp += array[j][s[1]].ToString();
+ break;
+ }
+ catch
+ {
+ }
+ }
+ }
+ });
+ using (MD5 sec = new MD5CryptoServiceProvider())
+ {
+ byte[] bt = Encoding.ASCII.GetBytes(fingerprint_tmp);
+ _fingerPrint = sec.ComputeHash(bt);
+ }
+ }
+ return _fingerPrint;
+ }
+ }
+ public static byte[] EncryptLocal(byte[] unencrypted) => ProtectedData.Protect(unencrypted, Value, DataProtectionScope.CurrentUser);
+ public static byte[] DecryptLocal(byte[] encrypted) => ProtectedData.Unprotect(encrypted, Value, DataProtectionScope.CurrentUser);
+ }
}