راهنمای استفاده از قفل نرم افزاری Cheft
در محیط VB6
این قسمت به عنوان بخش از Visual Studio ارائه شده است و اتفاقا ساده ترین بخش Visual Studio همین زبان اسکریپت نویسی به زبان Visual Basic است.
علاقمندان به NET. و از این دست، از اسکریپت های زیر می توانند به عنوان نمونه ذهنی الگوبرداری کنند.
1-بهره گیری از محیط های برنامه نویسی باید دارای قابلیت دور از دسترس بودن باشند.
2-همچنین بهره گیری از قفل باید عاری از محیط جعل(Fake) باشد.
که هر دو این امکانات در محیط برنامه نویسی فایل های دسته ای VB6 وجود دارد.
3- باید توجه داشت که محیط برنامه نویسیVB6 می تواند ازهر سه روش دریافت اطلاعات از قفل CHEFT استفاده کند:
این سه روش عبارتند از:
1- ارسال و دریافت اطلاعات با قفل از طریق خط فرمان(آرگومان) و کد خطا
2- ارسال و دریافت اطلاعات با قفل از طریق رجیستری ویندوز
3- ارسال و دریافت اطلاعات با قفل از طریق پنجره های Inputbox رابط کاربر
بهره گیری از خدمات قفل نرم افزاری CHEFT شامل بهره گیری از حداقل 3 سرویس است:
1- تعیین کد سخت افزاری سیستم
2-درج کد فعال سازی (تناسب کد فعال سازی با کد سخت افزاری)
3-دریافت درستی کد فعال سازی با توجه به کد سخت افزاری - جهت ادامه کار ...
شرح استفاده از سرویسهای فوق
در سه نمونه کلی ارائه شده در Sampleهای CHEFT می توان دیدکه:
نمونه (Sambple1) دریافت کد سخت افزاری سیستم از طریق اجرای دستور Shell "cheft.exe CODE" و دریافت کد خطا به واسطة Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
|
نمونه (Sambple1) ارسال کد فعال سازی به نرم افزار از طریق اجرای دستور Shell "cheft CHEFT:102YYM5C3Z4KX60P0H1LAYCO9TD23" و دریافت کد خطا به واسطة Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long |
نمونه (Sambple1) دریافت درستی کد فعال سازی از طریق اجرای دستور Shell "cheft Cheft:ACTIVATED" و دریافت کد خطا به واسطة Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long |
نمونه های استفاده شده تحت عنوان فایل پروژه Project1.vbp در فولدر Sample1 در دسترس هستند. ">
در نمونه دوم با نحوه عملکرد قفل نرم افزاری CHEFT در حالت ارسال و دریافت اطلاعات با قفل از طریق رجیستری ویندوز آشنا خواهید شد، در این نمونه که ذیلا به آن خواهیم پرداخت، از رجیستری ویندوز به عنوان رابط اطلاعات بین نرم افزار و قفل بهره گیری کرده ایم
نمونه (Sambple1) دریافت کد سخت افزاری سیستم ارسال درخواست Shell "Cheft.exe CODE", vbHide دریافت کد از طریق رجیستری ویندوز Function GetReg(KeyName As String) As String به واسطه Private Declare Function RegQueryValueEx Lib "advapi32.dll" ... |
نمونه (Sambple1) ارسال کد فعال سازی به نرم افزار cheft Activation دریافت کد از طریق رجیستری ویندوز |
نمونه (Sambple1) دریافت درستی کد فعال سازی cheft Cheft:ACTIVATED دریافت کد از طریق رجیستری ویندوز |
در این نمونه نیز مانند نمونه قبل ارسال اطلاعات به قفل بر اساس خط فرمان ولی دریافت اطلاعات بر اساس رجیستری ویندوز و به واسطه سه اسکریپت عمومی و فانکشن زیر صورت پذیرفته است.
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal lngRootKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal lngRootKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal lngRootKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Function GetReg(KeyName As String) As String
Dim kh, dt, bs As Long: Dim sb As String
RegOpenKey &H80000002, "Software\CHEFT", kh
If kh = 0 Then GetReg = "": RegCloseKey kh: Exit Function
RegQueryValueEx kh, KeyName, 0&, dt, ByVal 0&, bs
If kh = 0 Then GetReg = "": RegCloseKey kh: Exit Function
sb = Space(bs)
If RegQueryValueEx(kh, KeyName, 0&, 0&, ByVal sb, bs) <> 0 Then GetReg = "" Else If InStr(1, sb, Chr(0)) > 0 Then GetReg = Left(sb, InStr(1, sb, Chr(0)) - 1) Else GetReg = sb
RegCloseKey kh
End Function
نمونه های استفاده شده تحت عنوان فایل های Project2.vbp در فولدر Sample2 در دسترس هستند. ">
در نمونه سوم با نحوه عملکرد قفل نرم افزاری CHEFT در حالت ارسال و دریافت اطلاعات با قفل از طریق پنجره های Inputbox رابط کاربر آشنا خواهید شددر این نمونه که ذیلا به آن خواهیم پرداخت، عمدتا از واسط کاربری ویندوز که عموما INPUTBOX هستند بهره گیری کرده اما همچنان کد برگشتی به عنوان کد خطا مورد بهره برداری واقع شده است.
نمونه (Sambple1) دریافت کد سخت افزاری سیستم cheft SAY |
نمونه (Sambple1) ارسال کد فعال سازی به نرم افزار cheft Activation
|
نمونه (Sambple1) دریافت درستی کد فعال سازی cheft Cheft:ACTIVATED |
در این نمونه نیز مانند نمونه قبل دریافت اطلاعات از قفل بر اساس خط فرمان و کد خطای برگشتی و به واسطه اسکریپت عمومی زیر صورت پذیرفته است.
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
نمونه های استفاده شده تحت عنوان فایل های Project3.vbp در فولدر Sample3 در دسترس هستند. ">