بدست آوردن سریال پردازنده با سی شارپ

بدست آوردن سریال پردازنده با سی شارپ با قطعه کد زیر به سادگی قابل انجام است ، این کد C# بخشی از کلاسی به نام HardwareProtection در فضای نام ....

انتشار: , زمان مطالعه: 4 دقیقه
بدست آوردن سریال پردازنده با سی شارپ
دسته بندی: برنامه نویسی تعداد بازدید: 271

بدست آوردن سریال پردازنده با سی شارپ

بدست آوردن سریال پردازنده با سی شارپ با قطعه کد زیر به سادگی قابل انجام است ، این کد C# بخشی از کلاسی به نام HardwareProtection در فضای نام AbdalSecurityGroup.Core است. هدف اصلی این کد  جمع‌آوری اطلاعات سخت‌افزاری خاص از یک سیستم عامل ویندوز باشد، به ویژه شناسه سریال پردازنده. این کد می‌تواند برای اهداف امنیتی، مدیریت لایسنس نرم‌افزار، یا جمع‌آوری اطلاعات سخت‌افزار برای تجزیه و تحلیل استفاده شود.

در اینجا نحوه کارکرد اصلی این کد:

  • GetCPUSerialNumber: این تابع از WMI (Windows Management Instrumentation) استفاده می‌کند تا شناسه سریال پردازنده را از طریق یک کوئری ManagementObjectSearcher استخراج کند. این شناسه می‌تواند به عنوان یک شناسه منحصر به فرد برای هر دستگاه ویندوزی استفاده شود.

  • GetHWID: این تابع، که به نظر می‌رسد تابع اصلی این کلاس باشد، ابتدا سعی می‌کند شناسه سریال CPU را با استفاده از تابع GetCPUSerialNumber دریافت کند. اگر این شناسه وجود داشته باشد، آن را برمی‌گرداند. در غیر این صورت، یک پیام خطا ثبت می‌کند و یک رشته خالی برمی‌گرداند.

این کد همچنین از try-catch برای مدیریت استثناها استفاده می‌کند، که نشان می‌دهد توسعه‌دهنده به خطاهای احتمالی و مدیریت آن‌ها توجه داشته است. این نوع کد می‌تواند در مواردی که نیاز به تایید هویت سخت‌افزاری یا مدیریت لایسنس نرم‌افزار وجود دارد، بسیار مفید باشد.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;

namespace AbdalSecurityGroup.Core
{
    public partial class HardwareProtection
    {

        public static string GetCPUSerialNumber()
        {
            try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT ProcessorId FROM Win32_Processor");
                ManagementObjectCollection collection = searcher.Get();

                foreach (ManagementObject obj in collection)
                {
                    return obj["ProcessorId"].ToString();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            return string.Empty; 
        }


        public static string GetHWID()
        {
            try
            {
                string cpuSerialNumber = GetCPUSerialNumber();

                if (!string.IsNullOrEmpty(cpuSerialNumber))
                {
                   return cpuSerialNumber;
                }
                else
                {
                     
                    LogWriter.Write("CPU Serial Number not found.");
                    return string.Empty;
                }
            }
            catch (Exception ex)
            {

                LogWriter.Write(ex.Message);
                return string.Empty;
            }
        }
    }
}

روش استفاده از کلاس بالا

HardwareProtection.GetHWID()

دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)