۲۰-مهر-۱۳۸۷, ۰۹:۴۳:۲۱
۲۳-مهر-۱۳۸۷, ۰۱:۳۳:۱۳
سلام
تا اونجا که من میدونم در مورد قفل سخت افزاری می تونی از قفلهای آماده استفاده کنی
قفل رو که میخری یه کد همراش هست که می تونی بگذاری تو برنامه که زمان لود شدن اون رو کنترل کنه.
تا اونجا که من میدونم در مورد قفل سخت افزاری می تونی از قفلهای آماده استفاده کنی
قفل رو که میخری یه کد همراش هست که می تونی بگذاری تو برنامه که زمان لود شدن اون رو کنترل کنه.
۲۳-مهر-۱۳۸۷, ۰۲:۱۱:۳۷
شما باید یه Refrence با عنوان Microsoft WMI Scripting V1.2 Library به پرژه اضافه کنی.
خروجی تابع زیر هم اون طور که اساتید محترم ایرانویج گفته بودن، شناسه CPU هستش.
فکر کنم برا CPU های دو هسته ای دوبار حلقه For اجرا بشه ولی هر دو سریال یکی هستند برا همین از Exit For استفاده شده.
اگه میخوای اجازه بدی برنامت روی چندتا سیستم ثبت بشه، باید یه کد ثابت هم برا برنامه تعریف کنی و با هر «کد ثابت» جدید برنامه رو دوباره Make کنی.
مثلا طرف زنگ میزنه بهت یا وارد وب سایتت میشه و کد اول (CPU) و کد دوم (کد ثابت موجود در فایل اجرایی) رو وارد می کنه.
زمانی که کد سوم رو بهش میدی، باید توی بانک ذخیره کنی که برنامه ای با فلان کد ثابت روی یک سیستم ذخیره شد.
ادامه داستان با فرض اینکه هر برنامه روی 3 کامپیوتر میتونه ثبت بشه.
دو حالت داره:
1ـ کد اول و دوم تکراری هستند. بدون هیچ مشکلی کد سوم رو به کاربر میدی. مثلا بعد از عوض کردن ویندوز، میخواد دوباره برنامه رو نصب کنه ولی کد سوم رو که قبلا دریافت کرده یادش رفته جایی یادداشت کنه.
2ـ کد اول متفاوته ولی کد دوم توی بانک موجوده. یعنی اینکه همون فایل اجرایی رو روی یه کامپیوتر دیگه میخوان ثبت کنن. اگر کد دوم روی سه کامپیوتر مختلف ثبت شده بود که هیچ. یعنی کد سوم رو به کاربر نمیدی. وگرنه کد سوم رو میدی و یک رکورد دیگه با همون کد دوم اما کد اول متفاوت توی بانک ذخیره می کنی.
اما اگه میخوای برنامت فقط روی یک سیستم (کامپیوتر) فعال بشه، نیازی به کد دوم نیست.
تو تمام کشور یه فایل اجرایی رو پخش می کنی و هر کی خواست برنامه رو فعال کنه فقط کد CPU شو به شما میده و شما با فرمولی که برا خودت درست کردی کد فعال سازی رو بهش میدی.
بی نهایت فرمول وجود داره.
مثلا بعضیا سریال CPU رو که گرفتن، بعدش میان اعداد رو از حروف جدا می کنن. با رقم های بدست اومده یه عدد درست میشه. سینوسش رو تقسیم بر کتانژانتش می کنن با عدد P ضرب می کنن.
آخر سر ارقام زوج رو جدا می کنن میشه یه عدد. ضربدر کد اسکی اولین حرف اسم معشوقشون می کنن و بالاخره کد اول تولید میشه (مثلا سریال CPU بود که به این شکل در اومد).
حالا اگه کد «فعال ساز» برابر نصف کد اول ضربدر تانژانت معکوس عدد نپر بود اونوقت برنامه فعال میشه. البته یه سری عملیات میتونی رو عدد نپر انجام بدی که داستانش طولانیه.
ضمناً «اگه میخوای اجازه بدی برنامت روی چندتا سیستم ثبت بشه» به خاطر اینه که برنامه جنبه تبلیغاتی و جلب مشتری داشته باشه.
اما «اگه میخوای برنامت فقط روی یک سیستم (کامپیوتر) فعال بشه» فکر کنم استاندارد تر باشه.
من با توجه به تجربه اولم که مربوط به 5-4 روز پیش میشه اینو گفتم ممکنه اشکالاتی هم تو کارم باشه.
خروجی تابع زیر هم اون طور که اساتید محترم ایرانویج گفته بودن، شناسه CPU هستش.
فکر کنم برا CPU های دو هسته ای دوبار حلقه For اجرا بشه ولی هر دو سریال یکی هستند برا همین از Exit For استفاده شده.
کد:
Public Function GetCPUID() As String
Dim WMIService As SWbemServices
Dim Items As SWbemObjectSet
Dim SubItems As SWbemObjectEx
Set WMIService = GetObject("winmgmts:\\.\root\cimv2")
Set Items = WMIService.ExecQuery("Select * from Win32_Processor", , 48)
For Each SubItems In Items
GetCPUID= SubItems.ProcessorId
Exit For
Next
End Function
مثلا طرف زنگ میزنه بهت یا وارد وب سایتت میشه و کد اول (CPU) و کد دوم (کد ثابت موجود در فایل اجرایی) رو وارد می کنه.
زمانی که کد سوم رو بهش میدی، باید توی بانک ذخیره کنی که برنامه ای با فلان کد ثابت روی یک سیستم ذخیره شد.
ادامه داستان با فرض اینکه هر برنامه روی 3 کامپیوتر میتونه ثبت بشه.
دو حالت داره:
1ـ کد اول و دوم تکراری هستند. بدون هیچ مشکلی کد سوم رو به کاربر میدی. مثلا بعد از عوض کردن ویندوز، میخواد دوباره برنامه رو نصب کنه ولی کد سوم رو که قبلا دریافت کرده یادش رفته جایی یادداشت کنه.
2ـ کد اول متفاوته ولی کد دوم توی بانک موجوده. یعنی اینکه همون فایل اجرایی رو روی یه کامپیوتر دیگه میخوان ثبت کنن. اگر کد دوم روی سه کامپیوتر مختلف ثبت شده بود که هیچ. یعنی کد سوم رو به کاربر نمیدی. وگرنه کد سوم رو میدی و یک رکورد دیگه با همون کد دوم اما کد اول متفاوت توی بانک ذخیره می کنی.
اما اگه میخوای برنامت فقط روی یک سیستم (کامپیوتر) فعال بشه، نیازی به کد دوم نیست.
تو تمام کشور یه فایل اجرایی رو پخش می کنی و هر کی خواست برنامه رو فعال کنه فقط کد CPU شو به شما میده و شما با فرمولی که برا خودت درست کردی کد فعال سازی رو بهش میدی.
بی نهایت فرمول وجود داره.
مثلا بعضیا سریال CPU رو که گرفتن، بعدش میان اعداد رو از حروف جدا می کنن. با رقم های بدست اومده یه عدد درست میشه. سینوسش رو تقسیم بر کتانژانتش می کنن با عدد P ضرب می کنن.
آخر سر ارقام زوج رو جدا می کنن میشه یه عدد. ضربدر کد اسکی اولین حرف اسم معشوقشون می کنن و بالاخره کد اول تولید میشه (مثلا سریال CPU بود که به این شکل در اومد).
حالا اگه کد «فعال ساز» برابر نصف کد اول ضربدر تانژانت معکوس عدد نپر بود اونوقت برنامه فعال میشه. البته یه سری عملیات میتونی رو عدد نپر انجام بدی که داستانش طولانیه.
ضمناً «اگه میخوای اجازه بدی برنامت روی چندتا سیستم ثبت بشه» به خاطر اینه که برنامه جنبه تبلیغاتی و جلب مشتری داشته باشه.
اما «اگه میخوای برنامت فقط روی یک سیستم (کامپیوتر) فعال بشه» فکر کنم استاندارد تر باشه.
من با توجه به تجربه اولم که مربوط به 5-4 روز پیش میشه اینو گفتم ممکنه اشکالاتی هم تو کارم باشه.
۱۹-آبان-۱۳۸۷, ۰۰:۳۶:۱۵
این مشکلیه که همه برنامه نویسا دارن
داشتن یه قفل که امنیت برنامه رو بالا ببره,اینو مطمئن باش که امنیت برنامت 100%تضمین نمیشه ولی میشه با یه کارایی امنیتو بالا برد
استفاده از Packer ها ,اسکریپتها میتونه کمکت کنه ولی نه خیلی زیاد
با یه متخصص کرک صحبت کن
API Redirection جستجو
Windows Anti-Debug Reference http://www.securityfocus.com/infocus/1893
داشتن یه قفل که امنیت برنامه رو بالا ببره,اینو مطمئن باش که امنیت برنامت 100%تضمین نمیشه ولی میشه با یه کارایی امنیتو بالا برد
استفاده از Packer ها ,اسکریپتها میتونه کمکت کنه ولی نه خیلی زیاد
با یه متخصص کرک صحبت کن
API Redirection جستجو
Windows Anti-Debug Reference http://www.securityfocus.com/infocus/1893
۱۹-آبان-۱۳۸۷, ۱۷:۵۵:۰۳
سلام.
keihancpu جان میشه لطف کنی تاپیک های قدیمی رو بالا نکشی.
اگه میخوای فعالیت مفید داشته باشی به همین تاپیک های جدید پاسخ بده. چون زننده تاپیک های قدیمی یا تا حالا به جوابشون رسیدن یا اگرم نرسیده باشن ممکنه از پاسخ شما بهره ای نبرن. خیلی از تاپیک ها هم به نتیجه رسیدن و شما مجدد یه پاسخی میدی که این کار باعث شلوغ شدن انجمن میشه.
keihancpu جان میشه لطف کنی تاپیک های قدیمی رو بالا نکشی.
اگه میخوای فعالیت مفید داشته باشی به همین تاپیک های جدید پاسخ بده. چون زننده تاپیک های قدیمی یا تا حالا به جوابشون رسیدن یا اگرم نرسیده باشن ممکنه از پاسخ شما بهره ای نبرن. خیلی از تاپیک ها هم به نتیجه رسیدن و شما مجدد یه پاسخی میدی که این کار باعث شلوغ شدن انجمن میشه.
۲۰-آبان-۱۳۸۷, ۱۷:۴۹:۰۶
حتما که نباید کسایی که سوالو پرسیدن به جوابشون برسن.وقتی تعداد تایپکیهایی که به جواب رسیدن هر چند مال گذشته بوده زیاد بشه ,اون موقع استفاده از جستجو هم کارآمد تر خواهد بود.
به هر حال هرطور که خودتون صلاح میدونید.چشم
به هر حال هرطور که خودتون صلاح میدونید.چشم