PDA

View Full Version : گفتگو: قفل نرم افزاری یا سخت افزاری



mahmood_s
یک شنبه 23 آبان 1389, 08:33 صبح
با سلام خدمت دوستان

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

mahmood_s
یک شنبه 23 آبان 1389, 08:41 صبح
اول از همه جلوگیری از نفوذ غیره ممکنه ولی سرعت نفوذ و کرک رو کم میکنه و برنامه ما مدت بیشتری تو بازار می مونه


و حال

کدام بهتر و مطمئن تر است ؟ قفل سخت افزاری یا نرم افزاری


مطمئنا مثل دیگر سوالات این سوال هم جواب کلیشه ای خود را دارد .

هر روش مزایا و معایب خواست خود را دارد .

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

پس حال چه باید کرد ؟!

خوب از حالا به بعد دوستان باید بیاین وسط میدون

هر کی هر نظری داره هر چند غیره ممکن بگه تا اساتید روش بحث کنن تا روش های امن بدست بیاد

ضمنا مثالهای عملی هم در راه است

mahmood_s
یک شنبه 23 آبان 1389, 08:46 صبح
اولین روش نرم افزاری :

1- بدست آوردن سریال قطعات سخت افزاری ( سعی کنید کمتر از کامپوننت استفاده کنید )
2- ایجاد فایل در سیستم کاربر
3-تولید کدهای تصادفی
4-کد و دیکد کردن اطلاعات با الگوریتم های منحصر به فرد
.
.
.

vbhamed
یک شنبه 23 آبان 1389, 10:30 صبح
سلام

به نظر من تركيب سخت افزاري و نرم افزاري
به اضافه روشهايي كه براي پروتكت كردن فايل اجرايي و جلوگيري از دي پروتكت موجوده

mahmood_s
یک شنبه 23 آبان 1389, 11:26 صبح
سلام

به نظر من تركيب سخت افزاري و نرم افزاري
به اضافه روشهايي كه براي پروتكت كردن فايل اجرايي و جلوگيري از دي پروتكت موجوده


ممنون از حسن توجه تون

می خوایم با عملی کردن این تاپیک به پربار تر بودنش کمک کنیم

kooroush
یک شنبه 23 آبان 1389, 17:43 عصر
قفل هایی نرم افزاری که کد هارد یا سی پی یو رو می خونه و اون رو تو یک الگوریتمی میزاره چه جوریه !!!پمنظورم قفل تلفنی هستش (قفلی که طرف تماس می گره یک کدی رو می خونه شما اون رو تبدیل می کنی به یک کد دیگه برای زرف ی خونی توی برنامه وارد میکنه برنامه واسه همیشه فعال می شه )
امنیت اینجور کدها چه جوریاست ؟؟

vahid_visualbasic
دوشنبه 24 آبان 1389, 22:16 عصر
اینروزها به خاطر تنوع هاردها کمتر دیدم برنامه ای سریال هارد رو بگیره اکثرا از سریال یکی از درایو های جاری استفاده می کنن که من هم خودم از همین روش استفاده میکنم که یکی از معایبش اینه که با فرمت کردن درایو مورد نظر سریال درایو هم عوض خواهد شد

ASKaffash
سه شنبه 25 آبان 1389, 07:43 صبح
سلام
در روش قفل تلفنی :
یک رشته که از ترکیب MainBoard و Hard و کارت شبکه و ... (میتواند مدل + تاریخ ساخت + سریال +...) باشد ایجاد شده و این رشته طولانی براساس اسکی / کد یونیک و .... با یک تابع ریاضی پیچیده (تابع پوششی نه یک به یک)
مثلا عددی long را ایجاد کرده و کاربر باید تلفنی این عدد را ارائه دهد فروشنده با یک تابع ریاضی پیچیده و پوششی دیگر عددی را براساس عدد اول به خریدار ارائه میدهد ونرم افزار باید همیشه برابری مقادیر محاسبه شده را با عدد ورودی مقایسه کرده و عکس العمل لازم را انجام دهد در این روشها مراقبت از الگوریتم و توابع ریاضی مورد استفاده بسیار مهم است

mahmood_s
سه شنبه 25 آبان 1389, 14:24 عصر
طبق گفته دوستان ميشه با بدست آوردن سريال قطعات سخت افزاري يك كد ايجاد كرد

ولي من علاوه بر روش بالا سعي مي كنم يك سري فايل هم در سيستم مشتري ايجاد كنم تا شايد تحمل نرم افزار رو در برابر كرك شدن كمي بالاتر ببرم

ASKaffash
یک شنبه 30 آبان 1389, 11:06 صبح
سلام
برای جلوگیری از Patch شدن یک Hash از EXE با یک الگوریتم پیچیده تهیه و کنار EXE قرار میدهیم و برنامه ابتدای اجرا مقدار hash را مقایسه کرده وعکس العمل مورد نیاز را انجام میدهد

scarce
دوشنبه 29 فروردین 1390, 21:48 عصر
سلام دوستان عزیز چرا تایپیک رو بیهوده رها می کنید.!!
برای من جالب بود روش هایی که ذکر کردید بعضی هاش بدردم خورد

من یه چند وقتی هست روی قفل گذاری روی برنامه کار می کنم

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

من سعی کردم بیشتر کد ها رو طوری طراحی کنم به نظر ساده بیاد ولی در باطن بسیار پیچیده است.

* قفل گذاری بر روی یک نرم افزار این نیست که یک الگوریتم طراحی کنیم ( مثل ترکیب کد سی پی یو و...- قفل تلفنی ) و بعد با چند دستور شرطی و پروتکتور ازش محافظت کنیم!!

1_ شما به عنوان یک برنامه نویس باید دستورهای چک کردن سریال را در چند ماژول متفاوت با روش های متفاوت کد نویسی کنید .

2_ هر چه تعداد این ماژول ها بیشتر باشد وقت کرکر بیشتر گرفته می شود و کرکر حوصلش سر میره

3_ به گفته یکی از دوستان عزیزم (که کرکر ماهری هم هست) : یک برنامه نویس باید حتی زمانی که کاربر ماوس رو تکان میده سریال رو چک کنه

4_ سعی کنید قبل از اینکه قفلی طراحی کنید کمی با نرم افزار های دیباگر به صورت متوسط کار کنید و ببینید چگونه کار می کنند

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

این یک بازی ناجوانمردانه هست چون دو طرف برابر نیستن یک برنامه نویس و یاشاید 1000 تا برنامه نویس در مقابل ؟ کرکر ؟

ولی یادتون باشه فقط کاری کنید که حوصله کرکر سر بره از کد های شرطی دروغین استفاده کنیدو..

aminghaderi
دوشنبه 26 دی 1390, 01:54 صبح
تاپیک خوبی هست ولی خود دوستان همون اول حرف جالبی زدند که می فرمایند قفل سخت افزاری رو خودما باید بنویسیم و اگر از بازار تهیه کنیم که دیگر قفل نیست؟!
خوب برای نرم افزار هم به همین صورت هست ، من نوعی که یه برنامه نویسی هستم که یه نرم افزار مثلا حساب داری دادم بازار و قفل خوبی هم بعد از چند ماه فکر کردن اعضا طراحی کردیم که نمی یام توی تالار برنامه نویس الگریتمش رو بگم چون امنیتش از بین می رود؟! (برای مثال عرض کردم والا بنده برنامه نویس وب هستم)
به نظر من بهترین قفل ، قفلی هست که جایی فاش نشود و فقط توسط یک نفر طراحی شود و بقیه تیم نرم افزاری اون رو چک کنند.

موفق باشید.

mrbm_2007
شنبه 29 بهمن 1390, 04:25 صبح
من یه سوالی دارم
وقتی از قفل سخت افزاری استفاده می شه ممکنه یکی بیاد برنامه رو کرک کنه و یه جوری کد مربوط به قفل رو حذف کنه اونوقت مزیت قفل سخت افزاری نسبت به نرم افزاری چیه؟ یعنی با کرک نرم افزاری قفل سخت افزاری کرک میشه!
در ضمن بهترین راه برای ساخت قفل مناسب شناخت درست راههای کرک کردنه
اگر کسی اطلاعاتی داره لطفا توضیح بده، کرکر ها معمولا چجوری یه برنامه رو کرک می کنن؟
- کد برنامه رو تغییر می دن (مثلا دی کمپایل کنن و تغییرات را اعمال کنن و بعد کمپایل کنن)؟
- توی مسیر های برنامه تغییر ایجاد می کنن ( مثلا شرط چک کردن قفل رو دور بزنن)؟
- فایل های جانبی رو جایگزین می کنن (مثلا یه dll برای بررسی قفل هست اونو دوباره خودشون بسازن و جایگزین کنن)؟
- فرآیند قفل گذاری رو کشف می کنن و همون رو تقلید می کنن (مثلا فایل ها یا اطلاعات درون ریجستری)؟
- کد مربوط به قفل رو پیدا می کنن و خودشون سریال نامبر تولید می کنن؟
و شاید هزاران راه دیگه

علیرضا حسن زاده
شنبه 29 بهمن 1390, 08:24 صبح
وقتی از قفل سخت افزاری استفاده می شه ممکنه یکی بیاد برنامه رو کرک کنه و یه جوری کد مربوط به قفل رو حذف کنه اونوقت مزیت قفل سخت افزاری نسبت به نرم افزاری چیه؟ یعنی با کرک نرم افزاری قفل سخت افزاری کرک میشه!
وقتی مقداری از کد برنامه یا هر اطلاعات دیگری در قفل باشه با حذف کد چک کردن قفل مشکل برنامه حل نمیشه و همچنان کار نخواهد کرد
موردی که فرمودین برای قفل های خیلی ساده هست الان دیگه اکثر قفل های سخت افزاری حافظه دارن و میشه اطلاعات مختلفی از کدهای برنامه گرفته تا یوزر& پسورد دیتابیس رو توش نگه داری کرد
البته منکر این هم نیستم که با استفاده از این روشها دیگه امکان کرک برنامه از بین بره و راه های زیادی از جمله شبیه سازی وجود داره اینارو فقز به خاطر مقایسه شما گفتم که تفاوت نحوه کار رو ببینیم

mrbm_2007
شنبه 29 بهمن 1390, 08:54 صبح
وقتی مقداری از کد برنامه یا هر اطلاعات دیگری در قفل باشه با حذف کد چک کردن قفل مشکل برنامه حل نمیشه و همچنان کار نخواهد کرد
موردی که فرمودین برای قفل های خیلی ساده هست الان دیگه اکثر قفل های سخت افزاری حافظه دارن و میشه اطلاعات مختلفی از کدهای برنامه گرفته تا یوزر& پسورد دیتابیس رو توش نگه داری کرد
البته منکر این هم نیستم که با استفاده از این روشها دیگه امکان کرک برنامه از بین بره و راه های زیادی از جمله شبیه سازی وجود داره اینارو فقز به خاطر مقایسه شما گفتم که تفاوت نحوه کار رو ببینیم

ممنون به نکته ی جالبی اشاره کردید
راستی در مورد روش های کرک کردن اطلاعی ندارید؟