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

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

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

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