Advertisement
magnetos

Get HWID (hashed)

Mar 7th, 2023
873
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.85 KB | None | 0 0
  1. using System.Management;
  2. using System.Security.Cryptography;
  3. using System.Text;
  4.  
  5. public static string GetHwid()
  6. {
  7.    string hwid = "";
  8.  
  9.    // Get the motherboard serial number
  10.    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard");
  11.    foreach (ManagementObject obj in searcher.Get())
  12.    {
  13.        hwid += obj["SerialNumber"].ToString();
  14.        break;
  15.    }
  16.  
  17.    // Get the primary hard drive serial number
  18.    searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_DiskDrive WHERE Index = 0");
  19.    foreach (ManagementObject obj in searcher.Get())
  20.    {
  21.        hwid += obj["SerialNumber"].ToString();
  22.        break;
  23.    }
  24.  
  25.    // Get the network adapter MAC address
  26.    searcher = new ManagementObjectSearcher("SELECT MACAddress FROM Win32_NetworkAdapter WHERE AdapterType = 'Ethernet 802.3'");
  27.    foreach (ManagementObject obj in searcher.Get())
  28.    {
  29.        hwid += obj["MACAddress"].ToString();
  30.        break;
  31.    }
  32.  
  33.    // Get the CPU ID
  34.    searcher = new ManagementObjectSearcher("SELECT ProcessorId FROM Win32_Processor");
  35.    foreach (ManagementObject obj in searcher.Get())
  36.    {
  37.        hwid += obj["ProcessorId"].ToString();
  38.        break;
  39.    }
  40.  
  41.    // Get the system BIOS version
  42.    searcher = new ManagementObjectSearcher("SELECT Version FROM Win32_BIOS");
  43.    foreach (ManagementObject obj in searcher.Get())
  44.    {
  45.        hwid += obj["Version"].ToString();
  46.        break;
  47.    }
  48.  
  49.    // Hash the Hwid string for security
  50.    using (SHA256 sha256Hash = SHA256.Create())
  51.    {
  52.        byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(hwid));
  53.        StringBuilder builder = new StringBuilder();
  54.        for (int i = 0; i < bytes.Length; i++)
  55.        {
  56.            builder.Append(bytes[i].ToString("x2"));
  57.        }
  58.        hwid = builder.ToString();
  59.    }
  60.  
  61.    return hwid;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement