PDA

View Full Version : برنامه ای شبیه گرفتن سریال هارد و دادن کد نصب



Mahdi_S_T
یک شنبه 26 تیر 1384, 16:00 عصر
من می خوام یه برنامه بنویسم که بر اساس شماره سریال هارد یه کد فعال ساز نرم افزار بده نظردوستان استفاده از چه روشی است ؟

مجتبی کریمی
یک شنبه 15 آبان 1384, 14:31 عصر
سلام
ببخشید این سوال جواب نداره؟

سید مسعود موحد
یک شنبه 15 آبان 1384, 15:51 عصر
شماره سریال هارد را بگیر (البته باید توجه داشته باشی که شماره سریال فیزیکی هارد را بگیری نه شماره سریال پارتیشن را )و بعد با یک الگوریتم تبدیل برای ان یک کد کرک تولید بکنی

mzjahromi
یک شنبه 15 آبان 1384, 16:03 عصر
اگه الگوریتمت رو اینجا پیدا کنی که بدردت نمی خوره. خودت یه چیزی جور کن
من فکر می کنم بعضی از هارد ها نمیشه شماره سریالشون رو بدست آورد.اگه کدی دارین که این کاررو میکنه به من هم بدید

ali_firouz_ir
یک شنبه 15 آبان 1384, 20:17 عصر
من داشته بیدم

مجتبی کریمی
یک شنبه 22 آبان 1384, 10:58 صبح
سلام
اگه برام بفرستیش ممنون میشم

hpx
یک شنبه 09 بهمن 1384, 22:29 عصر
mamnoon misham age befrestid

alirezador
سه شنبه 23 اسفند 1384, 17:23 عصر
اگه پیدا کردید به من هم بدید و در ضمن یکی از دوستان میگفت که vs یک دستوری داره که برای هر سیستم یک عدد مجزا میده مثل این23442-4543322-4532244 ولی نمیدونم چطوری ولی میدونم تو msdn هست

javad_hosseiny
سه شنبه 23 اسفند 1384, 23:54 عصر
تیتر تایپیک مطلب دیگری است (نحوه بدست آوردن کد فعال سازی بر اساس یک شماره سریال و....) می باشد
ولیکن اگر به دنبال بدست آوردن سورس و یا نمونه برنامه ای جهت ایجاد قفل نرم افزاری هستید
چندین نمونه در سایت وجود دارد که با جستجو می تونید به راحتی به اون دست پیدا کنید
البته در مبحث قفل نرم افزاری
http://www.barnamenevis.org/forum/showthread.php?t=14958
بحث کاملی نسبت به این موضوع وجود دارد
ولی نهایتا تجربه خود بنده استفاده از فایل pl_dll.dll موجود بر روی خود قفل پرولاک (البته نسخه جدید و بروزش) (ارائه شده توسط آقای کرامتی) است (که البته در نسخه دموی آن می توانید از این فایل استفاده کنید)
چرا که نمونه برنامه ها موجود برای شماره سریال هارد مشکلات خاص خودش را دارد
توضیحات بیشتر: http://www.barnamenevis.org/forum/showthread.php?t=40701
و همچنین نمونه سورس های موجود برای شماره سریال سی پی یو نیز همچنین:
توضیح بیشتر:
http://www.barnamenevis.org/forum/showthread.php?t=34687

و اما در پاسخ به سؤال اصلی (تیتر تایپیک)
در رابطه با الگوریتم موردنظر (نحوه بدست آوردن کد فعال سازی) می بایستی از یک روش ابتکاری استفاده کنید و هرچه این روش شما پیچیده تر باشد (به نوعی قابل برگشت (دی کد کردن) نباشد مشابه md5 (هشینگ) )امکان باز کردن قفل موردنظر مشکل تر می شود.
ولی در کل پیشنهاد می شود که برای هر محصول خود (هر سی دی) یک شماره سریال اختصاص دهید (که خود این شماره سریال می بایستی بصورت کد (نه عدد ساده) و غیر تکراری) باشد و سپس با استفاده از شماره سریال انحصاری هر سیستم (مثلا شماره هارد یا cpuو مادربورد و یا .... (بهترین حالت ترکیبی از هرچند عامل ولیکن دقت کنید که در این روش شما محدودیت بیشتری را برای کاربر جهت عدم تغییر سخت افزارش گذاشته اید) ) یک شماره فعال سازی بوجود آورید.

به عنوان مثال:
در نظر بگیرید در یک جدول (مدیریت شماره سریال و قفل برنامه هایتان) با استفاده از شماره رکورد (مثلا 1) و کد محصول (مثلا 1001) شما یک شماره سریال (مثلا C911) بدست آوردید
(می توانید اعداد را به کد اسکی و سپس با هم جمع (یا ضرب) کنید) و به هنگام تولید سی دی لیستی از این شماره سریال ها را چاپ و هر کدام را بر روی یک سی دی از محصولاتتان قرار دهید)
وسپس هنگامی کاربر (خریدار) برنامه شما را بر روی سیستم خود نصب می کند (که باید این قفل در برنامه Setup شما (ویا اول برنامه اجرایی شما آن هم برای دفعه اول) فعال شود) شماره سریال (برچسب روی سی دی) و شماره کد سیستم توسط تلفن (با شرکت شما) و یا اتصال به صفحه موردنظر در سایت شما ثبت کند و سپس شما (برنامه شما چه در سایت و چه بر روی سیستم شرکت شما (جهت پاسخگویی تلفنی) ) با استفاده از شماره سریال (برچسب سی دی) در بانک سرچ کرده و در صورت وجود و همچنین کنترل عدم ثبت قبلی (توسط کاربر دیگری) شماره سیستم (کد انحصاری سیستم کاربر) کد فعال سازی را به مشتری (خریدار) بدهید.
در این بین بهتر است که برنامه شما کد انحصاری سیستم را نیز کد کند (که احتمال تشخیص نوع کلید قفل شما کمی مشکل تر گردد) (مثلا به صورت نمونه توسط برنامه نویس دیگری که امکان بدست آوردن شماره cpu,hard,... سیستم خود را دارد شناسایی نگردد)
که یک روش ساده کد کردن (تبدیل به کد اسکی اعداد و شیفت کردن آنها از سمت چپ)
و نهایتا در سیستم پاسخگویی قفل نرم افزاری شما با استفاده از این دو عدد (شماره سریال و کد سیستم کاربر) و ترکیب آنها با یکدیگر (مثلا به عنوان نمونه کد اسکی حروف یا اعداد موردنظر را در هم ضرب کنید و نهایتا حاصل جمع هر کدام (شماره سریال و کد سیستم) را باهم جمع کنید و اینچنین یک کدفعال سازی بسازید) کد فعال سازی را به کاربر بدهید

و درنهایت الگوریتم کدکردن شما (برنامه شما) چه در شماره سریال اولیه (برچسب سی دی) و شماره کد سیستم (بهتر است که شماره انحصاری خود سیستم را نیز کد کنید) و ترکیب این دو با یکدیگر (که نهایتا همان کد فعال سازی می باشد) هرچقدر پیچیده تر (ونهایتا یک طرفه تر) باشد امکان بازگشایی آن سخت تر (نه ناممکن) می گردد.

linux
یک شنبه 31 اردیبهشت 1385, 14:46 عصر
من می خواهم رو این پروژه کار کنم کسی هست بخواهد همکاری کنه؟

ali_kolahdoozan
یک شنبه 31 اردیبهشت 1385, 21:50 عصر
اگه دات نت کار کنی . بله . همین الان گرفتن سریال cpu , هارد و کارت گرافیک رو نوشتم . فقط یکم کد نویسی و یه مقدار ابتکار برای پیچیده کردن داره . اگه حاضری من آمادم

TrueFalse
شنبه 13 خرداد 1385, 15:01 عصر
اگه پیدا کردید به من هم بدید و در ضمن یکی از دوستان میگفت که vs یک دستوری داره که برای هر سیستم یک عدد مجزا میده مثل این23442-4543322-4532244 ولی نمیدونم چطوری ولی میدونم تو msdn هست
منظورت تابع GetCurrentHwProfile هست؟ نمونه کد در msdn :


#include <windows.h>
#include <stdio.h>
#include <tchar.h>

void main(void)
{
HW_PROFILE_INFO HwProfInfo;
if (!GetCurrentHwProfile(&HwProfInfo))
{
_tprintf(TEXT("GetCurrentHwProfile failed with error %lx\n"),
GetLastError());
return;
}
_tprintf(TEXT("DockInfo = %d\n"), HwProfInfo.dwDockInfo);
_tprintf(TEXT("Profile Guid = %s\n"), HwProfInfo.szHwProfileGuid);
_tprintf(TEXT("Friendly Name = %s\n"), HwProfInfo.szHwProfileName);
}

marvel
چهارشنبه 27 شهریور 1387, 14:30 عصر
منظورت تابع GetCurrentHwProfile هست؟


شما ميدونيد مقدار GUID اين ساختار دقيقا به چه سخت افزار هايي برميگرده ؟
ميخوام بدونم تغيير كدام قطعات باعث تغيير اين مقدار ميشه
ممنون

ehsan248
پنج شنبه 02 آبان 1387, 02:18 صبح
:قلب:
سلام می تونی از این DLL استفاده کنید هم روی ویستا هم روی ایکس پی جواب می ده یعنی Unique

mehdi1359a
یک شنبه 19 مهر 1388, 22:26 عصر
دوست عزیز به نظر شما چرا تو ویستا کار نمیکنه هیچ پیام خطایی هم نمیده