PDA

View Full Version : سوال: ایجاد محدودیت زمانی



niknam_mh
پنج شنبه 04 تیر 1394, 15:27 عصر
دوستان سلام
من یه برنامه میخوام به یه شرکت بفروشم و قرار شده سه ماه دیگه پولش رو بدهد چه راهکاری استفاده کنم که نرم افزار پس از سه ماه دیگه غیر فعال بشه و پس از گرفتن هزینه نرم افزار رو باز فعالش کنم؟
پایگاه داده اس کیو ال سرور 2008 هست.

Reza-HNA
جمعه 05 تیر 1394, 20:50 عصر
دوستان سلام
من یه برنامه میخوام به یه شرکت بفروشم و قرار شده سه ماه دیگه پولش رو بدهد چه راهکاری استفاده کنم که نرم افزار پس از سه ماه دیگه غیر فعال بشه و پس از گرفتن هزینه نرم افزار رو باز فعالش کنم؟
پایگاه داده اس کیو ال سرور 2008 هست.

با استفاده از پروتکتور ها یا دانگل میتونید این کارو انجام بدید البته به صورت دستی هم میشه ولی امنیتی که دانگل یا پروتکتور ها دارن رو نداره.
ولی خب اگر یک کرکر بیفته دنبال نرم افزارتون مثل آب خوردن برنامتون رو کرک میکنه چون تغریبا میشه گفت زبان های .net امنیت آنچنانی ندارن.
برای پروتکت کردن برنامه Enigma یا Armadilo هست و دانگل هم یک شرکت ایرانی ارائه میده با نام Tiny Dongle ، کمی جستجو کنید به نتیجه میرسید.
موفق باشید.

niknam_mh
شنبه 06 تیر 1394, 22:34 عصر
با استفاده از پروتکتور ها یا دانگل میتونید این کارو انجام بدید البته به صورت دستی هم میشه ولی امنیتی که دانگل یا پروتکتور ها دارن رو نداره.
ولی خب اگر یک کرکر بیفته دنبال نرم افزارتون مثل آب خوردن برنامتون رو کرک میکنه چون تغریبا میشه گفت زبان های .net امنیت آنچنانی ندارن.
برای پروتکت کردن برنامه Enigma یا Armadilo هست و دانگل هم یک شرکت ایرانی ارائه میده با نام Tiny Dongle ، کمی جستجو کنید به نتیجه میرسید.
موفق باشید.

دوست عزیز با تشکر از پاسخ شما
این چیزایی که شما گفتید درست ولی من می خوام کاری کنم نرم افزار پس از 3 ماه دیگه کار نکنه این چکار به قفل ست افزاری داره؟

pbm_soy
یک شنبه 07 تیر 1394, 02:56 صبح
منظور این دوستم.ن این بود که محدودیت زمانی را توسط قفلهای سخت افزار پیاده سازی کنید!

ساده ترین راه اینه که در اول برنامه اتون (مثلا form load فرم اصلی) تاریخ سیستم را بگیرید وآنرا بررسی کنید که تاریخ موردنظر (3ماه آینده) شما رسیده یا خیر؟ اگر برابر تاریخ موردنظر شما بود برنامه اجرا نشود ویا حتی میتوانید برنامه را پاک کنید و یا دیتا را حذف کنید و یا دیتا را کد کنید و یا ......

اگر راه حل عمومی تر میخواهید میتوانید در اولین بار اجرای برنامه تاریخ روز را در یک فایل یا دیتابیس ذخیره کنید البته بصورت کد شده وبعد در هر بار اجرا اختلاف تاریخ فعلی سیستم را با تاریخ ثبت شده در آن فایل بررسی کنید و اگر این اختلاف برابر 3ماه بود برنامه متوقف شود

gilsoft
یک شنبه 07 تیر 1394, 08:00 صبح
سلام دوست عزیز

البته دوست عزیزمون جناب pbm_say توضیحات کاملی دادند ... اما من بدین طریق عمل کردم:
Function IsDateOfDeath(pDate As String) As Boolean
Dim cnt As Byte
cnt = GetCounterFromDb() ' فراخوانی عدد از بانک
If cnt > 20 Then Return True
If Shamsi_Now() >= pDate Then
cnt += 1
SaveCounterToDb(cnt) ' ذخیره عدد در بانک
End If
Return False
End Function

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

Reza-HNA
یک شنبه 07 تیر 1394, 23:51 عصر
دوست عزیز با تشکر از پاسخ شما
این چیزایی که شما گفتید درست ولی من می خوام کاری کنم نرم افزار پس از 3 ماه دیگه کار نکنه این چکار به قفل ست افزاری داره؟

قفل های سخت افزاری این امکان رو میدن که میتونید برنامتون رو مدت دار کنید.
پروتکتور ها هم همین امکان رو دارن که نیاز به برنامه نویسی اضافه هم نداره


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

ساده ترین راه اینه که در اول برنامه اتون (مثلا form load فرم اصلی) تاریخ سیستم را بگیرید وآنرا بررسی کنید که تاریخ موردنظر (3ماه آینده) شما رسیده یا خیر؟ اگر برابر تاریخ موردنظر شما بود برنامه اجرا نشود ویا حتی میتوانید برنامه را پاک کنید و یا دیتا را حذف کنید و یا دیتا را کد کنید و یا ......

اگر راه حل عمومی تر میخواهید میتوانید در اولین بار اجرای برنامه تاریخ روز را در یک فایل یا دیتابیس ذخیره کنید البته بصورت کد شده وبعد در هر بار اجرا اختلاف تاریخ فعلی سیستم را با تاریخ ثبت شده در آن فایل بررسی کنید و اگر این اختلاف برابر 3ماه بود برنامه متوقف شود

راه خیلی ساده و خوبیه ولی امنیت زیره صفره :لبخند:
طرف میتونه تاریخ سیستم رو عوض کنه و هرچقدر خواست از برنامه استفاده کنه .

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

pbm_soy
دوشنبه 08 تیر 1394, 02:28 صبح
قفل های سخت افزاری این امکان رو میدن که میتونید برنامتون رو مدت دار کنید.
پروتکتور ها هم همین امکان رو دارن که نیاز به برنامه نویسی اضافه هم نداره



راه خیلی ساده و خوبیه ولی امنیت زیره صفره :لبخند:
طرف میتونه تاریخ سیستم رو عوض کنه و هرچقدر خواست از برنامه استفاده کنه .

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

سوال دوستمون تاکیدی برامنیت نداشت و بیشتر چیزی که مدنظرشون بود فهمیدن مدت زمان اجرای برنامه بود که درصورت 3 ماه شدن برنامه کار نکنه و بتونه پولش را دریافت کنه! (هرچند که اساس سوال برپایه امنیت و بخاطر است)
احتمالا برنامه یک کار سفارشی بوده و فقط به یک مشتری داده شده و بازهم احتمال دارد که مشتری از وجود همچین الگویتمی خبر ندارد که بعد از 3 ماه برنامه کارنخواهد کرد!
بعداز 3 ماه هم برنامه میتواند خودش را پاک کند و یا کارهای دیگر که عملا برنامه را بلااستفاده کند و مور تغییر ساعت را منتفی کند!
در ضمن اگر برنامه نویس بخواهد همین الگوریتم ساده را میتواند بهتر کند و امنیتش را بالاتر ببرد (هدف را باید بررسی کرد و به اندازه باید هزینه کرد) فکر میکنم همین الگوریتم ساده و بدون امنیت برای کسی باشرایط این دوستمون کافی باشد!
ومورد دیگر اینکه در پست دوم یعنی اولین پاسخ بهترین پاسخ و روش برای مشکل معرفی شده بود!