تکنیک شکستن قفل*های نرم*افزاری
در دو مقاله قبلی با عنوان*های "تولید قفل و روش های شکستن آن" و "روش*های قفل*گذاری نرم*افزاری"، از چهار نوع قفلی که مطرح کردیم به دو نوع قفل های سخت افزاری و نرم افزاری پرداختیم. در این مقاله می پردازیم به قفل های CD، DVD و قفل های اینترنتی و در انتها تکنیک های شکستن قفل را مطرح می کنیم.
ج- قفل های روی CD
با متداول شدن CD و یا لوح فشرده به عنوان بهترین، ارزان ترین و آسان ترین روش مبادله و تکثیر اطلاعات، نیاز به حفاظت از آن در برابر تکثیر غیرمجاز هر چه بیشتر احساس شد.
روش های قفل گذاری روی CD
1- یک روش قفل گذاری اجرای برنامه از روی CD است. در این حالت برنامه هنگام اجرا، به CD رجوع کرده و نقاط خاصی از آن را چک می کند. این نقاط بخش هایی هستند که به صورت فیزیکی علامت گذاری شده اند و در واقع به نوعی صدمه دیده اند و معمولاً این خرابی با تابش اشعه لیزر انجام می شود. به این ترتیب نقاط معینی از CD به اصطلاح لیزر سوز می شود.این نقطه یا نقاط، به عنوان قفل CD عمل می کند و از عمل تکثیر یا کپی برداری و همچنین استفاده غیر مجاز از آن جلوگیری به عمل می آورد.
2- قفل های حجمی: در این روش فایل های CD را به حدود چند گیگا بایت افزایش می دهند که امکان کپی شدن روی هارد را نداشته باشند. یکی از ساده ترین و عمومی ترین روش هایی که تاکنون برای حفاظت از CD دیده شده، افزایش مجازی طول چند فایل درون CD است به نحوی که آنها تا چند صد مگا بایت به نظرمی رسند. برای انجام چنین کاری تنظیمات مربوط به طول آن فایل را در Image بر روی هم قرار می دهند ولی برنامه حجم واقعی هر فایل رامی داند و عمل خواندن را تا آن لحظه انجام می دهد. بنابراین برنامه به خوبی کار می کند.
3- یکی از روش های نادر برای حفاظت از CDها کنترل بر روی درایو CD است. از این روش بیشتر در حفاظ بازی های استفاده می شود نحوه ایجاد آن به دانش بالایی نیاز دارد. روش آن چنین است که اطلاعاتی نادرست (عمدی) در قسمت ECC (تصحیح خطا) یک سکتور داده نوشته می شود. CD نویس های استاندارد به صورت خودکار این خطاها را هنگام نوشتن تصحیح می کنند. هنگام خواندن برنامه سکتور داده را به صورت RAW و بدون تصحیح خطا در حافظه برای تطبیق با داده های اصلی بار می کند و در صورت تناقض با داده های اصلی، برنامه اجرا نمی شود.
4- متداول ترین روشی که برای محافظت از CD دیده می شود، ایجاد فاصله هایی (gaps) غیراستاندارد ما بین تراک های صوتی و قرار دادن اندیس ها در مکان هایی دور از انتظار است. CD که با این روش قفل گذاری می شود در بسیاری موارد توسط نرم افزارهای کپی برداری معمولی و CDنویس هایی که از Discatonce پشتیبانی نمی کنند غیرقابل کپی برداری است ولی با پیشرفت تکنولوژی، این روش نیز به سرعت در حال کناره گیری است.
5- امروزه قرار دادن فاصله خالی یا سوراخ گذاری بر روی CD متداول شده است. به این ترتیب بسیاری از برنامه ها که قصد خواندن یک تراک از ابتدا تا انتها را دارند با مشکل مواجه می شوند.
6- با استفاده از دستکاری TOC سی دی. یک قفل ساز سعی دارد با دستکاری TOC اطلاعاتی دروغین را به CD پیوند بزند. TOC در واقع اولین تراک از CD است که اطلاعات CD مثل اندازه فایل ها بر روی CD، چگونگی قرار گرفتن آنها و غیره را در خود نگهداری می کند.
د- قفل های اینترنتی
در این روش، نرم افزار به یک سایت در شبکه اینترنت وصل می شود و در صورت تایید کاربر توسط آن سایت، اجازه کار با نرم افزار به کاربر داده می شود. این قفل ها در صورتی که به درستی استفاده شوند دارای امنیت بالا و قیمت ارزان هستند . شکستن اینگونه قفل ها بسیار مشکل است. البته به شرط آنکه از آن ها به درستی استفاده شود. یکی دیگر از قابلیت های اینگونه قفل ها توانایی شناسایی کاربر می باشد. تولید کننده نرم افزار می تواند علاوه بر نام کاربر، اطلاعات شناسایی دیگری مانند نام کاربر، سن، پست الکترونیکی و غیره را دریافت کند، همچنین فروش آنلاین نرم افزار به هر جای دنیا به راحتی امکان پذیر است.
تکنیک های شکستن قفل نرم افزار
1- تغییر JMP: بعضی از نرم افزارها طوری نوشته می شوند تا فقط در صورت واردشدن شماره سریال صحیح، برنامه به مرحله بعد برود و در غیر این صورت در همان مرحله بماند و یا از برنامه خارج شود. وقتی این نوع برنامه به کد اسمبلی تبدیل می شود، در کد اسمبلی دو دستور JMP داریم که یکی از آنها در صورت مساوی بودن عدد وارد شده با شماره سریال صحیح رخ می دهد و دیگری در صورت وارد شماره سریال اشتباه. حال اگر جای این دو JMP عوض شود، نرم افزار با هر عدد به جز شماره سریال اصلی از آن مرحله خواهد گذشت. بنابراین در این روش قفل شکن بدون پی بردن به شماره سریال صحیح تشخیص داده شود.
2- یافتن شماره سریال از داخل کد برنامه: در این روش وقتی یک شماره سریال توسط کاربر وارد شد، نرم افزار باید آن را به شماره سریال صحیح مقایسه کند تا به صحت یا اشتباه بودن آن پی ببرد. بنابراین در لحظه مقایسه، شماره سریال صحیح می بایست در جایی به طور موقیت ذخیره شود تا امکان مقایسه ایجاد شود. این مکان موقتی می تواند محل خاصی از RAM یا جایی در هارد دیسک و یا در رجیسترهای داخلی پردازشگر باشد. قفل شکنان حرفه ای قادرند بااستفاده از نرم افزارهایی که هر نوع تغییر در RAM و هارد دیسک و غیره را ثبت می کنند، شماره سریال واقعی را بیابند.
3- Brute force attack: در این روش قفل شکنان برنامه ای را می نویسند که بتوانند تمامی حالت های ممکن یک شماره سریال را وارد نرم افزار کرده و بالاخره شماره سریال واقعی را بیابد. البته استفاده از این روش ممکن است چند روز و یا بیشتر طول بکشد.
4- کد رجیستر کردن (Registration Code) قفل شکنان برای کد رجیستر کردن توسط نرم افزاری debugger مکان محاسبه کد از روی نام استفاده کننده را پیدا می کنند و به رابطه ریاضی بین این دو پی می برند.
5- محدودیت زمانی Time trial: قفل شکنان برای از کار انداختن محدودیت زمانی از دو روش استفاده می کنند: یا روتین های چک کردن زمان را در برنامه پیدا کرده، آن را غیر فعال می کنند و یا زمان را طوری تغییر می دهند تا نرم افزار به تمام شدن دوره زمانی از پیش تعیین شده، پی نبرد. برای این کار معمولا برنامه ای می نویسند تا قبل از اجرای نرم افزار اصلی، زمان کامپیوتر را تغییر دهد.
علاقه مندی ها (بوک مارک ها)