لینک دانلود و خرید پایین توضیحات
دسته بندی : وورد
نوع فایل : word (..doc) ( قابل ويرايش و آماده پرينت )
تعداد صفحه : 35 صفحه
قسمتی از متن word (..doc) :
2
چكيده
با توجه به فزوني نرم افزار در سيستم هاي كامپيوتري از يك طرف و توانايي كنترل كپي هاي غيرمجاز ( از ديدگاه اقتصادي آن ) از طرفي ديگر دليلي محكم جهت بررسي اين شاخه از مهندسي نرم افزار مي باشد.
از آنجا كه متاسفانه قانون Copyright در تمام جهان بجز ايران و چند كشور ديگر اجرا مي گردد, بحث كنترل كپي هاي غيرمجاز حساس تر مي شود. در اين مقاله سعي بر اين است تا علاوه بر آشنايي با انواع قفل هاي نرم افزاري و اختلاف آن ها با قفل هاي سخت افزاري, بتوانيم به عنوان طراح يك قفل نرم افزاري از محصولات نرم افزاري خودمان حمايت كنيم. ضمنا علاوه بر آشنايي با مفاهيم فوق, نوشتن روتين هاي ضد ديباگ و همچنين نحوه كد كردن اطلات نيز لحاظ شده است.
مقدمه
از آنجا كه زمان زيادي تا سال 2000 باقي نمانده, اما هنوز در كشور ما ايران, نرم افزار جاي خود را به عنوان يك محصول صادراتي پيدا نكرده چرا كه يكي از دلايل اصلي آن عدم توجه جدي به حمايت از توليد كنندگان نرم افزار مي باشد. به هر حال قصد اينجانب از ارائه مقاله, بررسي كم و كاستي هاي نرم افزار در ايران نيست بلكه طريقه حل مشكل موجود در اين بازار نابسامان مي باشد. با توجه به كپي هاي غيرمجازي كه روزانه بصورت كاملا عادي و بدون اطلاع سازنده آن صورت مي گيرد, جلوگيري از اين عمل و كنترل جدي آن امري ضروري و واجب بنظر مي رسد.
آشنايي با قفل هاي نرم افزاري و سخت افزاري
تعريف قفل هاي نرم افزاري: به هر برنامه اي كه كنترل كپي آن فقط از طريق نرم افزار و بدون نياز به سخت افزار اضافي قابل انجام باشد, گويند.
تعريف قفل هاي سخت افزاري: به هر برنامه اي كه كنترل كپي آن از طريق سخت افزار اضافي قابل انجام باشد, گويند.
با توجه به تعاريف فوق مي توان به تفاوت قفل هاي سخت افزاري و نرم افزاري پي برد. قفل هاي سخت افزاري با توجه به اضافه كردن يك سخت افزار جديد به كامپيوتر ( اغلب از طريق ارتباط با پورت چاپگر ) برنامه خود را كنترل مي كنند. برنامه قبل از اجرا ابتدا با
2
توجه به مراجعه به آدرس سخت افزار نصب شده ( اضافه شده با استفاده از دستور Port) به سخت افزار مورد نظر خود مراجعه كرده و در صورت يافتن آن, تست هاي مختلف اعم از تست رمز, خواندن اطلاعات و ... مي تواند تصميم گيري نمايد. اما در قفل هاي نرم افزاري برنامه بدون نياز به سخت افزار اضافي و با كنترل رسانه ذخيره سازي مي تواند تصميم گيري كند. ضمنا لازم به توضيح است كه هدف از طراحي قفل هاي نرم افزاري/ سخت افزاري اين نيست كه هيچكس توانايي شكستن ( باز كردن ) آنرا ندارد بلكه مقصود بالا بردن سطح كنترل كپي هاي غير مجاز تا حد ممكن مي باشد. ( چرا كه مي دانيم اطلاعات همه در يك سطح نيست)
طريقه استفاده از قفل نرم افزاري در برنامه مورد نظر
با توجه به نوع كاربرد برنامه ( كوچك وقابل كپي بر روي يك ديسكت, تحت شبكه و ... ) مي توانيم از انواع روش هايي كه جهت حفاظت از نرم افزار در نظر داريم ( و متعاقبا توضيح داده خواهد شد ) استفاده كنيم. اما مساله قابل بحث اين است كه چگونه از يك قفل منتخب استفاده نمائيم؟
جواب اين سوال متغيير و وابسته به شرايط زير مي باشد:
الف: اعتقاد طراح نرم افزار به اينكه كاربر حتما بايد آنرا خريداري نمايد تا از امكانات آن مطلع گردد.
در اين حالت قفل نرم افزاري در ابتداي شروع به كار برنامه كنترل مي گردد حتي طراح مي تواند در مواقع حساس نيز قفل را مجددا كنترل كند و يا در حالتي كه طراح واقعا سخت گير باشد, مي تواند در زمان هاي مشخصي از وجود قفل اطمينان حاصل نمايد ( مثلا هر 4 ثانيه ). البته در اين حالت طراح بايد روشي را كه جهت كنترل قفل استفاده مي كند, نيز در نظر بگيرد.
ب: اعتقاد طراح نرم افزار به اين كه كاربر مي تواند از نرم افزار به عنوان نسخه نمايشي نيز استفاده كند.
طراح در اين حالت مي بايست در مكان هاي خاصي از برنامه, قفل را كنترل كند. مثلا در يك برنامه حسابداري مي توان تمام بخش هاي سيستم را آزاد گذاشته ( يعني برنامه نيازي به قفل نداشته باشد ) اما در صورتي كه كاربر مايل به استفاده از
4
امكانات گزارشگيري سيستم باشد, قفل نرم افزاري در خواست گردد. مزيت اين روش بر روش قبلي اين است كه ديگر نياز به طراحي نسخه نمايشي جهت مشاهده كاربران وجود ندارد.
آشنايي با نحوه قفل گذاري بر روي يك برنامه
الف: طراح به سورس برنامه دسترسي دارد.
در اين حالت طراح پس از انتخاب روش قفل گذاري, كافيست آنرا به زبان مورد نظر خود پياده سازي نموده و در برنامه خود بگنجاند. ( كه مكان هاي قرار دادن قفل در عنوان قبلي توضيح داده شد) .
ب: طراح ( مجري پروژه ) به سورس برنامه دسترسي ندارد.
گاهي اوقات به يكسري برنامه هاي ارزشمندي برخورد مي كنيم كه فاقد قفل هستند, بنابراين نياز به قفل گذاري وجود دارد. ( البته اين حالت بيشتر در كشور ما و چند كشور ديگر كه در آن ها قانون Copyright معني ندارد, كاربرد دارد. ) جهت تزريق قفل به اين گونه برنامه ها, نياز به آشنايي كامل به ساختار فايل هاي اجرايي (EXE, COM, SYS, …) وجود دارد چرا كه بايد برنامه اي طراحي كنيم تا همانند يك ويروس كامپيوتري به فايل اجرايي مشخصي بچسبد. البته جهت اينكار بهترين زبان برنامه نويسي, اسمبلي مي باشد. ( بدليل توانايي دخالت در روند اجراي برنامه )
البته در رابطه با نحوه نوشتن اين گونه برنامه ها, روش هاي زيادي وجود دارد كه خود بحثي مجزا را مي طلبد و از حوصله اين مقاله خارج است.
ضمنا براي بالا بردن سطح امنيت برنامه لازم است تا يكسري كد هاي ضد ديباگ در برنامه گنجانده شوند. كدهاي ضد ديباگ, دستوراتي به زبان اسمبلي هستند كه در حالت اجراي عادي برنامه, هيچ تغييري در روند اجراي نمي گذارند بلكه در صورتي كه برنامه توسط ديباگرها اجرا گردد ( مورد ارزيابي قرار گيرد ) بتواند از اجراي آن جلوگيري نمايد. با اضافه كردن كد هاي ضد ديباگ به ابتداي برنامه ( يا قبل از كنترل قفل ) مي توان احتمال قفل با استفاده از موقعيت فايل روي هارد ديسك
اين نوع قفل فقط بر روي هارد ديسك قابل استفاده بوده و به اين صورت است كه فايل اجرايي به موقعيت خود بر روي هارد حساس مي باشد چرا كه قبل از اجرا ابتدا موقعيت خود را از روي سكتورهاي
برچسب ها:
تحقیق درباره طريقه استفاده از قفل نرم افزاري طريقه استفاده از قفل نرم افزاري دانلود تحقیق درباره طريقه استفاده از قفل نرم افزاري طريقه استفاده قفل نرم افزاري تحقیق درباره طريقه استفاده افزاري