ورود

View Full Version : گفتگو: چگونه روي نرم افزار قفل بگذاريم؟؟!!



salehbagheri
دوشنبه 12 اسفند 1387, 11:48 صبح
سلام دوستان!


آيا تا بحال شده كه به قفل كردن نرم افزار نيازمند شده باشيد!؟! پس متن زير رو بخونيد!

چند مدتي بود كه ميخواستم يه قفل توپ براي نرم افزارهاي خودم طراحي كنم كه اولاً

ساده باشند!
بدون استفاده از سي دي هم بشه نرم افزار رو نصب كرد!
امنيتش هم بالا باشه!
و ...
به چند طريق ميشه نرم افزارها رو قفل كرد:

بعضي ها روي سي دي سكتور مي اندازند تا نشه ازش رايت يا كپي كرد!
بعضي ها هم كدي رو به عنوان پس ورد قرار مدهند كه اگر بقيه هم اون كد رو پيدا كنند كار تمومه! (مثل ويندوز XP)
عده اي ديگر هم به همراه نرم افزار، USB Flash هاي حاوي كليد ارائه ميكنند!
و اخيراً هم تنها راه استفاده از بيشتر نرم افزارها براي كاربر، ثبت آن در سايت هست!

روش اول كه نسبتاً مطمئنه ولي جالب نيست و در بعضي مواقع امكان تكثير عمده‌ي آن براي صاحب نرم افزار وجود نداره! و بايد دستي رايت كنه و به بازار بفرسته!
روش دوم كه اصلاً امنيت نداره!
روش سوم هم كه هزينه كار رو بالا مي بره و ...
روش چهارم علاوه بر سادگي، خيلي هم جالبه!
من خودم اصولاً نميدونم كه روش چهارمي چطور كار ميكنه! ولي خودم اخيراً به يه روشي دست پيدا كردم كه شايد مشابه روش چهارم باشه!
اگر دوست داريد به اين روش روي نرم افزارهاتون قفل بذاريد با من همراه باشيد!
مواد مورد نياز: يك سايت – يك نرم افزار ساده – برنامه نويس – VS


طريقه كار:
شما ابتدا به تعداد مورد نياز، كد يا سريال 12 رقمي (بسته به سليقه خود) ايجاد ميكنيد! (5 هزارتا يا 10 هزارتا! هر چقدر كه سي دي تون رو چاپ ميكنيد!)
(به راحتي ميشه اينكار رو با حلقه ForNext و تابع Random انجام داد و نتايج رو در بانك ذخيره كرد!)
سپس نتايج رو به صورت برچسب پرينت كنيد و بر روي كاور سي‌دي هاي اصلي نرم افزارتون بچسبانيد!
كاربر پس از خريد سي دي و نصب نرم افزار، وارد صفحه «ورود سريال» خواهد! و پس از وارد كردن سريال، مراحل زير به ترتيب انجام ميشه! (يعني فرم سريال شما بايد اينجوري عمل كنه)
سريال به سايت شما ارجاع ميشه!
سايت شما چك ميكنه كه آيا اين سريال در بانك موجود هست يا نه! و اگر موجود هست براي چندمين بار هست كه ارجاع ميشه!
اگر براي اولين بار بود، شما دوباره يك سريال ديگه Generate ميكنيد و پس از ثبت آن در بانك (در كنار سريال اوليه)، آن را به كاربر ارسال ميكنيد!
نرم افزار كاربر هم اكنون ثبت شده و در صورت نصب دوباره نرم افزار، داشتن هر دو سريال الزامي است!
از آن پس، اگر كاربر دوباره خواست نرم افزار را نصب كنه! بايد سريال دوم رو هم وارد كنه! و اگر وارد نكرد، نرم افزار اجرا نميشه!
اين قضيه باعث ميشه كه ديگر كاربران كه سي دي رايتي در اختيار دارند، سريال دوم رو نداشته باشند و ...
سوال: اگر فردي كه سي دي رايتي در اختيار داشت، نرم افزار خود را زودتر ثبت كرد، صاحب سي دي اصلي چه ميشود؟
شما كافي است سريال سي دي رو از صاحب اصلي بگيريد و آن را با ديگر مشخصات ارسال شده از بانك، فراخواني كنيد!
سپس به صاحب سي دي رايتي پيغامي بدهيد كه از سي دي رايتي استفاده كرده يا آدرس و ... وي را بگيريد و او را تحت پيگرد قانوني قرار دهيد!!
اين طوري ديگه نيازي به قفل هاي سخت افزاري، USB و ... نيست!

نظرتون راجع به اين قفل نرم افزاري چيه!
آيا مشكلي در اين قفل مي بينيد؟

blue_lotus
دوشنبه 12 اسفند 1387, 12:40 عصر
سلام

ایده ی خوبی هست دوست عزیز

ولی اگر nod32 رو در نظر بگیرید باز هم این بلا به سرش اومد که بتونن رایگان از آنتی ویروسش استفاده کنن و کدهاش در همه جای اینترنت موجوده!

ظاهرا با برنامه دی کامپایل نرم افزار رو برعکس می کنن و خیلی راحت به کد شما دسترسی پیدا می کنن. برای چک اینترنتی هم مانند نود 32 و خیلی برنامه های دیگه کارهای مشابه زیادی انجام میدن که حتی نیازی به کد اول و حتی دوم نباشه! به همین راحتی! اگر update بخواد بگیره باز میشه کاری کرد دوستان کراکر به زحمت بی افتن ولی باز هم جریان دیگر برنامه های اینترنتی پیش میاد.

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

Nima NT
سه شنبه 13 اسفند 1387, 03:12 صبح
مشکل اینه که همه این مراحل رو میشه دور زد :لبخند:
سعی کنید در سریال ها نوعی رابطه ایجاد کنید و از توابع تصادفی استفاده نکنید.

salehbagheri
سه شنبه 13 اسفند 1387, 13:38 عصر
سعی کنید در سریال ها نوعی رابطه ایجاد کنید و از توابع تصادفی استفاده نکنید.

پيشنهادي براي اين روش داريد؟
در صورتي كه تعداد سريالهاي درخواستي بيش از چندصد هزار باشه، چه طوري ميتونيم بين سريال ها نوعي رابطه اينجاد كنيم؟

Nima NT
سه شنبه 13 اسفند 1387, 13:53 عصر
میتونید از الگوریتم هایی مثل RSA استفاده کنید.

salehbagheri
سه شنبه 13 اسفند 1387, 22:03 عصر
میتونید از الگوریتم هایی مثل RSA استفاده کنید.

دوست عزيز! خيلي ممنون!
اگه ميشه بيشتر توضيح بديد!

Nima NT
سه شنبه 13 اسفند 1387, 22:43 عصر
بهتره برای اطلاعات کامل تر به سایت CodeProject.com و مقالات ++C اون مراجعه فرمائید

saied7468
سه شنبه 13 اسفند 1387, 23:53 عصر
سلام :لبخند:

برای استفاده از RSA می تونید از Turbopower Lockbox استفاده کنید برای آشنایی بیشتر با این کامپوننت و راه های دور زدن RSA هم این مطلب رو بخونید .
http://barnamenevis.org/forum/showthread.php?t=138606&highlight=rsa

در مورد قفلی هم که می خواید بسازید :
من همین روش رو با کمی تفاوت در نوع عملکرد قبلا ساختم مشکل این قفل ها همون طور که خودتون می دونید اینه که در نهایت باید کد هایی که کاربر وارد می کنه با کدی که توسط برنامه تولید می شه باهم مقایسه بشه که می شه خیلی راحت یا شرط مقایسه رو غیر فعال کرد یا اصلا شرط رو عوض کرد . با این که من از ترکیب الگوریتم ها مثل RSA -AES . و امضا دیجیتال و روتین های ضد کراک ( توی اینترنت پیدا کردم) و تو لید سریال در چهار تا فایل بصورت رمز شده(هر تکه سریال داخل یه فایل ) و پکر و ... در نهایت یکی از بچه های دانشگاه که تجربه خوبی توی کراک کردن داشت تونست در عرض 1 روز دخل قفلم رو بیاره .


چند مدتي بود كه ميخواستم يه قفل توپ براي نرم افزارهاي خودم طراحي كنم كه اولاً
ساده باشند!
بدون استفاده از سي دي هم بشه نرم افزار رو نصب كرد!
امنيتش هم بالا باشه!


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

misoft.ir
دوشنبه 10 فروردین 1388, 21:17 عصر
سلام
اگر فردی نرم افزار را به صورت قانونی ثبت کرد سپس با شماره آن نرم افزارهای بعدی را بدون مجوز راه انداخت چه کار میکنید
یک راهی هم که من فقط آن را شنیده ام این است که فردی چند نسخه را به صورت قانونی ثبت میکنه سپس از روی آن ها با نرم افزار مخصوص تابع دیکد آن را پیدا میکنه و نرم افزار کرک میشه به خصوص درمورد رمزهایی که به صورت اعداد هستند

salehbagheri
یک شنبه 23 فروردین 1388, 21:23 عصر
در مورد قفلی هم که می خواید بسازید :
من همین روش رو با کمی تفاوت در نوع عملکرد قبلا ساختم مشکل این قفل ها همون طور که خودتون می دونید اینه که در نهایت باید کد هایی که کاربر وارد می کنه با کدی که توسط برنامه تولید می شه باهم مقایسه بشه که می شه خیلی راحت یا شرط مقایسه رو غیر فعال کرد یا اصلا شرط رو عوض کرد . با این که من از ترکیب الگوریتم ها مثل RSA -AES . و امضا دیجیتال و روتین های ضد کراک ( توی اینترنت پیدا کردم) و تو لید سریال در چهار تا فایل بصورت رمز شده(هر تکه سریال داخل یه فایل ) و پکر و ... در نهایت یکی از بچه های دانشگاه که تجربه خوبی توی کراک کردن داشت تونست در عرض 1 روز دخل قفلم رو بیاره .


خوب شما چی پيشنهاد ميكنيد جانم؟!!!

مايكروسافت هم نتونسته رو ويندوزش قفلي بذاره كه حك نشه! اين فقل من معمولا به درد نرم افزارهايي ميخوره كه هكرهاي حرفه اي مخاطبانش نباشند!
(البته به نظر من از هر 10000 برنامه نويس، يكي شون ميتونه اينطوري حك كنه!)


اگر فردی نرم افزار را به صورت قانونی ثبت کرد سپس با شماره آن نرم افزارهای بعدی را بدون مجوز راه انداخت چه کار میکنید
یک راهی هم که من فقط آن را شنیده ام این است که فردی چند نسخه را به صورت قانونی ثبت میکنه سپس از روی آن ها با نرم افزار مخصوص تابع دیکد آن را پیدا میکنه و نرم افزار کرک میشه به خصوص درمورد رمزهایی که به صورت اعداد هستند

در كل متوجه نشدم!

Nima NT
دوشنبه 24 فروردین 1388, 02:30 صبح
منظورش تولید کلید ولید از روی یه کلید ولید دیگه هست که کار هرکسی نیست. ( البته فکر کنم منظورش این بوده )

scarce
سه شنبه 15 اردیبهشت 1388, 18:41 عصر
به نظر من باید برنامه را از داخل کد کنید ،این کار شدنی هست چون خودم تست کردم %100 جواب میده . البته اگه منظورمو متوجه شدی از کد کردن سورس

java_nith
سه شنبه 15 اردیبهشت 1388, 19:08 عصر
یک سوال
حالا اگه کاربری که سی‌دی رو داره به یکی‌ از دوستش بده
و هم سریال‌ای که روی سی‌دی هست و هم اون جدیده رو هم بده
اون موقع چجوری می‌شه؟

اصلا این سیستم قابلیت اینکه آیا این برنامه روی ۲تا PC الان داره اجره می‌شه رو داره؟

Nima NT
سه شنبه 15 اردیبهشت 1388, 19:12 عصر
بله میشه کاری کرد که ولید بودن سریال بررسی نشه , چون وجود و یا عدم وجود سریال تاثیری برای برنامه نداره.

java_nith
سه شنبه 15 اردیبهشت 1388, 20:03 عصر
آقا فکر خوبی‌ بود

فقط من اینو که خوندم فکر یه چیزی افتادم
که اگه میشود یه سایت درست میکردیم که فقط کارش این بود که
ببینه کاربر به این برنامه دسترسی‌ داره یا نه

مثلا شما یه سایت درست کنید که به دیتابیس وصل باشه

بد کاربر بیاد پیش شما رگیستر بشه

بد شرکت‌ها با شما قرارداد ببندن

و کاربر که زیر شما رگیستر ه سریال رو بزنه و کار کنه

یعنی‌ به جای اینکه هر نرم افزار یه سایت برای خودش درست کنه
یه سایت باشه که با شرکت‌ها قرار داد داره و این کارو انجام میده

و دیگه یوسر با خرید نرمافزار جدید دوباره رگیستر نمی‌شه
بلکه با نوشتن کد به نرم افزار هاش اضافه می‌شه
--------

مثلا در نروژ هر سایت‌ای یه فوروم نداره
یه سایت است که فوروم درست کرده
و با ۲۰/۳۰ تا سایت دیگه قرار داد داره

و به هر کدوم از این سایت‌ها یه بخشی رو داده

و شما که وارد اون فوروم ه سایت میشید در اصل وارد اون سایت اصلی‌ فوروم میشید

اون موقع برای همهٔ این ۲۰/۳۰ تا سایت فقط یک جا رگیستر میشید
و کل اتفاقات کاربر مثل تعداد پست حتا اگه توی بخش دیگه باشید بازم مهفزه

Nima NT
سه شنبه 15 اردیبهشت 1388, 20:54 عصر
اون موقع اگر الگوریتم تولید کد فعالسازی لو بره کل شرکت های طرف قرارداد سرویس تمام میشن. :لبخند: