PDA

مشاهده نسخه کامل : آموزش گذاشتن قفل روي سي دي



!Mohammad!
30-01-08, 12:32
آموزش قفل گذاری! روی سی دی

Only the registered members can see the link


قفل‌های نرم افزاری و سخت افزاری با توجه به فزونی نرم افزار در سیستم‌های کامپیوتری از یک طرف و توانایی کنترل کپی‌های غیرمجاز از طرفی دیگر دلیلی محکم جهت بررسی این شاخه از مهندسی نرم افزار می‌باشد. از آنجا که متأسفانه قانون Copyright در تمام جهان بجز ایران و چند کشور دیگر اجرا می‌گردد. بحث کنترل کپی‌های غیرمجاز حساس‌تر می‌شود.
با توجه به کپی‌های غیرمجازی که روزانه بصورت کاملاً عادی و بدون اطلاع سازنده آن صورت می‌گیرد، جلوگیری از این عمل و کنترل جدی آن امری ضروری و واجب به نظر می‌رسد. در این مقاله درباره شناخت انواع این قفل‌ها و چگونگی اعمال آنها بر روی یک برنامه بحث خواهد شد.
تعریف قفل‌های سخت افزاری
به هر برنامه‌ای که کنترل کپی آن از طریق سخت افزار اضافی قابل انجام می‌باشد، قفل سخت افزاری گویند.

تعریف قفل‌های نرم افزاری
به هر برنامه‌ای که کنترل کپی آن فقط از طریق نرم افزار و بدون نیاز به سخت افزار اضافی قابل انجام باشد، قفل نرم افزاری گویند.
طریقه استفاده از قفل سخت افزاری
الف) روش اول قفل‌گذاری به این صورت است که تولید کننده نرم افزار یک یا چند بایت از اطلاعات را در قفل نوشته و برنامه در هنگام اجرا آن را چک می‌کند. در صورتیکه قفل وجود داشته باشد، برنامه به کار خود ادامه می‌دهد و اگر قفل وجود نداشته باشد و یا اطلاعات خوانده شده از روی قفل صحیح نباشد، برنامه متوقف شده و با اعلام خطا، از اجرای صحیح، سرباز می‌زند. این نوع قفل‌ها دارای ساختاری ساده، حافظه‌ای در حد چند بایت، و قیمتی ارزان هستند. استفاده از این قفل‌ها بسیار ساده بوده و نیاز به تخصص خاصی ندارد، تنها کافیست که نرم افزار ویژه قفل را که (توسط شرکت تولید کننده قفل ارائه شده) اجرا نمود. در ابتدا که قفل فاقد اطلاعات است، اول یک کلمه دلخواه، به عنوان کلمه عبور درخواست کرده و سپس با توجه به نوع قفل، یک یا چند کلمه اطلاعات را دریافت و در حافظه قفل ثبت کنید. در دفعات بعد می‌بایست کلمه عبوری که اولین بار ثبت شده، وارد شود تا بتوان به اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این کلمه قابل تغییر است. در هر صورت، پس از ثبت اطلاعات در قفل، تولید کننده نرم افزار، اطلاعات ثبت شده در یک برنامه را چک می‌کند که نحوه چک کردن اطلاعات، با توجه به نوع قفل متفاوت است. در بعضی فقط اطلاعات درون قفل چک می‌شود و در بعضی دیگر، در مرحله اول وجود قفل چک شده و در مرحله بعدی، اطلاعات درون آن چک می‌شود.

ب) روش دیگر قفل‌گذاری به این صورت است که تولید کننده نرم افزار، بخش کوچکی از برنامه را در حافظه قفل قرار می‌دهد. در این حالت، چنانچه قفل وجود نداشته باشد برنامه به هیچ وجه، قادر به اجرا و ادامه کار نخواهد بود. این نوع قفل‌ها دارای ساختاری کمی پیچیده، حافظه ای بعضاً تا چند کیلو بایت، و قیمتی نسبتاً گران هستند. استفاده از این قفل‌ها، به سادگی نوع قبلی نیست.
البته نحوه کلی کار مشابه روش قبلی است. با اجرای نرم افزار ویژه قفل و وارد نمودن کلمه عبور، باید نام فایلی را که می‌خواهیم بر روی آن قفل بزنیم، مشخص کنیم، تا بخشی از آن در قفل ثبت گردد. البته در بعضی دیگر از این نوع قفل‌ها، که حفاظت بیشتری را انجام می دهند، می‌بایست توسط تولید کننده نرم افزار دقیقاً کنترل شود که چه بخش‌هایی از فایل باید در قفل ثبت گردد که البته انجام این کار نیاز به تخصص و تجربه کافی دارد، چرا که بعضاً ممکن است که خطا در انجام کار، باعث بروز اشکال در برنامه تولیدی بشود. چون با این کار در واقع بخشی از برنامه در قفل ثبت می‌گردد، واضح است که هر قفل فقط برای یک نسخه از برنامه می‌تواند مورد استفاده قرار بگیرد و به همین علت کاربرد این قفل، کمتر است. ضمناً نوع دیگری از قفل‌ها هستند که از از هر دو روش فوق استفاده می‌کنند، اما طرفدار چندانی ندارند. قفل‌های سخت افزاری با توجه به اضافه کردن یک سخت افزار جدید به کامپیوتر (اغلب از طریق ارتباط با پورت چاپگر) برنامه خود را کنترل می‌کنند. برنامه قبل از اجرا ابتدا با توجه به مراجعه به آدرس سخت افزار نصب شده (اضافه شده با استفاده از دستور Port) به سخت افزار مورد نظر خود مراجعه کرده و در صورت یافتن آن، تست‌های مختلف اعم از تست رمز، خواندن اطلاعات و... می‌تواند تصمیم گیری نماید

طریقه استفاده از قفل نرم افزاری
با توجه به نوع کاربرد برنامه، اندازه، قابلیت کپی برداری از آن بر روی دیسک، تحت شبکه بودن برنامه و... می‌توانیم از انواع روش‌هایی که جهت حفاظت از نرم افزار در نظر داریم (و متعاقباً توضیح داده خواهد شد) استفاده کنیم. اما مساله قابل بحث این است که چگونه از یک قفل منتخب استفاده نمائیم؟ جواب این سوال متغیر و وابسته به شرایط زیر است می‌باشد:
الف: اعتقاد طراح نرم افزار به اینکه کاربر حتماً باید آن را خریداری نماید تا از امکانات آن مطلع گردد. در این حالت قفل نرم افزاری در ابتدای شروع به کار برنامه کنترل می‌گردد حتی طراح می‌تواند در مواقع حساس نیز قفل را مجدداً کنترل کند و یا در حالتی که طراح واقعاً سخت گیر باشد، می‌تواند در زمان های مشخصی از وجود قفل اطمینان حاصل نماید (مثلاً هر 4 ثانیه). البته در این حالت طراح باید روشی را که جهت کنترل قفل استفاده می کند، نیز در نظر بگیرد.

ب: اعتقاد طراح نرم افزار به این که کاربر می‌تواند از نرم افزار به عنوان نسخه نمایشی نیز استفاده کند. طراح در این حالت می‌بایست در مکان‌های خاصی از برنامه، قفل را کنترل کند. مثلاً در یک برنامه حسابداری می‌توان تمام بخش‌های سیستم را آزاد گذاشته (یعنی برنامه نیازی به قفل نداشته باشد) اما در صورتی که کاربر مایل به استفاده از امکانات گزارش گیری سیستم باشد، قفل نرم افزاری درخواست گردد.
مزیت این روش بر روش قبلی این است که دیگر نیاز به طراحی نسخه نمایشی جهت مشاهده کاربران وجود ندارد.

محدودیت در تعداد کپی (Copy Limited)

در این حالت برنامه نصب کننده نرم افزار، فضای مشخصی در دیسک را با روش خاصی فرمت کرده و تعداد مجاز نسخه برداری را در آن درج می‌کند. بدین طریق با هر بار کپی کردن برنامه، یک واحد از این عدد کم می‌شود و هنگامی که تعداد مجاز آن به صفر رسید، دیگر نمی‌توان برنامه را بر روی سیستم نصب نمود. حال ممکن است این سوال مطرح شود که مگر نمی‌توان پس از نصب برنامه، از آن پشتیبان (Back up) گرفته و سپس از نسخه پشتیبان نیز، بر روی سیستم دیگری استفاده نمود؟ پاسخ منفی است. زیرا هنگام نصب، اطلاعاتی راجع به سخت افزار سیستم که می‌تواند مثلاً شامل نوع قطعات و یا شماره سریال قطعات باشد، در جایی، در محدوده قفل ذخیره می‌شود و از این پس هر بار در هنگام اجرای برنامه، این اطلاعات به دقت چک می‌شود و در صورت هر گونه تغییر، برنامه اجرا نمی‌شود.
استفاده از دیسکت، در هنگام برنامه (Required Disk)

در این حالت، دیسکت مورد نظر، یا به روش خاصی فرمت می‌شود و سپس در هنگام اجرا، اطلاعات روی آن بررسی می‌شود و یا اینکه قسمتی از دیسکت را بصورت فیزیکی و عمدی خراب می‌کنند و در اینجا، در واقع همان صدمه‌ای که به عمد، بر سطح دیسکت وارد شده است، به عنوان قفل و محافظ نرم افزار عمل می‌کند. از این پس برای انتقال برنامه از یک سیستم به سیستم دیگر، این فلاپی مانند قفل سخت افزاری عمل می‌کند و می‌بایست مختصات آن توسط برنامه تایید شود و چنانچه این فلاپی در درایو نباشد، برنامه اجرا نخواهد شد.
آشنایی با نحوه قفل‌گذاری بر روی یک برنامه
الف: طراح به سورس برنامه دسترسی دارد. در این حالت طراح پس از انتخاب روش قفل گذاری، کافیست آن را به زبان مورد نظر خود پیاده سازی نموده و در برنامه خود بگنجاند.
ب: طراح (مجری پروژه) به سورس برنامه دسترسی ندارد. گاهی اوقات به یکسری برنامه‌های ارزشمندی برخورد می‌کنیم که فاقد قفل هستند، بنابراین نیاز به قفل‌گذاری وجود دارد (البته این حالت بیشتر در کشور ما و چند کشور دیگر که در آن ها قانون Copyright معنی ندارد، کاربرد دارد). جهت تزریق قفل به این گونه برنامه‌ها، نیاز به آشنایی کامل به ساختار فایل‌های اجرایی (EXEY, COM, SYS) وجود دارد چرا که باید برنامه‌ای راطراحی کنیم تا همانند یک ویروس کامپیوتری به فایل اجرایی مشخصی بچسبد. البته جهت اینکار بهترین زبان برنامه نویسی، اسمبلی می‌باشد (بدلیل توانایی دخالت در روند اجرای برنامه). ضمناً برای بالا بردن سطح امنیت برنامه لازم است تا یکسری کدهای ضد دیباگ در برنامه گنجانده شوند.

کدهای ضد دیباگ، دستوراتی به زبان اسمبلی هستند که در حالت اجرای عادی برنامه، هیچ تغییری در روند اجرائی نمی‌گذارند بلکه در صورتی که برنامه توسط دیباگرها اجرا گردد (مورد ارزیابی قرار گیرد) بتواند از اجرای آن جلوگیری نماید. با اضافه کردن کدهای ضد دیباگ به ابتدای برنامه (یا قبل از کنترل قفل) می‌توان احتمال دستکاری در برنامه را پایین آورد.
آشنایی با روش‌های قفل‌گذاری و نحوه طراحی آن‌ها
1- قفل‌گذاری با استفاده از شماره سریال اصلی دیسکت

همانطور که می‌دانید، سیستم عامل جهت هر دیسکت یک شماره سریال واحد (UNIQUE) اختصاص می‌دهد، بطوریکه شماره سریال هر دو دیسکت با هم یکی نیستند. بنابراین همین خود یک راه تشخیص دیکست کلید (قفل) می‌باشد. جهت استفاده از این قفل می‌بایست شماره سریال دیسکت را خوانده و سپس در داخل برنامه آنرا کنترل نمائیم. یک راه ساده جهت خواندن شماره سریال، اجرای دستور VOL بصورت زیر است: VOL>> C:\DOS\LCK.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% می‌باشد.
در اين قسمت دو روش ديگر قفل‌گذاري نرم افزاري و همچنين برخي از روش‌هاي قفل‌گذاري روس سي‌دي را بررسي مي‌نماييم.
5- قفل با استفاده از شماره سريال ساختگي
اين روش قفل‌گذاري که قوي‌ترين قفل مي‌باشد، بصورت مخلوطي از روش‌هاي 1 و 4 مي‌باشد(به قسمت دوم مراجعه نماييد) يعني ابتدا تراک خاصي را بصورت غير استاندارد فرمت کرده و سپس اطلاعات خاصي را درون آن قرار مي‌دهند (شماره سريال فرضي). اين قفل فقط جهت فلاپي ديسک قابل استفاده بوده و ضريب اطمينان آن حدود 98%-90% مي‌باشد.
6- قفل‌هاي اکتيو ايکس
در واقع يک اکتيو ايکس که مانع اجراي برنامه در شرايط خاصي شود را قفل اکتيو ايکس مي‌نامند. اين نوع قفل مانند ساير کامپوننت‌هاي برنامه نويسي است. برنامه نويس به سادگي آن را بر روي فرم برنامه خود قرار مي‌دهد و با تنظيم پارامترها و خصوصيات آن، سبب فعاليت آن مي‌شود. اين اکتيو ايکس قبل از قرار گرفتن فرم اصلي در حافظه، شروع به کار مي‌کند و اگر براي اولين بار اجرا مي‌شود برحسب اندازه حافظه، شماره‌ي سريال و سرعت پردازنده کد ويژه اي توليد مي‌کند اين کد توليد شده وابسته به خصوصيات کامپيوتر است بنابراين کد برگشتي اين اکتيو ايکس بر روي هر سيستمي متفاوت خواهد بود. پس از ارائه کد، کد معادل آن را از کاربر درخواست مي‌کند. کاربر با ارائه کد توليد شده به شرکت توليد کننده نرم افزار کد معادل آن را دريافت مي‌کند. اين کد را کاربر يا از طريق تلفن يا از طريق پست الکترونيکي و يا اينترنت دريافت مي‌کند در صورتيکه کد معادل دريافت شده پس از کد شدن معادل کد ارائه شده باشد يا به عبارتي ديگر کد ارائه شده از طرف کامپيوتر مکمل کد دريافت شده از شرکت باشد اکتيو ايکس اجازه مي‌دهد که برنامه بدون اشکال شروع به کار کند. کاربر نيز مي‌تواند بارها از اين کد بر روي کامپيوتر خود (کامپيوتري که کد دريافت کرده) استفاده کند. پس از ورود کد، اين کد در مکاني از سيستم مثلاً رجيستري يا يک فايل بصورت کد شده قرار مي‌گيرد و هر بار کامپيوتر برنامه را اجرا کند به جاي درخواست کد از کاربر، کد را از رجيستري يا فايل پس از کديابي مورد استفاده قرار مي‌دهد.
نقاط ضعف:
- قفل‌هاي اکتيو ايکس نياز به دريافت کد از شرکت دارند يعني اينکه بايد کاربر حتماً به نحوي با شرکت توليد کننده تماس بگيريد و نمي‌تواند برنامه را پس از خريد بلافاصله استفاده کند.
- قفل‌هاي اکتيو ايکس تنها بر روي يک سيستم اجرا مي‌شوند و بايد براي دريافت کد براي هر کامپيوتر اقدام شود (دشواري در نصب‌هاي تعداد بالا(
- قفل‌هاي اکتيو ايکس ممکن است با فرمت کردن، پارتيشن بندي تغيير يابد که نمي‌تواند شرکت دقيقاً حدس بزند که اين قفل براي اين سيستم بوده يا واقعاً تغيير کرده. در اکثر قفل‌هاي ساخته شده تغييرات اين کد بسيار مشاهده شده است.
- با صدمه ديدن قطعه‌اي در کامپيوتر و يا تعويض يک قطعه برنامه تصور مي‌کند که سيستم تغيير يافته است مثلاً با تغيير حافظه سيستم.
نقاط قوت:
- امنيت بالا براي برنامه نويس از نظر کپي برداري با تعداد بالا.
-داراي بيشترين امنيت نسبت به ساير قفل‌هاي نرم افزاري يا سي دي .
- سازگاري بسيار بالا نسبت به ساير قفل‌هاي نرم افزاري.
- قابليت آمارگيري فروش برنامه توسط شرکت ارائه کننده کد معادل قفل‌هاي CD با متداول شدن سي دي و يا لوح فشرده به عنوان بهترين، ارزان ترين و آسان ترين روش مبادله و تکثير اطلاعات نياز به حفاظت از آن در برابر تکثير غيرمجاز هر چه بيشتر احساس شد.
روش‌هاي قفل‌گذاري روي سي دي

روش‌هاي مختلفي براي قفل‌گذاري و حفاظت از اطلاعات روي CD وجود دارد که در ادامه تعدادي از آنها شرح داده مي‌شوند.

1- يک روش قفل‌گذاري اجراي برنامه از روي سي دي است. در اين حالت برنامه هنگام اجرا، به سي دي رجوع کرده و نقاط خاصي از آن را چک مي‌کند. اين نقاط بخش‌هايي هستند که به صورت فيزيکي علامت گذاري شده‌اند و در واقع به نوعي صدمه ديده‌اند و معمولاً اين خرابي با تابش اشعه ليزر انجام مي‌شود. به اين ترتيب به اصطلاح نقاط معيني از سي دي ليزرسوز مي‌شود. اين نقطه يا نقاط، به عنوان قفل سي دي عمل مي‌کند و از عمل تکثير يا کپي برداري و همچنين استفاده غيرمجاز از آن جلوگيري به عمل مي‌آورد.

2- قفل‌هاي حجمي، در اين روش فايل‌هاي CD را به حدود چند گيگا بايت افزايش مي‌دهند که امکان کپي شدن روي هارد را نداشته باشند. يکي از ساده‌ترين و عمومي‌ترين روش‌هايي که تاکنون براي حفاظت از CD ديده شده است افزايش مجازي طول چند فايل درون CD مي‌باشد به نحوي که آنها تا چند صد مگا بايت به نظر مي‌رسند. براي انجام چنين کاري تنظيمات مربوط به طول آن فايل را در Image بر روي هم قرار مي‌گيرند ولي برنامه حجم واقعي هر فايل را مي‌داند و عمل خواندن را تا آن نقطه انجام مي‌دهد. بنابراين برنامه بخوبي کار مي‌کند. اگر کاربري سعي کند که فايل‌ها را درون درايو دستگاهي کپي کند با شکست مواجه مي‌شود زيرا اين سي دي حاوي چندين گيگا بايت داده است! ولي اين روش اکنون ديگر کارايي لازم را ندارد زيرا امروزه تمام برنامه‌هاي کپي برداري ابتدا از روي سي دي Image تصويربرداري مي‌کنند.

3- يکي از روش‌هاي نادر و کمياب براي حفاظت از سي دي‌ها کنترل بر روي درايو سي دي مي‌باشد. از اين روش بيشتر در حفاظت بازي‌ها استفاده مي‌شود و نحوه ايجاد آن به دانش بالايي نياز دارد. روش آن بدين نحو است که اطلاعاتي نادرست (عمدي) در قسمت ECC (تصحيح خطا) يک سکتور داده نوشته مي‌شود. سي دي نويس‌هاي استاندارد بصورت خودکار اين خطاها راهنگام نوشتن تصحيح مي‌کنند در هنگام خواندن، برنامه سکتور داده را بصورت RAW و بدون تصحيح خطا در حافظه براي تطبيق با داده هاي اصلي بار مي‌کند و در صورت تناقض با داده‌هاي اصلي برنامه اجرا نمي‌شود.

4- متداول‌ترين روشي که براي محافظت از سي دي ديده مي‌شود. ايجاد فاصله‌هايي (gaps) غيراستاندارد ما بين تراک‌هاي صوتي و قرار دادن انديس‌ها در مکان‌هايي دور از انتظار است. سي دي که با اين روش قفل‌گذاري مي‌گردد در بسياري موارد توسط نرم افزارهاي کپي برداري معمولي و سي دي نويس‌هايي يکه از Disc at once پشتيباني نمي‌کنند غيرقابل کپي برداري است. ولي با پيشرفت تکنولوژي سي دي نويس‌ها و نرم افزارها اين روش نيز بسرعت در حال کناره‌گيري است.
5- امروزه قرار دادن فاصله خالي يا سوراخ گذاري بر روي سي دي متداول شده است. بدين نحو بسياري از برنامه‌ها که قصد خواندن يک تراک از ابتدا تا انتها را دارند با مشکل مواجه مي‌شوند.
6- با استفاده از دستکاري Toc سي دي. يک قفل ساز سعي دارد با دستکاري TOC اطلاعاتي دروغين را به سي دي پيوند بزند. Toc در واقع اولين تراک از CD مي‌باشد که اطلاعات CD مثل اندازه فايل‌ها بر روي CD، چگونگي قرار گرفتن آنها و... را در خود نگهداري مي‌کند. لازم به توضيح است که هدف از طراحي قفل‌ها نرم افزاري‌/‌سخت افزاري اين نيست که هيچکس تواناي شکستن (باز کردن) آن را ندارد. بلکه مقصود بالا بردن سطح کنترل کپي‌هاي غيرمجاز تا حد ممکن مي‌باشد. اميدواريم تا با تدوين و طراحي قانون Copyright در ايران گامي بلند در پشتيباني و حمايت از توليد کنندگان نرم افزار در کشور ما برداشته شود.

[COLOR=Red] منبع: ماهنامه رايانه