• XSS.stack #1 – первый литературный журнал от юзеров форума

[C#] Создаём простой уникальный ключ HWID

r3xq1

(L3) cache
Пользователь
Регистрация
14.01.2020
Сообщения
233
Реакции
146
В работе использовался windows'кий инструмент: wbemtest.exe
C#:
namespace UniversallHD
{
    using System;
    using System.Management;
    using System.Security.Cryptography;
    using System.Text;
    using System.Threading.Tasks;

    public class HardwareID
    {
        public static string GET_ID  = ReturnHWID().Result;

        private static async Task<string> ReturnHWID()
        {
            var Sb = new StringBuilder();

            Task.WaitAll((Task)Task.Run(() =>
            {
                using (ManagementObjectCollection ProcessorWin = new ManagementObjectSearcher("SELECT * FROM Win32_Processor").Get())
                {
                    foreach (ManagementObject obj in ProcessorWin)
                    {
                        Sb.Append(obj["ProcessorId"].ToString().Substring(0, 4));
                        break;
                    }
                }

                using (ManagementObjectCollection BiosWin = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS").Get())
                {
                    foreach (ManagementObject bios_Collection in BiosWin)
                    {
                        Sb.Append(bios_Collection["Version"].ToString().Substring(0, 4));
                        break;
                    }
                }

                using (ManagementObjectCollection HardDrive = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive").Get())
                {
                    foreach (ManagementObject hdd_Collection in HardDrive)
                    {
                        Sb.Append(hdd_Collection["Signature"].ToString().Substring(0, 4));
                        break;
                    }
                }
            }));
            try
            {
                byte[] bytes, hashedBytes;
                bytes = Encoding.UTF8.GetBytes(Sb?.ToString());
                using (var Hash = SHA256.Create())
                {
                    hashedBytes = Hash.ComputeHash(bytes);
                }

                return await Task.FromResult(Convert.ToBase64String(hashedBytes).Substring(0x19));
            }
            catch { return GET_ID; }
        }
    }
}

В главном классе вызов:

C#:
namespace UniversallHD
{
    using System;
    using System.Text;

    internal static partial class Program
    {
        public static void Main()
        {
            Console.OutputEncoding = Encoding.UTF8;
            Console.Title = "Уникальный ключ HWID";
            Console.WriteLine($"Ваш ключ: {HardwareID.GET_ID}");
            Console.ReadKey();
            Console.Clear();
            Main();
        }
    }
}
В конечном итоге получим уникальный ключ HWID )
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх