اين يه مقاله توپ در مورد يك نوع قفل جديد :twisted:
.:: قفل هاي اکتيو ايکس ::.
تعريف قفل هاي اكتيو ايكس :
در واقع يك اكتيو ايكس كه مانع اجراي برنامه در شرايط خاصي شود را قفل اكتيو ايكس مينامند. اين نوع قفل مانند ساير كامپوننتهاي برنامه نويسي است . برنامه نويس به سادگي آن را بر روي فرم برنامه خود قرار ميدهد و با تنظيم پارامترها و خصوصيات آن ، سبب فعاليت آن ميشود. اين اكتيو ايكس قبل از قرارگرفتن فرم اصلي در حافظه ، شروع به كار ميكند و اگر براي اولين بار اجرا ميشود بر حسب اندازه حافظه ، شماره هاي سريال و سرعت پردازنده كد ويژه اي توليد ميكند اين كد توليد شده وابسته به خصوصيات كامپيوتر است بنابراين كد برگشتي اين اكتيو ايكس بر روي هر سيستمي متفاوت خواهد بود. پس از ارائه كد ، كد معادل آن را از كاربر در خواست ميكند. كاربر با ارائه كد توليد شده به شركت توليد كننده نرم افزار كد معادل آن را دريافت ميكند.اين كد را كاربر يا از طريق تلفن يا از طريق پست الكترونيكي و يا اينترنت دريافت ميكند در صورتيكه كد معادل دريافت شده پس از كد شدن معادل كد ارائه شده باشد يا به عبارتي ديگر كد ارائه شده از طرف كامپيوتر مكمل كد دريافت شده از شركت باشد اكتيو ايكس اجازه ميدهد كه برنامه بدون اشكال شروع به كار كند. كاربر نيز ميتواند بارها از اين كد بر روي كامپيوتر خود(كامپيوتري كه كد دريافت كرده) استفاده كند. پس از ورود كد، اين كد در مكاني از سيستم مثلا ريجستري يا يك فايل بصورت كد شده قرار ميگيرد و هر بار كامپيوتر برنامه را اجرا كند به جاي درخواست كد از كاربر ، كد را از رجيستري يا فايل پس از كديابي مورد استفاده قرار ميدهد. نقاط ضعف: 1.قفلهاي اكتيو ايكس نياز به دريافت كد از شركت دارند يعني اينكه بايد كاربر حتما به نحوي با شركت توليد كننده تماس بگيرد و نميتواند برنامه را پس از خريد بلافاصله استفاده كند . خصوصا دسترسي به تلفن و اينترنت ضروري است. 2. قفلهاي اكتيو ايكس تنها بر روي يك سيتسم اجرا ميشوند و بايد براي دريافت كد براي هر كامپيوتر اقدام شود.(دشواري در نصب هاي تعداد بالا) 3.قفلهاي اكتيو ايكس ممكن است با فرمت كردن ، پارتيشن بندي تعغير يابد كه نميتواند شركت دقيقا حدس بزند كه اين قفل براي اين سيستم بوده يا واقعا تعغير كرده . در اكثر قفلهاي ساخته شده تعغيرات اين كد بسيار مشاهده شده است. 4. با صدمه ديدن قطعه اي در كامپيوتر و يا تعويض يك قطعه برنامه تصور ميكند كه سيتسم تعغير يافته است مثلا با تعغير حافظه سيستم. نقاط قوت: 1- امنيت بالا براي برنامه نويس از نظر كپي برداري با تعداد بالا. 2- داراي بيشترين امنيت نسبت به ساير قفلهاي نرم افزاي يا سي دي 3- سازگاري بسيار بالا نسبت به ساير قفلهاي نرم افزاري. 4- قابليت آمار گيري فروش برنامه توسط شركت ارائه كننده كد معادل نحــوه ايجاد قفل براي برنامه نويسان ويژوال بيسيك: اول اينكه اين برنامه بايد بصورت اكتيو ايكس توليد شود كه بتوان از آن به سادگي استفاده نمود. قدم اول براي توليد آن اين است كه برنامه قبل از فرم اصلي بار شود. قدم دوم ارائه يك كد توليد شده براي سيستم است اين بخش تقريبا هسته برنامه را تشكيل ميدهد بنابراين در مورد اين قسمت توضيحات بيشتري ارائه ميكنم كدي كه اكتيو ايكس براي يك كامپيوتر خاص توليد ميكند بايد منحصر بفرد باشد يعني نبايد در سيستمهاي ديگر مشابه آن پيدا شود همچنين مهمترين نكته اي كه بايد براي توليد اين كد در نظر گرفته شود اين است كه با تعغيرات كوچك درون سيستم تغيير نكند بدين منظور ميتوان آن را به قسمتهاي مختلف كامپيوتر بنا بر نوع انتظار قفل تغيير دهيم مثلا به شماره سريال هارد يا مثلا به مقدار حافظه سيستم يا به نوع كارت گرافيكي و... و يا به مجموع آنها وابسته كنيم. بسياري سوال كردند در ويژوال بيسيك چگونه ميتوان شماره سريال هارد را بدست آورد؟ براي اين منظور ميتوان از API ها استفاده نمود. يك API خوب براي اين منظور GetVolumeInformation است قدم سوم ايجاد كد مكمل است . بصورتهاي گوناگون ميتوان براي كد توليد شده كد مكمل ايجاد كرد اولين روش استفاده كه ساده ترين است استفاده از يك فرمول است مثلا يك مثال ساده اين است كه اگر كد توليد شده 15663 بود برنامه با جمع كردن اعداد زوج و فرد اين عدد و تقسم نمودن و ضرب در 5586 يك كد توليد كند ايراد اينگونه روشها در قابل كشف بودن كد ميباشد مگر اينكه واقعا يك رياضيدان باشيد. روش ديگر توليد كد هاي تصادفي مثلا در ويژوال بيسيك بوسيله Randomize Timer و تشكيل يك بانك اطلاعاتي است كه كد معادل و كد ارايه شده براي همه آنها را در آوريم اين روش بسيار اطمينان بخش تر است. ديگر تمام است بسادگي يك قفل حرفه اي ساخته ايم . آنهم با ساده ترين زبان دنيا ويژوال بيسيك اگر آن را با برنامه هاي ديگر توليد كنيد كه ديگر محشر است ! با كمي رنگ و لعاب دادن به اكتيو ايكس خودمان و توليد همان پايگاه داده و تعيين پارامترهاي گوناگون مثلا محدود كردن در تعداد ، نوع وابستگي و ... براي برنامه خود ، حتي ميتوانيم آن را بفروش برسانيم !