خوراک پی سی کدنویس

ورود کاربران

آمار سایت

اعضا : 380
محتوا : 74
پیوندها : 6
بازدیدهای محتوا : 217808

حاضرین در سایت

 29 مهمان حاضر

برای نمایش بهتر سایت، از مرورگر استاندارد فایرفاکس استفاده کنید! مرورگر اینترنت اکسپلورر متعلق به دهه گذشته است!

firefox icon

Valid XHTML 1.0 Transitional Valid CSS!

یافتن کد وابسته به سخت افزار کامپیوتر

2 امتیاز
سطح: پیشرفته
یکی از روشهای مرسوم در قفل گذاری نرم افزارها، استفاده از کد یکتای دستگاه مشتری است. برای این منظور باید اطلاعات سخت افزار کامپیوتر مقصد را به دست آوریم. مثلا اطلاعات CPU، Main Board و Hard Disk. برای این منظور در سیستم عامل ویندوز می توانیم از دو تابع API به نامهای GetVolumeInformation و GetSystemInfo کمک بگیریم و با یک الگوریتم ابتکاری یک کد یکتا بر اساس آنها تولید کنیم و آن را به کاربر نشان دهیم. ضمنا باید الگوریتمی برای تولید کد فعالسازی بر مبنای این کد طراحی کنیم تا بتوانیم احراز هویت کنیم. این الگوریتم هم باید در نرم افزاری که در دست مشتری است قرار گیرد و هم خود ما آن را بدانیم تا بتوانیم در ازای درخواست کاربر کد فعالسازی را تولید کنیم (می توان برای آن یک برنامه ساده نوشت که البته فقط در اختیار خود ما به عنوان توسعه دهنده خواهد بود). الگوریتم مذکور می تواند یک الگوریتم رمز گذاری غیر متقارن باشد که به هیچ وجه قابل شکسته شدن نیست. برای رمز گذاری، سیستم عامل ویندوز APIی خاص خودش را دارد که در wincrypt.h یافت می شود (تابع CryptDecrypt). همه این کارها توسط اغلب زبانهای برنامه نویسی تحت ویندوز مثل ویژوال سی و دلفی قابل انجام است. چرا که توابع مذکور در dllهای استاندارد ویندوز قرار دارند.
در کد زیر که در visual c++ نوشته شده است یک برنامه ساده برای تولید کد یکتای وابسته به سخت افزار مشاهده می شود:
 
    SYSTEM_INFO s;
    GetSystemInfo(&s);
    DWORD SN;
    GetVolumeInformation("C:\\", NULL, 0, &SN, 0, 0, 0, 0);//Every hard disk has a C: drive. Get its serial
    long tmpCode = SN / 3 + s.dwActiveProcessorMask*10+s.dwAllocationGranularity*220+s.dwNumberOfProcessors*55+
    s.dwOemId*5+s.dwPageSize*12+s.dwProcessorType*16+s.dwOemId*19+s.wProcessorLevel*7+
    s.wProcessorRevision*18;
    int Code = sqrt(tmpCode)*(log(tmpCode)*14+log10(tmpCode)*113);

متغیر Code همان کد یکتا ( یا بهتر است بگوییم وابسته به سخت افزار دستگاه) است که در این مثال به دیسک سخت، مادر برد و سی پی یو وابسته است.

  • مرتضی
    avatar
    در دوره ای که 80% کاربران از IE استفاده می کنن مجبور کردن کاربران به استفاده از firefox باعث کاهش بازدید سایت خودتون میشه...!
    از ما گفتن بود
    ضمنا پیشنهاد میکنم IE نسخه 8 رو نصیب کن و باهاش کار کن تا دیگه نگی IE مربوط به دهه گذشته است
    موفق باشی
  • دانشجو
    avatar
    استاد اگرامكانش هست نمره ي كتبي رو كم تر كنيد
  • دانشجو
    avatar
    استاد خواهشااگه براتون امکان داره اکثر نمره رو بدید به پروزه و تمرینا. نمره کتبی رو کم کنید :(
اظهار نظر
مشخصات شما:
گراواتار enabled
نظر:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):s:!::?::idea::arrow:
امنیت
کد آنتی اسپم نمایش داده شده در عکس را وارد کنید.