تبليغاتX
آموزش ويژوال بيسيك و برنامه های موبایل
قفل نرم افزاري براي برنامه نويسان ويژوال بيسيك (همراه با آموزش كامل و با مثال)

 

بنام خدا

 

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

 

 نيمه شعبان مبارك

 

در اين پست همانطور كه در پست هاي قبل قول داده بودم آموزش قفل نرم افزاري را كه بوسيله آن مي توانيد از برنامه خود محافظت نماييد باهم دنبال مي كنيم.

 

شيوه هاي مختلفي براي حفاظت از نرم افزار ها وجود دارد كه شامل قفل هاي سخت افزاري و قفل هاي نرم افزاري مي باشد .

قفلي كه از آن صحبت مي كنيم در واقع يك  DLL   است كه  شماره شناسه ي چهار قطعه اصلي كامپيوتر  (Ram – Mother Board – Cpu – Hard Disk ) را استخراج مي كند  و پس از تركيب اين شماره ها در پايان يك شماره به عنوان شماره شناسه آن كامپيوتر به شما مي دهد كه اين شماره در هر كامپيوتري با كامپيوتر ديگر فرق دارد و امكان تكراري بودن آن تقريبا صفر است.

 

حالا اين شماره شناسه به چه دردي ميخوره و چطوري ميشه به عنوان يك قفل ازش استفاده كرد ؟

 

شما بايد براي كاربر برنامه خود امكاني ايجاد كنيد كه بتواند از طريقي باشما ارتباط برقرار كرده و شماره شناسه و نام و مشخصات خود را در اختيار شما قرار دهد و شما پس از در يافت هزينه نرم افزار فقط يك شماره سريال براي كاربر ارسال مي كنيد كه كاربر مي تواند با استفاده از آن شماره سريال برنامه را فعال كند . ممكن است بگوييد كه پس از ارسال سريال نرم افزار به يك كاربر .  او  اين سريال را در اختيار ديگران قرار مي دهد و ديگر كسي براي دريافت سريال جديد اقدام نمي كند اما  اگر سريال خود را در اختيار شخص ديگري قرار دهد آن شخص نمي تواند از آن سريال استفاده كند چون شماره شناسه كامپيوتر او با شماره شناسه كامپيوتر ديگري فرق دارد.

 

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

 

شايد  تا حالا تقريبا با طرز كار اين قفل آشنا شده باشيد اما براي رفع هرگونه ابهامي  يك پروژه را گام به گام با يكديگر انجام  مي دهيم  تا شما بيشتر با اين قفل و كاربرد آن آشنا شويد .

 

 

يك پروژه جديد با دوفرم ايجاد نماييد و آن را ذخيره نماييد.

 

 

حالا اين DLL  را كه در يك فايل Zip  قرار دارد  از  اين لينك  دريافت كنيد.

سپس فايل را ازحالت فشرده خارج كنيد و فايل SoftLock.DLL  را در پوشه برنامه كپي كنيد .

(پسورد فايل Zip     www.skrsoft.blogfa.com      است. )

 

حالا پروژه را مجددا باز كنيد . از منوي 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  يك شماره قرار گيرد كه اين شماره همان شماره شناسه  كامپيوتر شما است . تا اينجا به همين راحتي شماره شناسه كامپيوتر را بدست آورده ايد.

 

دو 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

 

 

تقريبا كار اين برنامه تمام شده است و فقطشما بايد يك برنامه ساده طراحي كنيد كه يك شماره شناسه و نام كاربر و نام شركت را دريافت كند و سريالي به شما بدهد.

 

پروژه جديدي ايجاد كنيد و سه كنترل 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) براي برنامه بارگذاري كنيد .

 

اميدوارم از اين آموزش كاربردي استفاده برده باشيد .

 

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

 

            

            لطفا براي بهتر شدن وبلاگ نظراتتان را بيان نماييد .

 

 

/ نوشته شده در جمعه نهم شهریور 1386 و ساعت 18:37 در ارتباط با موضوع ویژوال بیسیک |