# Native Code > برنامه نویسی در Delphi >  کسی روشی برای قفل گذاری نرم افزاری روی برنامه بلده

## b_mohammadpoor

با احترام 
اگر کسی روشی برای قفل گذاری نرم افزاری روی برنامه بلده لطف کنه به من هم یاد بده که خیلی بهش نیاز دارم  :wink: 


قبلا از همگی شما دوستان دلفی کار کمال تشکر را دارم .



---------------------------------------------------------
محمدپور

----------


## مهدی کرامتی

سلام.

ما در نوین رسانه یک قفل خیلی عالی بنام ProLock نوشته‌ایم که امکانات فوق‌العاده‌ای برای برنامه نویسان دلفی داره.

همین روزها در سایت رسمی نوین رسانه جزئیاتش رو خواهید دید (سایت آماده است، اما هنوز در دسترس همگان نیست).

اما اگر میخواهید زودتر اطلاعات کسب کنید میتوانید مستقیما با من تماس بگیرید:

تلفن: 4707653
موبایل: 1466281-0912

----------


## said ali

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

----------


## مهدی کرامتی

قفل نرم‌افزاری ما آماده ارائه شد: http://www.novinmedia.com

----------


## reza69

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


 فایلای dll به راحتی قابل کرک شدن با smart assembly و هزارتا برنامه ی دیگه
بزاریدش تو تالار امنیت بچه ها کرکر 3سوت کرکش میکنن

----------


## idehrayan

سلام 
من يه قفل نوشتم كه اصول كارش اينه كه با استفاده از شماره cpu يه كد توليد ميكنه مثلا اگه شماره cpu اين باشه 3215487854132 حلا بجاي هرچي 2 كاركتر a  وبجاي 5 كاكتر x و ادامه كار به همين شكل براي پيچيده تر شدن رمز ميتونيد از روشهاي ديگه مثلا جمع كاركترهارو بدست بياريد بعد باضافه يك عددي بكنيد و جواب رو با روش بالا به كاركتر حروف انگليسي تبديل كنيد .
حالا كاربر براي فعال كردن برنامه اين كد رو براي شما ارسال ميكنه و شما با نرم افزار ديكودر  (كه خودتون با روش بالا نوشتين) انرو تبديل ميكنيد به يه رمز ديگه كه نرم افزار هم از همين كد ديكودر در ابتداي اجرا براي ديكد كردن استفاده ميكنه و كدها رو مقايسه ميكنه در صورتي كه كدهاي ديكدشده برابر هم باشن نرم افزار از حالت قفل خارج ميشه.درضمن كد فعال سازي بايد در يك فايل ذخيره بشه و برنامه در ابتداي اجرا از اين كد فعال سازي جهت بررسي مجوز استفاده كنه و كد رو مقايسه كنه (ببخشيد خيلي خلاصه نوشتم هركدام از اين مراحل كلي توضيحات داره)

----------


## BORHAN TEC

> من يه قفل نوشتم كه اصول كارش اينه كه با استفاده از شماره cpu يه كد توليد ميكنه


به نظرم اصلاً کار درستی نکرده اید. کد ماشین باید از روی سریال دیسک سخت تولید بشه و نه cpu. چرا که اکثراً برای ارتقا دادن سیستم cpu رو عوض می کنند ولی معمولاً هارد دیسک عوض نمیشه.

----------


## mohammad_alikhani

می تونید از مجموعه TurboPowerOnGuard هم استفاده کنید، به نظرم قفل نرم افزاریه خوبیه. منبع آزاد هم هست :)
اینجا

----------


## idehrayan

سلام استاد عزیز BORHAN TEC از راهنمایی شما متشکرم
ولی به نظرم درصد امکان تغییر هارد دیسک با cpu یکی هستش (امکان داره هارد بسوزه یا تعویض بشه و...) 
برای حل مشکل میتونم هر دو مشخصه رو هنگام تولید کلید فعال سازی از کاربر بخواهیم هم شماره cpu و هم شماره سریال هارددیسک اگه کاربر تماس بگیره و بگه cpu سیستمش سوخته شما چیکار میکنید؟

----------


## golbafan

تاپیک مال یک قرن پیشه
حالا جواب میدین؟؟؟

----------


## BORHAN TEC

با سلام،




> برای حل مشکل میتونم هر دو مشخصه رو هنگام تولید کلید فعال سازی از کاربر بخواهیم هم شماره cpu و هم شماره سریال هارددیسک اگه کاربر تماس بگیره و بگه cpu سیستمش سوخته شما چیکار میکنید؟


نمیدونم چرا یادم رفت که به این پست پاسخ بدم!  :اشتباه: 

در دنیای نرم افزار هر چیزی راه حلی داره. شما خیلی راحت میتونید سریال CPU رو با سریال هارد دیسک ترکیب کنید به طوری که اگر یکی از آنها تعویض بشه باز هم نرم افزار کار کنه و از کار نیفته. در زیر یک مثال ساده رو خدمت شما عرض میکنم:

فرض کن با الگوریتم خاصی با توجه به سریال cpu کد CCCCC و با توجه به سریال هارد دیسک کد HHHHH تولید شده.حال به عنوان کد ماشین میتونیم دو کد ایجاد شده رو با ترتیبی خاص با هم ترکیب کنیم مثلاً به صورت HCCHCHHCHC این دو کد رو با هم ترکیب میکنیم. در این صورت اگر کاربر کد ماشین رو برای ما ارسال کنه میدونیم که کد تولید شده برای CPU و هارد دیسک چیه، چونکه این دو کد رو با ترتیب خاصی با هم ترکیب کردیم.
در اینجا من دوست دارم که مثلاً کد فعال سازی ای که تولید میکنم 16 رقمی باشه. خوب حالا از الگوریتمی استفاده میکنیم که بعد از استخراج کد مربوط به cpu یک عدد 8 رقمی به شکل AAAAAAAA و بعد از استخراج کد هارد دیسک هم یک کد 8 رقمی به شکل BBBBBBBB تولید کنه. دوباره این دو کد رو با ترتیب خاصی مثلاً BBBAABAABBBAABAA با هم ترکیب می کنیم و در اختیار کاربر میزاریم. حالا چون کد تولید شده برای cpu و هارد دیسک به ترتیب خاصی توی کد فعال سازی ترکیب شده، برنامه میتونه کد تولید شده برای CPU و هارد دیسک رو به صورت جداگانه استخراج کنه و مورد بررسی قرار بده و اگه یکی از اونها درست بود (چه برای cpu و چه برای هارد) بگه که کد وارد شده صحیحه و برنامه به کار خودش ادامه بده. با این کار حتی اگه یکی از این قطعات تعویض بشه برنامه از کار نمیفته.  :لبخند گشاده!: 
حالا شما میتونید این الگوریم رو پیچیده تر هم کنید و ازش استفاده کنید ولی در هر صورت روش پایه همینه که توضیح دادم.  :چشمک: 

موفق باشید...

----------


## idehrayan

*BORHAN TEC عزیز از شمام تشکرم بخاطر راهنمایی خوبتان*ببینید یه مشکلی که هست اینه که (حالا شاید من اینطور متوجه شدم) برای گرفتن سریال قطعات سخت افزاری باید نرم افزار با مجوز ادمین اجرا بشه ایا راهی هست این مشکل برطرف بشه.

----------


## golbafan

> *BORHAN TEC عزیز از شمام تشکرم بخاطر راهنمایی خوبتان*
> 
> ببینید یه مشکلی که هست اینه که (حالا شاید من اینطور متوجه شدم) برای گرفتن سریال قطعات سخت افزاری باید نرم افزار با مجوز ادمین اجرا بشه ایا راهی هست این مشکل برطرف بشه.


هیچ نیازی به مجوز ادمین ندارید
کامپوننت های زیادی در دلفی این کار رو میکنن

برای مثال jvcl این ابزار رو داره فک کنم sysInfo باشه
کتابخانه magwmi هم گزینه بهتری در این زمینه در اختیار میزاره

----------


## Saeid59_m

برای حل مشکل دسترسی به ادمین از manifest استفاده کن

به نظر من بهترین قفل اونیه که خودت طراحی می کنی .... قفلهای عمومی ، عمومی هم شکسته می شن  :لبخند گشاده!:

----------


## stn-it

سلام
ایا برنامه ای برای مشاهده سورس کد برنامه اجرایی هست من ازش استفاده کنم

----------


## meysam_212

اگه نمیخوایی از قفل سخت افزاری استفاده کنی، خودت بسازی بهتره، میتونی از سرویس ها هم استفاده کنی طوری که بین برنامه اصلی و سرویس بصورت کدگذاری شده اطلاعت رد و بدل بشه و هر سیستم سرویس خودش رو داشته باشه، یا بصورت انلاین لایسنس رو چک کنی

----------


## phdhonar

از کد MD5 استفاده کنید

----------

