تبلیغات
تبلیغات متنی
محبوبترینها
ماندگاری بیشتر محصولات باغ شما با این روش ساده!
بارشهای سیلآسا در راه است! آیا خانه شما آماده است؟
بارشهای سیلآسا در راه است! آیا خانه شما آماده است؟
قیمت انواع دستگاه تصفیه آب خانگی در ایران
نمایش جنگ دینامیت شو در تهران [از بیوگرافی میلاد صالح پور تا خرید بلیط]
9 روش جرم گیری ماشین لباسشویی سامسونگ برای از بین بردن بوی بد
ساندویچ پانل: بهترین گزینه برای ساخت و ساز سریع
خرید بیمه، استعلام و مقایسه انواع بیمه درمان ✅?
پروازهای مشهد به دبی چه زمانی ارزان میشوند؟
تجربه غذاهای فرانسوی در قلب پاریس بهترین رستورانها و کافهها
دلایل زنگ زدن فلزات و روش های جلوگیری از آن
صفحه اول
آرشیو مطالب
ورود/عضویت
هواشناسی
قیمت طلا سکه و ارز
قیمت خودرو
مطالب در سایت شما
تبادل لینک
ارتباط با ما
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
آمار وبسایت
تعداد کل بازدیدها :
1838104256
قفل گذاری!
واضح آرشیو وب فارسی:سایت ریسک: samanvilli20-01-2008, 12:00 AMقفلهای نرم افزاری و سخت افزاری با توجه به فزونی نرم افزار در سیستمهای کامپیوتری از یک طرف و توانایی کنترل کپیهای غیرمجاز از طرفی دیگر دلیلی محکم جهت بررسی این شاخه از مهندسی نرم افزار میباشد. از آنجا که متأسفانه قانون Copyright در تمام جهان بجز ایران و چند کشور دیگر اجرا میگردد. بحث کنترل کپیهای غیرمجاز حساستر میشود. با توجه به کپیهای غیرمجازی که روزانه بصورت کاملاً عادی و بدون اطلاع سازنده آن صورت میگیرد، جلوگیری از این عمل و کنترل جدی آن امری ضروری و واجب به نظر میرسد. در این مقاله درباره شناخت انواع این قفلها و چگونگی اعمال آنها بر روی یک برنامه بحث خواهد شد. تعریف قفلهای سخت افزاری به هر برنامهای که کنترل کپی آن از طریق سخت افزار اضافی قابل انجام میباشد، قفل سخت افزاری گویند. تعریف قفلهای نرم افزاری به هر برنامهای که کنترل کپی آن فقط از طریق نرم افزار و بدون نیاز به سخت افزار اضافی قابل انجام باشد، قفل نرم افزاری گویند. قفل گذاری! طریقه استفاده از قفل سخت افزاری بخش اصلی قفل، از یک حافظه قابل پاک شدن تشکیل شده که با توجه به نوع و حجم آن، دارای عملکردی متفاوت میباشد و عمدتاً به یکی از دو روش زیر عمل میکند: الف) روش اول قفلگذاری به این صورت است که تولید کننده نرم افزار یک یا چند بایت از اطلاعات را در قفل نوشته و برنامه در هنگام اجرا آن را چک میکند. در صورتیکه قفل وجود داشته باشد، برنامه به کار خود ادامه میدهد و اگر قفل وجود نداشته باشد و یا اطلاعات خوانده شده از روی قفل صحیح نباشد، برنامه متوقف شده و با اعلام خطا، از اجرای صحیح، سرباز میزند. این نوع قفلها دارای ساختاری ساده، حافظهای در حد چند بایت، و قیمتی ارزان هستند. استفاده از این قفلها بسیار ساده بوده و نیاز به تخصص خاصی ندارد، تنها کافیست که نرم افزار ویژه قفل را که (توسط شرکت تولید کننده قفل ارائه شده) اجرا نمود. در ابتدا که قفل فاقد اطلاعات است، اول یک کلمه دلخواه، به عنوان کلمه عبور درخواست کرده و سپس با توجه به نوع قفل، یک یا چند کلمه اطلاعات را دریافت و در حافظه قفل ثبت کنید. در دفعات بعد میبایست کلمه عبوری که اولین بار ثبت شده، وارد شود تا بتوان به اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این کلمه قابل تغییر است. در هر صورت، پس از ثبت اطلاعات در قفل، تولید کننده نرم افزار، اطلاعات ثبت شده در یک برنامه را چک میکند که نحوه چک کردن اطلاعات، با توجه به نوع قفل متفاوت است. در بعضی فقط اطلاعات درون قفل چک میشود و در بعضی دیگر، در مرحله اول وجود قفل چک شده و در مرحله بعدی، اطلاعات درون آن چک میشود. ب) روش دیگر قفلگذاری به این صورت است که تولید کننده نرم افزار، بخش کوچکی از برنامه را در حافظه قفل قرار میدهد. در این حالت، چنانچه قفل وجود نداشته باشد برنامه به هیچ وجه، قادر به اجرا و ادامه کار نخواهد بود. این نوع قفلها دارای ساختاری کمی پیچیده، حافظه ای بعضاً تا چند کیلو بایت، و قیمتی نسبتاً گران هستند. استفاده از این قفلها، به سادگی نوع قبلی نیست. البته نحوه کلی کار مشابه روش قبلی است. با اجرای نرم افزار ویژه قفل و وارد نمودن کلمه عبور، باید نام فایلی را که میخواهیم بر روی آن قفل بزنیم، مشخص کنیم، تا بخشی از آن در قفل ثبت گردد. البته در بعضی دیگر از این نوع قفلها، که حفاظت بیشتری را انجام می دهند، میبایست توسط تولید کننده نرم افزار دقیقاً کنترل شود که چه بخشهایی از فایل باید در قفل ثبت گردد که البته انجام این کار نیاز به تخصص و تجربه کافی دارد، چرا که بعضاً ممکن است که خطا در انجام کار، باعث بروز اشکال در برنامه تولیدی بشود. چون با این کار در واقع بخشی از برنامه در قفل ثبت میگردد، واضح است که هر قفل فقط برای یک نسخه از برنامه میتواند مورد استفاده قرار بگیرد و به همین علت کاربرد این قفل، کمتر است. ضمناً نوع دیگری از قفلها هستند که از از هر دو روش فوق استفاده میکنند، اما طرفدار چندانی ندارند. قفلهای سخت افزاری با توجه به اضافه کردن یک سخت افزار جدید به کامپیوتر (اغلب از طریق ارتباط با پورت چاپگر) برنامه خود را کنترل میکنند. برنامه قبل از اجرا ابتدا با توجه به مراجعه به آدرس سخت افزار نصب شده (اضافه شده با استفاده از دستور Port) به سخت افزار مورد نظر خود مراجعه کرده و در صورت یافتن آن، تستهای مختلف اعم از تست رمز، خواندن اطلاعات و... میتواند تصمیم گیری نماید. قفل گذاری! طریقه استفاده از قفل نرم افزاری با توجه به نوع کاربرد برنامه، اندازه، قابلیت کپی برداری از آن بر روی دیسک، تحت شبکه بودن برنامه و... میتوانیم از انواع روشهایی که جهت حفاظت از نرم افزار در نظر داریم (و متعاقباً توضیح داده خواهد شد) استفاده کنیم. اما مساله قابل بحث این است که چگونه از یک قفل منتخب استفاده نمائیم؟ جواب این سوال متغیر و وابسته به شرایط زیر است میباشد: الف: اعتقاد طراح نرم افزار به اینکه کاربر حتماً باید آن را خریداری نماید تا از امکانات آن مطلع گردد. در این حالت قفل نرم افزاری در ابتدای شروع به کار برنامه کنترل میگردد حتی طراح میتواند در مواقع حساس نیز قفل را مجدداً کنترل کند و یا در حالتی که طراح واقعاً سخت گیر باشد، میتواند در زمان های مشخصی از وجود قفل اطمینان حاصل نماید (مثلاً هر 4 ثانیه). البته در این حالت طراح باید روشی را که جهت کنترل قفل استفاده می کند، نیز در نظر بگیرد. ب: اعتقاد طراح نرم افزار به این که کاربر میتواند از نرم افزار به عنوان نسخه نمایشی نیز استفاده کند. طراح در این حالت میبایست در مکانهای خاصی از برنامه، قفل را کنترل کند. مثلاً در یک برنامه حسابداری میتوان تمام بخشهای سیستم را آزاد گذاشته (یعنی برنامه نیازی به قفل نداشته باشد) اما در صورتی که کاربر مایل به استفاده از امکانات گزارش گیری سیستم باشد، قفل نرم افزاری درخواست گردد. مزیت این روش بر روش قبلی این است که دیگر نیاز به طراحی نسخه نمایشی جهت مشاهده کاربران وجود ندارد. samanvilli20-01-2008, 12:01 AMمحدودیت در تعداد کپی (Copy Limited) در این حالت برنامه نصب کننده نرم افزار، فضای مشخصی در دیسک را با روش خاصی فرمت کرده و تعداد مجاز نسخه برداری را در آن درج میکند. بدین طریق با هر بار کپی کردن برنامه، یک واحد از این عدد کم میشود و هنگامی که تعداد مجاز آن به صفر رسید، دیگر نمیتوان برنامه را بر روی سیستم نصب نمود. حال ممکن است این سوال مطرح شود که مگر نمیتوان پس از نصب برنامه، از آن پشتیبان (Back up) گرفته و سپس از نسخه پشتیبان نیز، بر روی سیستم دیگری استفاده نمود؟ پاسخ منفی است. زیرا هنگام نصب، اطلاعاتی راجع به سخت افزار سیستم که میتواند مثلاً شامل نوع قطعات و یا شماره سریال قطعات باشد، در جایی، در محدوده قفل ذخیره میشود و از این پس هر بار در هنگام اجرای برنامه، این اطلاعات به دقت چک میشود و در صورت هر گونه تغییر، برنامه اجرا نمیشود. قفل گذاری استفاده از دیسکت، در هنگام برنامه (Required Disk) در این حالت، دیسکت مورد نظر، یا به روش خاصی فرمت میشود و سپس در هنگام اجرا، اطلاعات روی آن بررسی میشود و یا اینکه قسمتی از دیسکت را بصورت فیزیکی و عمدی خراب میکنند و در اینجا، در واقع همان صدمهای که به عمد، بر سطح دیسکت وارد شده است، به عنوان قفل و محافظ نرم افزار عمل میکند. از این پس برای انتقال برنامه از یک سیستم به سیستم دیگر، این فلاپی مانند قفل سخت افزاری عمل میکند و میبایست مختصات آن توسط برنامه تایید شود و چنانچه این فلاپی در درایو نباشد، برنامه اجرا نخواهد شد. آشنایی با نحوه قفلگذاری بر روی یک برنامه الف: طراح به سورس برنامه دسترسی دارد. در این حالت طراح پس از انتخاب روش قفل گذاری، کافیست آن را به زبان مورد نظر خود پیاده سازی نموده و در برنامه خود بگنجاند. ب: طراح (مجری پروژه) به سورس برنامه دسترسی ندارد. گاهی اوقات به یکسری برنامههای ارزشمندی برخورد میکنیم که فاقد قفل هستند، بنابراین نیاز به قفلگذاری وجود دارد (البته این حالت بیشتر در کشور ما و چند کشور دیگر که در آن ها قانون Copyright معنی ندارد، کاربرد دارد). جهت تزریق قفل به این گونه برنامهها، نیاز به آشنایی کامل به ساختار فایلهای اجرایی (EXEY, COM, SYS) وجود دارد چرا که باید برنامهای راطراحی کنیم تا همانند یک ویروس کامپیوتری به فایل اجرایی مشخصی بچسبد. البته جهت اینکار بهترین زبان برنامه نویسی، اسمبلی میباشد (بدلیل توانایی دخالت در روند اجرای برنامه). ضمناً برای بالا بردن سطح امنیت برنامه لازم است تا یکسری کدهای ضد دیباگ در برنامه گنجانده شوند. کدهای ضد دیباگ، دستوراتی به زبان اسمبلی هستند که در حالت اجرای عادی برنامه، هیچ تغییری در روند اجرائی نمیگذارند بلکه در صورتی که برنامه توسط دیباگرها اجرا گردد (مورد ارزیابی قرار گیرد) بتواند از اجرای آن جلوگیری نماید. با اضافه کردن کدهای ضد دیباگ به ابتدای برنامه (یا قبل از کنترل قفل) میتوان احتمال دستکاری در برنامه را پایین آورد. قفل گذاری آشنایی با روشهای قفلگذاری و نحوه طراحی آنها 1- قفلگذاری با استفاده از شماره سریال اصلی دیسکت همانطور که میدانید، سیستم عامل جهت هر دیسکت یک شماره سریال واحد (UNIQUE) اختصاص میدهد، بطوریکه شماره سریال هر دو دیسکت با هم یکی نیستند. بنابراین همین خود یک راه تشخیص دیکست کلید (قفل) میباشد. جهت استفاده از این قفل میبایست شماره سریال دیسکت را خوانده و سپس در داخل برنامه آنرا کنترل نمائیم. یک راه ساده جهت خواندن شماره سریال، اجرای دستور VOL بصورت زیر است: VOL>> C:DOSLCK.TMP بعد با باز کردن فایل LCK.TMP، میتوانیم به محتویات آن دسترسی پیدا کنیم. راه دیگر مراجعه به Boot Sector جهت کنترل قفل میباشد. ضریب اطمینان این قفل در مورد دیسکت ها، دو تا پنج درصد بوده و در رابطه با هارد دیسک پنجاه تا شصت درصد میباشد. دلیل این اختلاف این است که در حالت قفل دیسکتی با کپی Boot Sector، قفل بر روی دیسکت دیگر قرار خواهد گرفت اما در رابطه با هارد دیسک اینکار به سادگی انجام پذیر نیست. 2- قفلگذاری با استفاده از مشخصات سیستم در این نوع قفل نرم افزاری، برنامه قبل از اجرا ابتدا مشخصات سیستم را خوانده (که اینکار از طریق مراجعه به بخشهای خاصی از حافظه و یا مراجعه به اطلاعات BIOS انجام میشود). سپس آنرا با فایلی که قبلاً توسط نویسنده نرم افزار بر روی کامپیوتر کپی گردیده، مقایسه میکند و در صورت عدم برابری، اجرای برنامه پایان میپذیرد. این نوع قفل هنوز هم در بسیاری از برنامه ها استفاده میگردد، اما نکته قابل ذکر این است که جهت اطمینان بیشتر به قفل لازم است فایل حاوی مشخصات بصورت کد شده نوشته باشد تا امکان دستکاری آن توسط قفل شکنان به حداقل ممکن برسد. درصد اطمینان این نوع قفل 75%-65% میباشد. 3- قفل با استفاده از موقعیت فایل روی هارد دیسک این نوع قفل فقط بر روی هارد دیسک قابل استفاده بوده و به این صورت است که فایل اجرایی به موقعیت خود بر روی هارد حساس میباشد چرا که قبل از اجرا ابتدا موقعیت خود را از روی سکتورهای ROOT خوانده و سپس شماره کلاستر اشاره گر به خودش را بدست میآورد، سپس آنرا با شماره کلاستری که قبلاً توسط برنامه نویس بر روی یکی از فایلهای برنامه (ممکن است بصورت کد شده باشد) قرار داده شده، مقایسه کرده و در صورت برابر بودن اجرا میشود. این نوع قفل نسبت به قفل قبلی (شماره 2) استفاده کمتری داشته چرا که در صورتیکه برنامه از روی بخشی از هارد به ناحیه دیگری انتقال یابد. اجرا نخواهد شد و این از نظر کاربر بسیار ناپسند میباشد (ضمناً امکان Scandisk، Defrag و... نیز وجود ندارد چرا که شماره کلاستر اشاره گر به فایل تغییر خواهد کرد). ضریب اطمینان این نوع قفل نیز 80%-70% میباشد. 4- قفل با استفاده از فرمت غیراستاندارد این شیوه یکی از رایجترین قفلهای نرم افزاری است که هنوز هم بصورت جدی مورد استفاده قرار میگیرد. برخی از دلایل اهمیت آن عبارتند از: - امکان استفاده از روشهای متفاوت در این روش – راحتی و سرعت زیاد به هنگام استفاده آن – عدم وجود نرم افزار خاصی جهت باز کردن این نوع از قفلها همان طور که میدانیم سیستم عامل جهت دسترسی به اطلاعات یک دیسکت از فرمت خاصی (18 سکتور در هر تراک) استفاده میکند اما اگر یک تراک به صورت غیر استاندارد فرمت شود، (مثلاً 19 سکتور در تراک) سیستم عامل دیگر توانایی استفاده از سکتورهای غیرمجاز را نخواهد داشت و بنابراین تمام نرم افزارهای تحت سیستم عامل مزبور نیز از سکتورهای مخفی استفاده نکرده، در نتیجه امکان کپی برداری از آنها بسیار ضعیف است. ما نیز از همین روش جهت طراحی قفل مورد نظرمان استفاده میکنیم. بصورتیکه تراک آخر دیسک را بصورت یک سکتوری و با شماره 20 فرمت میکنیم. سپس جهت کنترل دیسکت به سکتور فوق مراجعه کرده و در صورت وجود، کنترل برنامه را پی میگیریم. البته غیر از تغییر شماره سکتور میتوان از اندازه غیرمجاز نیز استفاده کرد یعنی بجای اینکه سکتورها را بصورت 512 بایتی فرمت کنیم، از اندازه 1024، 2048 و... استفاده میکنیم. این قفل فقط جهت فلاپی دیسک قابل استفاده میباشد و درصد اطمینان در این روش حدود 95%-85% میباشد منبع: ماهنامه ي كامپيوتر سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 482]
-
گوناگون
پربازدیدترینها