PDA

View Full Version : نوشتن یه قفل نرم افزاری



mojdeh6583
شنبه 16 مرداد 1389, 18:55 عصر
سلام دوستان
اگه می تونید راهنمایی کنید:
من یه قفل نوشتم که مشخصات سخت افزار کاربر رو می گیره و بهش یه کد میده
بعد کاربر کدش رو تلفنی اعلام میکنه
بعد دوباره با یه الگوریتمی من بهش یه کد جدید میدم
کاربر اون کد جدید که همون کد فعالسازی هست رو وارد میکنه و برنامه اجرا میشه
اما
من تا همینجاشو بلدم
ینی بلدم که چجوری بهش کد فعالسازی بدم
اما بلد نیستم بهش بگم وقتی این کد فعالسازی رو وارد کرد چجوری برنامه فعال بشه و دیگه از کاربر کد فعالسازی نخواد؟
اصلا چجوری غیر فعال بوده که حالا فعال بشه
اولا اینکه این فرمی که کار دریافت کد و چک کردن درست بودنش رو انجام میده باید جزو فرم های برنامه ام باشه
؟
یا کلا یه برنامه جدید باید بسازم که کارش این باشه؟
من نیاز فوری به دونستن اینکه چطوری بین کد فعال سازی و فعال شدن رابطه برقرار کنم دارم.
دوستانی که اطلاعاتی دارن منو راهنمایی کنند.
مرسی

Raham
شنبه 16 مرداد 1389, 20:24 عصر
سلام
1.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
2.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
3.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
4.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
5.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
6.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
7.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
8.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
9.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
10.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
11.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
12.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
13.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
14.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
15.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
16.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
17.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
18.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
19.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
20.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید


---------------------------------------------------------------------------
فرم میتونه جزو برنامه باشه - میتونه DLL باشه
-واسه تعیین درست بودن قفل >> باید یه فایل کنار EXE ایجاد کنید SERIAL & ActiveCode اونجا باشه هروقت برنامه اجرا میشه تست کنید ببینید درسته یا نه؟

aminghaderi
شنبه 16 مرداد 1389, 21:41 عصر
سلام
1.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
2.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
3.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
4.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
5.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
6.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
7.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
8.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
9.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
10.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
11.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
12.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
13.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
14.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
15.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
16.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
17.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
18.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
19.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید
20.با دات نت دنبال قفل نرم افزاری/سخت افزاری نباشید


---------------------------------------------------------------------------
فرم میتونه جزو برنامه باشه - میتونه DLL باشه
-واسه تعیین درست بودن قفل >> باید یه فایل کنار EXE ایجاد کنید SERIAL & ActiveCode اونجا باشه هروقت برنامه اجرا میشه تست کنید ببینید درسته یا نه؟


به نظر من بهترین قفل ریجستر کردن نرم افزار از طریق اینترنت هست .
از داخل برنامه کانکت شه به اینترنت و با توجه به سخت افزار سیستم کدی مرتبط داخل برنامه بفرسته.

موفق باشی.

mahziar
شنبه 16 مرداد 1389, 22:29 عصر
من توضیح کاملش رو ، تو میلی که بهتون زدم دادم ، حالا اگه از دیتا بیس تو برنامه تون استفاده نمی کنین که کد فعال سازی رو توش ذخیره کنین ، یکی از راه هاش اینه که یه کلید تو رجیستری ایجاد کنید و اون کد فعال سازی رو تو اون بصورت هش شده ذخیره کنید و هر بار که برنامه اجرا میشه اون کلید رو از تو رجیستری بخونین و ازش برای اجرا و یا عدم اجرای برنامه استفاده کنین .

نحوه ساخت کلید تو رجیستری هم یه سرچ کوچولو تو سایت بزنین پیدا می کنین .

Nima NT
یک شنبه 17 مرداد 1389, 03:21 صبح
دوست عزیز ، رهام جان درست میگن ، برنامه های دات نت اصلا" گزینه مناسبی برای تهیه و تولید برنامه های امنیتی نیستن و امنیت این گونه برنامه ها متاسفانه در حد صفر خواهد بود.

ASKaffash
یک شنبه 17 مرداد 1389, 08:07 صبح
سلام
اگر روی بستر دات نت قفل بنویسی سه سوته الگوریتم برنامه را بیرون میارن همین دو دوست که در تاپیک شرکت کردن اینکاره هستند یه سری به تالار امنیت بزن بهتر بخش الگوریتم را با یک زبان که Native تولید می کنه بنویسی مثلا یک DLL به Vc++ بنویس و به خورد #C بده

mojdeh6583
یک شنبه 17 مرداد 1389, 10:27 صبح
من می دونم که دات نت اصلا برای قفل گذاری مناسب نیست اما دوستان من مثل شما که حرفه ای نیستم
می خواستم قدم به قدم به جلو برسم
من که هنوز نمی تونم یه قفل ساده با هین دات نت رو بنویسم قبول کنید که ...
اگه قصد کمک دارید یواش یواش یکی رو کمک کنید هلش ندید لطفا.
حالا یکی خیلی مهربون بیاد بگه چجوری به این قفل مبتدیانه حالی کنم که یه مقداررو توی رجیستری ست کنه و هربار از رجیستری بخونه و
بعد چه جوری بهش بفهمونم که اون فرم ورود کد فعالسازی با وارد شدن کد فعال سازی نابود بشه وapplication.run برنامه بره روی فرم اول.

یواش یواش توضیح بدید لطفا

C Sharp
یک شنبه 17 مرداد 1389, 11:55 صبح
1-ابتدای اجرا ، وجود یک Key خاص رو توی رجیستری چک میکنید
2-اگه وجود داشت valueاون رو استخراج میکنید
3- اگه وجود نداشت یعنی نرم افزار فعال نشده پس به مرحله 8برید
4-حالا با استفاده از الگوریتم اول کد سخت افزاری رو ایجاد میکنید
5-با استفاده از الگوریتم دوم کد سخت افزاری رو به کد نهایی تبدیل میکنید
6-کد نهایی رو با value که از رجیستری خوندین مقایسه میکنید
7-اگه برابر بودن یعنی نرم افزار قبلا فعال شده ، پس اجراش میکنید
8-اگه برابر نبود یعنی فعال نشده پس فرم ورود کد رو به کاربر نمایش میدین
9-کد وارد شده رو با کد نهایی که تو مرحله 5 بدست آوردین مقایسه میکنید
10-اگه برابر بود حالا Keyرو تو رجیستری اگه وجود نداره ایجاد میکنید ، یه Value با مقدار کد نهایی تو keyذخیره میکنید

aminghaderi
یک شنبه 17 مرداد 1389, 12:20 عصر
به اندازه كافي سر دات نت با ملت سر كله زدم.
شما هم دوست عزيز به جاي اينكه بشينيد اينجا از نظراتتون بكين يكم تحقيق كنيد آمار دستتون بياد.
شما از همون الكوريتم محترمتون استفاده كنيد. كسي جلوتون سد نميشه.
فقط كدهاي دوستان عزيزمون در حد اب خوردن decompile ميشه.
اين جوابم به يكي ديكه مربوط ميشد نه شما
يا حق

اين جوابم به يكي ديكه مربوط ميشد نه شما
من کلی گفتم عزیزم نه قصد بی احترامی به شما داشتم و نه علمتون ؟!
من 3 ساله دارم دات نت کار می کنم و مباحث به قول شما decompile رو هم می دونم ، درسته تخصصم وب هست ولی تا حالا به خودم اجازه ندادم توی یه مسئله خاص خیلی جدی مثل شما نظر بدم و برای همین گفتم باید اساتید (کسانی که بالای 7 تا 8 سال تجربه مفید دارند) باید بیان و نظر نهایی بدند ؟!
اظهار نظر خوبه ولی اینکه 10 بار به صورت قطعی بنویسید غیر ممکنه زیاد جالب نیست.
اگر هم شما جز اساتید هستید بنده رسما عذر خواهی می کنم.

موفق باشید.

aminghaderi
یک شنبه 17 مرداد 1389, 12:36 عصر
من می دونم که دات نت اصلا برای قفل گذاری مناسب نیست اما دوستان من مثل شما که حرفه ای نیستم
می خواستم قدم به قدم به جلو برسم
من که هنوز نمی تونم یه قفل ساده با هین دات نت رو بنویسم قبول کنید که ...
اگه قصد کمک دارید یواش یواش یکی رو کمک کنید هلش ندید لطفا.
حالا یکی خیلی مهربون بیاد بگه چجوری به این قفل مبتدیانه حالی کنم که یه مقداررو توی رجیستری ست کنه و هربار از رجیستری بخونه و
بعد چه جوری بهش بفهمونم که اون فرم ورود کد فعالسازی با وارد شدن کد فعال سازی نابود بشه وapplication.run برنامه بره روی فرم اول.

یواش یواش توضیح بدید لطفا


من می دونم که دات نت اصلا برای قفل گذاری مناسب نیستخواهشن این طور پاسخ ندید ، تا کامل 100% به دات نت مسلط نشدید ، اینقدر صریح نفرمایید.
برای نوشتن یه قفل مطمئن ، شما باید در مرحله اول علمتون رو بالا برید و وقتی علم بالا رفت می تونید خودتون یه برنامه بنویسید که مانع از انتشار غیر مجاز برنامتون بشه و اسمش رو بزارید قفل یا هر چیز دیگه.
اینکه یک نفر بیاد و به شما الگریتم بده و شما از روی اون برنامه ای رو طراحی کنید به نظرم جالب نمی یاد.

موفق باشی.

mojdeh6583
یک شنبه 17 مرداد 1389, 13:13 عصر
خواهشن این طور پاسخ ندید ، تا کامل 100% به دات نت مسلط نشدید ، اینقدر صریح نفرمایید.
اینکه یک نفر بیاد و به شما الگوریتم بده و شما از روی اون برنامه ای رو طراحی کنید به نظرم جالب نمی یاد.

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

با تشکر

mojdeh6583
یک شنبه 17 مرداد 1389, 13:17 عصر
سلام
بهتر بخش الگوریتم را با یک زبان که Native تولید می کنه بنویسی مثلا یک DLL به VC++‎ بنویس و به خورد C#‎ بده
چجوری کدی که در c++ نوشتی رو به خورد سی شارپ میدی؟
میشه اینو توضیح بدید؟
یا اگه تاپیکی با این مضمون هست معرفی بفرمایید.
ممنون میشم

mostafa_shoakry
یک شنبه 17 مرداد 1389, 13:31 عصر
سلام دوستان
اگه می تونید راهنمایی کنید:


ای بابا راجع به همه چی حرف زدین ولی متاسفانه حداقل ایشونو راهنمایی نکردین که چی کار باید بکنه و یا سراخ کدوم نرم افزار بره.!!!!:لبخند:

mojdeh6583
دوشنبه 18 مرداد 1389, 19:09 عصر
1-ابتدای اجرا ، وجود یک Key خاص رو توی رجیستری چک میکنید
2-اگه وجود داشت valueاون رو استخراج میکنید
3- اگه وجود نداشت یعنی نرم افزار فعال نشده پس به مرحله 8برید
4-حالا با استفاده از الگوریتم اول کد سخت افزاری رو ایجاد میکنید
5-با استفاده از الگوریتم دوم کد سخت افزاری رو به کد نهایی تبدیل میکنید
6-کد نهایی رو با value که از رجیستری خوندین مقایسه میکنید
7-اگه برابر بودن یعنی نرم افزار قبلا فعال شده ، پس اجراش میکنید
8-اگه برابر نبود یعنی فعال نشده پس فرم ورود کد رو به کاربر نمایش میدین
9-کد وارد شده رو با کد نهایی که تو مرحله 5 بدست آوردین مقایسه میکنید
10-اگه برابر بود حالا Keyرو تو رجیستری اگه وجود نداره ایجاد میکنید ، یه Value با مقدار کد نهایی تو keyذخیره میکنید
بسیار مفید بود
دستتون درد نکنه

ASKaffash
سه شنبه 19 مرداد 1389, 08:43 صبح
چجوری کدی که در C++‎ نوشتی رو به خورد سی شارپ میدی؟
میشه اینو توضیح بدید؟
یا اگه تاپیکی با این مضمون هست معرفی بفرمایید.
ممنون میشم

سلام
فرض می کنم طراحی DLL با نگرش native را در VC++ بلد هستید تابع های مورد نظر را در #C با Import استفاده می کنید :


[DllImport("DLLName")]
internal static extern void MyFunction(string MyPara);

Mohandes2009
سه شنبه 19 مرداد 1389, 09:06 صبح
قفل معنایی ندارد فقط برای دیرتر کپی شدن نرم افزار مفیده :لبخند:اگه قفل خوبی وجود داشت جناب بیل گیس مینوشتند که ویندوزشون تو ایران 500 تومان نفروشند:لبخند:

aminghaderi
سه شنبه 19 مرداد 1389, 12:09 عصر
قفل معنایی ندارد فقط برای دیرتر کپی شدن نرم افزار مفیده :لبخند:اگه قفل خوبی وجود داشت جناب بیل گیس مینوشتند که ویندوزشون تو ایران 500 تومان نفروشند:لبخند:
این که ما توی ایران ویندوز رو 500 تومان می خریم ، دلیل بر قفل نرم افزاری نیست؟!
راه های زیاد برای ورود نرم افزار به بازار ایران هست ، و ظاهرا ویندوز هایی که ما به قول شما 500 تومن داریم تهیه می کنیم ، ویندوز هایی هستند که به نسخه ارجینال خریداری شده و رجستر شده ، حالا از جایی که جناب بیل گتس یا استیو بالمر روی ایرانی جماعت شناخت کامل نداره ، فکر نمی کرده بیان ازروی همون سی دی کلی رایت کنند و به صورت قانونی داخل کشور فروش کنند!!:لبخند:
جدا از این موضوع واردات نرم افزار یا همون دانلود با خرید لایسنس اصل ، چند مورد مطرح هست که الان ویندوز در دسترس ماست:
1- تبلیغ
2- مباحث نفوزی
3- عدم تحریک کشورهای دیکه برای ساخت سیستم عامل نظیر
و...
که شاید در تجارت مهمتر از تکثیر غیر مجاز باشه؟!
و در ثانی ما ها در جریان نیستیم ، سیستم عاملی که از طرف شرکتش پشتیبانی نشه ، یعنی باز بود راه نفوز گر؟! دوستان هکر در جریان هستند.
وقتی بنده ویندوز خریدم 5 هزارتومن ، به قول خودشون ارجینال پشت نقره ای:کف: جدا از اینکه نه جلد محکمی داره نه یه روکشی که خش نیفته!!! وقتی کانکت ماکروسافت می شی و بعد قوانینش رو بهت تذکر می ده و بهت می گه که ویندوزت غیر مجاز داره استفاده می شه؟! و حتی حق داشتن آپدیت های امنیتیش رو هم نداری، چه برسه آپدیت های نرم افزاری یا پشتیبانی فنی!!
و....
--------------------------------------------------------------
ببین دنیای نرم افزار الان دیگه فقط نرم افزار نیست ؟! شده نرم افزار + تجارت + سیاست
و اگر غیر این باشه ، قطعا برای جلوگیری از انتشار راهی پیدا خواهد شد.
در بحث Asp.Net خود ماکروسافت یا در همین برنامه های socket programing باز هم ماکروسافت شما مباحثی رو می بینید که واقعا اگر بخوان سیستم رو بلاک کنند ، می تونند این کار رو انجام دهند ؟!

موفق باشید.

mojdeh6583
چهارشنبه 20 مرداد 1389, 17:27 عصر
سلام
فرض می کنم طراحی DLL با نگرش native را در VC++‎ بلد هستید تابع های مورد نظر را در C#‎ با Import استفاده می کنید :


[DllImport("DLLName")]
internal static extern void MyFunction(string MyPara);

نه فرضتون کاملا اشتباه بود.
مطمئنا اگه کسی اینو بلد باشه ایمپورت کردنشم بلده
می تونید درباره طراحی dll توضیح بدید؟

Mohandes2009
چهارشنبه 20 مرداد 1389, 23:45 عصر
این که ما توی ایران ویندوز رو 500 تومان می خریم ، دلیل بر قفل نرم افزاری نیست؟!
راه های زیاد برای ورود نرم افزار به بازار ایران هست ، و ظاهرا ویندوز هایی که ما به قول شما 500 تومن داریم تهیه می کنیم ، ویندوز هایی هستند که به نسخه ارجینال خریداری شده و رجستر شده ، حالا از جایی که جناب بیل گتس یا استیو بالمر روی ایرانی جماعت شناخت کامل نداره ، فکر نمی کرده بیان ازروی همون سی دی کلی رایت کنند و به صورت قانونی داخل کشور فروش کنند!!:لبخند:
جدا از این موضوع واردات نرم افزار یا همون دانلود با خرید لایسنس اصل ، چند مورد مطرح هست که الان ویندوز در دسترس ماست:
1- تبلیغ
2- مباحث نفوزی
3- عدم تحریک کشورهای دیکه برای ساخت سیستم عامل نظیر
و...
که شاید در تجارت مهمتر از تکثیر غیر مجاز باشه؟!
و در ثانی ما ها در جریان نیستیم ، سیستم عاملی که از طرف شرکتش پشتیبانی نشه ، یعنی باز بود راه نفوز گر؟! دوستان هکر در جریان هستند.
وقتی بنده ویندوز خریدم 5 هزارتومن ، به قول خودشون ارجینال پشت نقره ای:کف: جدا از اینکه نه جلد محکمی داره نه یه روکشی که خش نیفته!!! وقتی کانکت ماکروسافت می شی و بعد قوانینش رو بهت تذکر می ده و بهت می گه که ویندوزت غیر مجاز داره استفاده می شه؟! و حتی حق داشتن آپدیت های امنیتیش رو هم نداری، چه برسه آپدیت های نرم افزاری یا پشتیبانی فنی!!
و....
--------------------------------------------------------------
ببین دنیای نرم افزار الان دیگه فقط نرم افزار نیست ؟! شده نرم افزار + تجارت + سیاست
و اگر غیر این باشه ، قطعا برای جلوگیری از انتشار راهی پیدا خواهد شد.
در بحث ASP.NET خود ماکروسافت یا در همین برنامه های socket programing باز هم ماکروسافت شما مباحثی رو می بینید که واقعا اگر بخوان سیستم رو بلاک کنند ، می تونند این کار رو انجام دهند ؟!

موفق باشید.
خوشم اومد احسنت :تشویق:

ghasem110deh
دوشنبه 29 دی 1393, 12:20 عصر
با آقای قادری موافقم ...
البته من خیلی اینکاره نیستم !
ولی شخصا ده تا 12 تا نرم افزار مهندسی تولید دو شرکت (آلمانی) رو میشناسم که تیم های کرک معروف کلا بیخیال کرک کردنشون شدن !!!

hadi vafaii
سه شنبه 30 دی 1393, 02:11 صبح
سلام دوستان
اگه می تونید راهنمایی کنید:
من یه قفل نوشتم که مشخصات سخت افزار کاربر رو می گیره و بهش یه کد میده
بعد کاربر کدش رو تلفنی اعلام میکنه
بعد دوباره با یه الگوریتمی من بهش یه کد جدید میدم
کاربر اون کد جدید که همون کد فعالسازی هست رو وارد میکنه و برنامه اجرا میشه
اما
من تا همینجاشو بلدم
ینی بلدم که چجوری بهش کد فعالسازی بدم
اما بلد نیستم بهش بگم وقتی این کد فعالسازی رو وارد کرد چجوری برنامه فعال بشه و دیگه از کاربر کد فعالسازی نخواد؟
اصلا چجوری غیر فعال بوده که حالا فعال بشه
اولا اینکه این فرمی که کار دریافت کد و چک کردن درست بودنش رو انجام میده باید جزو فرم های برنامه ام باشه
؟
یا کلا یه برنامه جدید باید بسازم که کارش این باشه؟
من نیاز فوری به دونستن اینکه چطوری بین کد فعال سازی و فعال شدن رابطه برقرار کنم دارم.
دوستانی که اطلاعاتی دارن منو راهنمایی کنند.
مرسی
سلام عرض میکنم خدمت اساتید محترم یه برنامه مبتدیانه ساختم که باید یه سریالی رو بهش بدی تا لود بشه و یک بار که رجیست بشه دیگه سریال رو نمیخواد درج کنی ولی سطحش خیلی پایینه و باید یه سری تغییرات توش داده بشه تا به قول دوستمون تا مشخصات سخت افزاری رو بهمون بده تا براش یه سریال نامبر بسازیم و بهش ارائه بدیم اگه میشه یه نگاهی بندازین و نظر بدین
سریال نامبر :123
دانلود (http://uplod.ir/1fha4h76ak66/Serial.rar.htm)