alicomputer
یک شنبه 26 اسفند 1386, 18:49 عصر
شیوه های مختلفی برای حفاظت از نرم افزار ها وجود دارد که شامل قفل های سخت افزاری و قفل های نرم افزاری می باشد .
قفلی که از آن صحبت می کنیم در واقع یک DLL است که شماره شناسه ی چهار قطعه اصلی کامپیوتر (Ram – Mother Board – Cpu – Hard Disk ) را استخراج می کند و پس از ترکیب این شماره ها در پایان یک شماره به عنوان شماره شناسه آن کامپیوتر به شما می دهد که این شماره در هر کامپیوتری با کامپیوتر دیگر فرق دارد و امکان تکراری بودن آن تقریبا صفر است.
حالا این شماره شناسه به چه دردی میخوره و چطوری میشه به عنوان یک قفل ازش استفاده کرد ؟
شما باید برای کاربر برنامه خود امکانی ایجاد کنید که بتواند از طریقی باشما ارتباط برقرار کرده و شماره شناسه و نام و مشخصات خود را در اختیار شما قرار دهد و شما پس از در یافت هزینه نرم افزار فقط یک شماره سریال برای کاربر ارسال می کنید که کاربر می تواند با استفاده از آن شماره سریال برنامه را فعال کند . ممکن است بگویید که پس از ارسال سریال نرم افزار به یک کاربر . او این سریال را در اختیار دیگران قرار می دهد و دیگر کسی برای دریافت سریال جدید اقدام نمی کند اما اگر سریال خود را در اختیار شخص دیگری قرار دهد آن شخص نمی تواند از آن سریال استفاده کند چون شماره شناسه کامپیوتر او با شماره شناسه کامپیوتر دیگری فرق دارد.
بدین ترتیب هرگونه استفاده غیر مجازی از نرم افزار شما تقریبا محال می شود و شما می توانید به راحتی از نرم افزار خود درمورد کپی غیر مجاز محافظت کنید .
شاید تا حالا تقریبا با طرز کار این قفل آشنا شده باشید اما برای رفع هرگونه ابهامی یک پروژه را گام به گام با یکدیگر انجام می دهیم تا شما بیشتر با این قفل و کاربرد آن آشنا شوید .
یک پروژه جدید با دوفرم ایجاد نمایید و آن را ذخیره نمایید.
حالا این DLL را که در یک فایل Zip قرار دارد از این لینک دریافت کنید.
سپس فایل را ازحالت فشرده خارج کنید و فایل SoftLock.DLL را در پوشه برنامه کپی کنید .
(پسورد فایل Zip www.skrsoft.blogfa.com است. )
http://i15.tinypic.com/6ffv4oy.jpg
حالا پروژه را مجددا باز کنید . از منوی Project گزینه References را برگزینید تا کادر محاوره ای References به صورت زیر باز شود :
از این کادر محاوره ای برای افزودن امکانات جانبی به برنامه از طریق فایلهای اضافی مانند DLL ها و OCX ها به برنامه استفاده می شود .
بر روی دکمه Browse کلیک کنید و به مسیری که فایل DLL را کپی کرده اید رفته و فایل SoftLock.DLL را انتخاب کنید و بر روی دکمه Open کلیک کنید تا فایل به پروژه اضافه شود . سپس از کادر محاوره ای References بر روی دکمه Ok کلیک کنید تا به محیط پروژه برگردید .
در قسمت General فرم اول یک متغیر جدید برای استفاده از DLL به این صورت تعریف کنید :
Dim skrsoft As New class
یک کنترل TextBox به فرم اضافه کنید و نام آن را به txtid تغییر دهید . توجه کنید که باید خاصیت Locked آن را به True تغییر دهید تا کاربر نتواند شناسه را تغییر دهد. حالا روی فرم دابل کلیک کنید و در رویداد Load آن کد زیر را وارد کنید:
txtid.Text = skrsoft.GenerateID
این کد باعث می شود که وقتی برنامه اجرا شدر در txtid یک شماره قرار گیرد که این شماره همان شماره شناسه کامپیوتر شما است . تا اینجا به همین راحتی شماره شناسه کامپیوتر را بدست آورده اید.
http://i10.tinypic.com/53j89ab.jpg
دو TextBox دیگر به فرم اضافه کنید و نام آنها را txtname و txtcompany قرار دهید . یک دکمه به فرم بیفزایید و نام آن را به cmdok تغییر دهید . در پایان هم یک Textbox دیگر به نام txtserial به فرم اضافه نمایید .از این کنترل برای وارد کردن سریال توسط کاربر استفاده می شود .
تا اینجا شکل ظاهری برنامه را طراحی کرده و شناسه کامپیوتر را بدست آوردیم.
حال باید یک الگوریتم طراحی کنیم که یک شماره شناسه و یک نام کاربر و یک نام شرکت دریافت کند و با توجه به این اطلاعات یک شماره سریال تولید کند که به راحتی قابل حدس زدن و پیدا کردن نباشد . با یک مثال یک الگوریتم ساده پیاده می کنیم اما شما باید برای محافظت از برنامه خود از الگوریتم های پیچیده تری استفاده کنید .
مثلا میتوانیم شماره سریال را بر عدد 2 تقسیم کنیم و تعداد حروف نام کاربر را در ابتدای عدد بدست آمده قرار دهیم و عدد بدست آمده را در در تعداد حروف نام شرکت ضرب کنیم و از عدد بدست آمده 10 رقم اول آن را به عنوان شماره سریال به کاربر بدهیم .
الگوریتمی که در بالا مطرح شد یک الگوریتم ساده است اما باتوجه به سادگی آن باز هم پیدا کردن الگوریتم و سریال کار سختی به نظر می رسد .
با هم از همین الگوریتم استفاده می کنیم و برنامه را طراحی می کنیم.
بر روی دکمه cmdok دابل کلیک کلیک کنید و در رویداد کلیک آن کدهای زیر را وارد کنید :
Dim strserial As String * 10, a As String, b As String, c As String
a = txtid.Text / 2
b = Len(txtname.Text)
c = Len(txtcompany.Text)
strserial = b + a
strserial = Val(strserial) * Val(c)
If txtserial.Text = strserial Then
MsgBox "برنامه با موفقیت ثبت شد", , "Www.SkrSoft.Blogfa.Com"
Form2.Show
Unload Form1
Else
MsgBox "سریال وارد شده با مشخصات شما مطابقت ندارد ", , "Www.SkrSoft.Blogfa.Com"
End If
تقریبا کار این برنامه تمام شده است و فقطشما باید یک برنامه ساده طراحی کنید که یک شماره شناسه و نام کاربر و نام شرکت را دریافت کند و سریالی به شما بدهد.
این هم کرکش یا keygen
پروژه جدیدی ایجاد کنید و سه کنترل TextBox به نام های txtid2 و txtname2 و txtcompany2 روی فرم قرار دهید و یک دکمه به فرم اضافه نمایید و نام آن را cmdok2 بگذارید . بر روی cmdok دابل کلیک کنید و در رویداد کلیک آن کد زیر را وارد کنید :
Dim strserial As String * 10, a As String, b As String, c As String
a = txtid2.Text / 2
b = Len(txtname2.Text)
c = Len(txtcompany2.Text)
strserial = b + a
strserial = Val(strserial) * Val(c)
MsgBox strserial, , "Www.SkrSoft.Blogfa.Com"
حالا اگر برنامه را اجرا کنید و اطلاعات لازم را به آن بدهید شماره سریال را به شما می دهد و شما میتوانید آن را با اطمینان کامل به کاربر بدهید و مطمئن باشید که از برنامه شما هیچ استفاده غیر مجازی نخواهد شد .
سورس دو برنامه بالا را می توانید از این لینک دریافت نمایید .
(پسورد فایل Zip www.skrsoft.blogfa.com است. )
اگر هنگام اجرای پروژه ها با خطای زیر روبرو شدید :
Compile error:
User-defined type not defined
فایل DLL را دوباره از همان روشی که گفته شد (از منوی Project) برای برنامه بارگذاری کنید .
امیدوارم از این آموزش کاربردی استفاده برده باشید
این قفل نرم افزاری را فقط به خاطر امنیت نرم افزار هایتان گذاشتم.
قفلی که از آن صحبت می کنیم در واقع یک DLL است که شماره شناسه ی چهار قطعه اصلی کامپیوتر (Ram – Mother Board – Cpu – Hard Disk ) را استخراج می کند و پس از ترکیب این شماره ها در پایان یک شماره به عنوان شماره شناسه آن کامپیوتر به شما می دهد که این شماره در هر کامپیوتری با کامپیوتر دیگر فرق دارد و امکان تکراری بودن آن تقریبا صفر است.
حالا این شماره شناسه به چه دردی میخوره و چطوری میشه به عنوان یک قفل ازش استفاده کرد ؟
شما باید برای کاربر برنامه خود امکانی ایجاد کنید که بتواند از طریقی باشما ارتباط برقرار کرده و شماره شناسه و نام و مشخصات خود را در اختیار شما قرار دهد و شما پس از در یافت هزینه نرم افزار فقط یک شماره سریال برای کاربر ارسال می کنید که کاربر می تواند با استفاده از آن شماره سریال برنامه را فعال کند . ممکن است بگویید که پس از ارسال سریال نرم افزار به یک کاربر . او این سریال را در اختیار دیگران قرار می دهد و دیگر کسی برای دریافت سریال جدید اقدام نمی کند اما اگر سریال خود را در اختیار شخص دیگری قرار دهد آن شخص نمی تواند از آن سریال استفاده کند چون شماره شناسه کامپیوتر او با شماره شناسه کامپیوتر دیگری فرق دارد.
بدین ترتیب هرگونه استفاده غیر مجازی از نرم افزار شما تقریبا محال می شود و شما می توانید به راحتی از نرم افزار خود درمورد کپی غیر مجاز محافظت کنید .
شاید تا حالا تقریبا با طرز کار این قفل آشنا شده باشید اما برای رفع هرگونه ابهامی یک پروژه را گام به گام با یکدیگر انجام می دهیم تا شما بیشتر با این قفل و کاربرد آن آشنا شوید .
یک پروژه جدید با دوفرم ایجاد نمایید و آن را ذخیره نمایید.
حالا این DLL را که در یک فایل Zip قرار دارد از این لینک دریافت کنید.
سپس فایل را ازحالت فشرده خارج کنید و فایل SoftLock.DLL را در پوشه برنامه کپی کنید .
(پسورد فایل Zip www.skrsoft.blogfa.com است. )
http://i15.tinypic.com/6ffv4oy.jpg
حالا پروژه را مجددا باز کنید . از منوی Project گزینه References را برگزینید تا کادر محاوره ای References به صورت زیر باز شود :
از این کادر محاوره ای برای افزودن امکانات جانبی به برنامه از طریق فایلهای اضافی مانند DLL ها و OCX ها به برنامه استفاده می شود .
بر روی دکمه Browse کلیک کنید و به مسیری که فایل DLL را کپی کرده اید رفته و فایل SoftLock.DLL را انتخاب کنید و بر روی دکمه Open کلیک کنید تا فایل به پروژه اضافه شود . سپس از کادر محاوره ای References بر روی دکمه Ok کلیک کنید تا به محیط پروژه برگردید .
در قسمت General فرم اول یک متغیر جدید برای استفاده از DLL به این صورت تعریف کنید :
Dim skrsoft As New class
یک کنترل TextBox به فرم اضافه کنید و نام آن را به txtid تغییر دهید . توجه کنید که باید خاصیت Locked آن را به True تغییر دهید تا کاربر نتواند شناسه را تغییر دهد. حالا روی فرم دابل کلیک کنید و در رویداد Load آن کد زیر را وارد کنید:
txtid.Text = skrsoft.GenerateID
این کد باعث می شود که وقتی برنامه اجرا شدر در txtid یک شماره قرار گیرد که این شماره همان شماره شناسه کامپیوتر شما است . تا اینجا به همین راحتی شماره شناسه کامپیوتر را بدست آورده اید.
http://i10.tinypic.com/53j89ab.jpg
دو TextBox دیگر به فرم اضافه کنید و نام آنها را txtname و txtcompany قرار دهید . یک دکمه به فرم بیفزایید و نام آن را به cmdok تغییر دهید . در پایان هم یک Textbox دیگر به نام txtserial به فرم اضافه نمایید .از این کنترل برای وارد کردن سریال توسط کاربر استفاده می شود .
تا اینجا شکل ظاهری برنامه را طراحی کرده و شناسه کامپیوتر را بدست آوردیم.
حال باید یک الگوریتم طراحی کنیم که یک شماره شناسه و یک نام کاربر و یک نام شرکت دریافت کند و با توجه به این اطلاعات یک شماره سریال تولید کند که به راحتی قابل حدس زدن و پیدا کردن نباشد . با یک مثال یک الگوریتم ساده پیاده می کنیم اما شما باید برای محافظت از برنامه خود از الگوریتم های پیچیده تری استفاده کنید .
مثلا میتوانیم شماره سریال را بر عدد 2 تقسیم کنیم و تعداد حروف نام کاربر را در ابتدای عدد بدست آمده قرار دهیم و عدد بدست آمده را در در تعداد حروف نام شرکت ضرب کنیم و از عدد بدست آمده 10 رقم اول آن را به عنوان شماره سریال به کاربر بدهیم .
الگوریتمی که در بالا مطرح شد یک الگوریتم ساده است اما باتوجه به سادگی آن باز هم پیدا کردن الگوریتم و سریال کار سختی به نظر می رسد .
با هم از همین الگوریتم استفاده می کنیم و برنامه را طراحی می کنیم.
بر روی دکمه cmdok دابل کلیک کلیک کنید و در رویداد کلیک آن کدهای زیر را وارد کنید :
Dim strserial As String * 10, a As String, b As String, c As String
a = txtid.Text / 2
b = Len(txtname.Text)
c = Len(txtcompany.Text)
strserial = b + a
strserial = Val(strserial) * Val(c)
If txtserial.Text = strserial Then
MsgBox "برنامه با موفقیت ثبت شد", , "Www.SkrSoft.Blogfa.Com"
Form2.Show
Unload Form1
Else
MsgBox "سریال وارد شده با مشخصات شما مطابقت ندارد ", , "Www.SkrSoft.Blogfa.Com"
End If
تقریبا کار این برنامه تمام شده است و فقطشما باید یک برنامه ساده طراحی کنید که یک شماره شناسه و نام کاربر و نام شرکت را دریافت کند و سریالی به شما بدهد.
این هم کرکش یا keygen
پروژه جدیدی ایجاد کنید و سه کنترل TextBox به نام های txtid2 و txtname2 و txtcompany2 روی فرم قرار دهید و یک دکمه به فرم اضافه نمایید و نام آن را cmdok2 بگذارید . بر روی cmdok دابل کلیک کنید و در رویداد کلیک آن کد زیر را وارد کنید :
Dim strserial As String * 10, a As String, b As String, c As String
a = txtid2.Text / 2
b = Len(txtname2.Text)
c = Len(txtcompany2.Text)
strserial = b + a
strserial = Val(strserial) * Val(c)
MsgBox strserial, , "Www.SkrSoft.Blogfa.Com"
حالا اگر برنامه را اجرا کنید و اطلاعات لازم را به آن بدهید شماره سریال را به شما می دهد و شما میتوانید آن را با اطمینان کامل به کاربر بدهید و مطمئن باشید که از برنامه شما هیچ استفاده غیر مجازی نخواهد شد .
سورس دو برنامه بالا را می توانید از این لینک دریافت نمایید .
(پسورد فایل Zip www.skrsoft.blogfa.com است. )
اگر هنگام اجرای پروژه ها با خطای زیر روبرو شدید :
Compile error:
User-defined type not defined
فایل DLL را دوباره از همان روشی که گفته شد (از منوی Project) برای برنامه بارگذاری کنید .
امیدوارم از این آموزش کاربردی استفاده برده باشید
این قفل نرم افزاری را فقط به خاطر امنیت نرم افزار هایتان گذاشتم.