نحوه ساخت شماتیك یك قفل اكتیو ایكس!

تعریف قفل های اكتیو ایكس :


در واقع یك اكتیو ایكس كه مانع اجرای برنامه در شرایط خاصی شود را قفل اكتیو ایكس مینامند. این نوع قفل مانند سایر


كامپوننتهای برنامه نویسی است . برنامه نویس به سادگی آن را بر روی فرم برنامه خود قرار میدهد و با تنظیم پارامترها و

خصوصیات آن ،‌ سبب فعالیت آن میشود.


این اكتیو ایكس قبل از قرارگرفتن فرم اصلی در حافظه ، شروع به كار میكند و اگر برای اولین بار اجرا میشود بر حسب اندازه

حافظه ، شماره های سریال و سرعت پردازنده كد ویژه ای تولید میكند این كد تولید شده وابسته به خصوصیات كامپیوتر است

بنابراین كد برگشتی این اكتیو ایكس بر روی هر سیستمی متفاوت خواهد بود.


پس از ارائه كد ، كد معادل آن را از كاربر در خواست میكند. كاربر با ارائه كد تولید شده به شركت تولید كننده نرم افزار كد معادل

آن را دریافت میكند.این كد را كاربر یا از طریق تلفن یا از طریق پست الكترونیكی و یا اینترنت دریافت میكند در صورتیكه كد معادل

دریافت شده پس از كد شدن معادل كد ارائه شده باشد یا به عبارتی دیگر كد ارائه شده از طرف كامپیوتر مكمل كد دریافت شده از

شركت باشد اكتیو ایكس اجازه میدهد كه برنامه بدون اشكال شروع به كار كند.


كاربر نیز میتواند بارها از این كد بر روی كامپیوتر خود(كامپیوتری كه كد دریافت كرده) استفاده كند. پس از ورود كد، این كد در

مكانی از سیستم مثلا ریجستری یا یك فایل بصورت كد شده قرار میگیرد و هر بار كامپیوتر برنامه را اجرا كند به جای درخواست

كد از كاربر ، كد را از رجیستری یا فایل پس از كدیابی مورد استفاده قرار میدهد.



نقاط ضعف:

1.قفلهای اكتیو ایكس نیاز به دریافت كد از شركت دارند یعنی اینكه باید كاربر حتما به نحوی با شركت تولید كننده تماس بگیرد و

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


2. قفلهای اكتیو ایكس تنها بر روی یك سیتسم اجرا میشوند و باید برای دریافت كد برای هر كامپیوتر اقدام شود.(دشواری در

نصب های تعداد بالا)


3.قفلهای اكتیو ایكس ممكن است با فرمت كردن ، پارتیشن بندی تغییر یابد كه شركت نمیتواند دقیقا حدس بزند كه این قفل

برای این سیستم بوده یا واقعا تغییر كرده . در اكثر قفلهای ساخته شده تغییرات این كد بسیار مشاهده شده است.


4. با صدمه دیدن قطعه ای در كامپیوتر و یا تعویض یك قطعه برنامه تصور میكند كه سیتسم تغییر یافته است مثلا با تغییر حافظه

سیستم.


نقاط قوت:


1. امنیت بالا برای برنامه نویس از نظر كپی برداری با تعداد بالا.


2. دارای بیشترین امنیت نسبت به سایر قفلهای نرم افزای یا سی دی

3. سازگاری بسیار بالا نسبت به سایر قفلهای نرم افزاری.

4. قابلیت آمار گیری فروش برنامه توسط شركت ارائه كننده كد معادل


نحــوه ایجاد بصورت شماتیك برای برنامه نویسان ویژوال بیسیك:

اول اینكه این برنامه باید بصورت اكتیو ایكس تولید شود كه بتوان از آن به سادگی استفاده نمود.

قدم اول برای تولید آن این است كه برنامه قبل از فرم اصلی بار شود.

قدم دوم ارائه یك كد تولید شده برای سیستم است این بخش تقریبا هسته برنامه را تشكیل میدهد بنابراین در مورد این

قسمت توضیحات بیشتری ارائه میكنم

كدی كه اكتیو ایكس برای یك كامپیوتر خاص تولید میكند باید منحصر بفرد باشد یعنی نباید در سیستمهای دیگر مشابه آن پیدا

شود همچنین مهمترین نكته ای كه باید برای تولید این كد در نظر گرفته شود این است كه با تغییرات كوچك درون سیستم تغییر

نكند بدین منظور میتوان آن را به قسمتهای مختلف كامپیوتر بنا بر نوع انتظار قفل تغییر دهیم مثلا به شماره سریال هارد یا مثلا

به مقدار حافظه سیستم یا به نوع كارت گرافیكی و...

و یا به مجموع آنها وابسته كنیم.

بسیاری سوال می کنند در ویژوال بیسیك چگونه میتوان شماره سریال هارد را بدست آورد؟ برای این منظور میتوان از API ها

استفاده نمود. یك API خوب برای این منظور GetVolumeInformation است

استفاده از این تابع را در یك برنامه برایتان قرار داده ام این برنامه شماره سریال یك درایو-برچسب درایو و نوع فرمت و.. گزارش

میدهد.

قدم سوم ایجاد كد مكمل است . بصورتهای گوناگون میتوان برای كد تولید شده كد مكمل ایجاد كرد اولین روش استفاده كه ساده

ترین است استفاده از یك فرمول است مثلا یك مثال ساده این است كه اگر كد تولید شده 15663 بود برنامه با جمع كردن اعداد

زوج و فرد این عدد و تقسم نمودن و ضرب در 5586 یك كد تولید كند ایراد اینگونه روشها در قابل كشف بودن كد میباشد مگر اینكه

واقعا یك ریاضیدان باشید.


روش دیگر تولید كد های تصادفی مثلا در ویژوال بیسیك بوسیله Randomize Timer و تشكیل یك بانك اطلاعاتی است كه كد

معادل و كد ارایه شده برای همه آنها را در آوریم این روش بسیار اطمینان بخش تر است.


من نمونه ای از این برنامه را كه بسرعت و تنها بصورت شماتیك ایجاد كرده ام ارسال كردم این میتواند بصورت سریع به شما

نشان دهد كه باید چكار كنید البته قابل ذكر است كه این برنامه ناقص است مثلا فرمول یا پایگاهی برای كد معادل ندارد و یا

وابستگی آن محدود است و كدی را در رجیستری و یا فایل قرار نمیدهد و...

اما یك OCX یا همان اكتیو ایكس ایجاد شده را دارد كه میتوانید آن را با لود كردن در یك پروژه خود امتحان كنید. من این را فقط ظرف

یك دو ساعت تولید كردم حالا خودتان حساب كنید كه شما با كمی وقت گذاشتن میتوانید برنامه خوبی تولید كنید. البته محبت

كنید اگر برای اینكار آستین بالا زدید برای منم یك نسخه ارسال كنید .

دیگر تمام است بسادگی یك قفل حرفه ای ساخته ایم . آنهم با ساده ترین زبان دنیا ویژوال بیسیك اگر آن را با برنامه های دیگر

تولید كنید كه دیگر محشر است !


منبع: : آی تی ایران

موفق باشید.
 

جدیدترین ارسال ها

بالا