تکنیک شکستن قفلهای نرمافزاری
ارسال شده: 10 آگوست 2010 15:30
[JUSTIFY][BLOCKQUOTE] تکنیک شکستن قفلهای نرمافزاری
در دو مقاله قبلی با عنوانهای "تولید قفل و روش های شکستن آن" و "روشهای قفلگذاری نرمافزاری"،از چهار نوع قفلی که مطرح کردیم به دو نوع قفل های سخت افزاری و نرمافزاری پرداختیم. در این مقاله می پردازیم به قفل های CD، DVD و قفل هایاینترنتی و در انتها تکنیک های شکستن قفل را مطرح می کنیم.
ج- قفل های روی CD
با متداول شدن CD و یا لوح فشرده به عنوان بهترین، ارزان ترین و آسان ترینروش مبادله و تکثیر اطلاعات، نیاز به حفاظت از آن در برابر تکثیر غیرمجازهر چه بیشتر احساس شد.
روش های قفل گذاری روی CD
[B]1- [/B]یک روش قفل گذاری اجرای برنامه از روی CD است. در اینحالت برنامه هنگام اجرا، به CD رجوع کرده و نقاط خاصی از آن را چک می کند.این نقاط بخش هایی هستند که به صورت فیزیکی علامت گذاری شده اند و در واقعبه نوعی صدمه دیده اند و معمولاً این خرابی با تابش اشعه لیزر انجام میشود. به این ترتیب نقاط معینی از CD به اصطلاح لیزر سوز می شود.این نقطهیا نقاط، به عنوان قفل CD عمل می کند و از عمل تکثیر یا کپی برداری وهمچنین استفاده غیر مجاز از آن جلوگیری به عمل می آورد.
[B]2-[/B] قفل های حجمی: در این روش فایل های CD را به حدود چندگیگا بایت افزایش می دهند که امکان کپی شدن روی هارد را نداشته باشند. یکیاز ساده ترین و عمومی ترین روش هایی که تاکنون برای حفاظت از CD دیده شده،افزایش مجازی طول چند فایل درون CD است به نحوی که آنها تا چند صد مگابایت به نظرمی رسند. برای انجام چنین کاری تنظیمات مربوط به طول آن فایلرا در Image بر روی هم قرار می دهند ولی برنامه حجم واقعی هر فایل رامیداند و عمل خواندن را تا آن لحظه انجام می دهد. بنابراین برنامه به خوبیکار می کند.
[B]3- [/B]یکی از روش های نادر برای حفاظت از CDها کنترل بر رویدرایو CD است. از این روش بیشتر در حفاظ بازی های استفاده می شود نحوهایجاد آن به دانش بالایی نیاز دارد. روش آن چنین است که اطلاعاتی نادرست(عمدی) در قسمت ECC (تصحیح خطا) یک سکتور داده نوشته می شود. CD نویس هایاستاندارد به صورت خودکار این خطاها را هنگام نوشتن تصحیح می کنند. هنگامخواندن برنامه سکتور داده را به صورت RAW و بدون تصحیح خطا در حافظه برایتطبیق با داده های اصلی بار می کند و در صورت تناقض با داده های اصلی،برنامه اجرا نمی شود.
[B]4- [/B]متداول ترین روشی که برای محافظت از CD دیده می شود،ایجاد فاصله هایی (gaps) غیراستاندارد ما بین تراک های صوتی و قرار دادناندیس ها در مکان هایی دور از انتظار است. CD که با این روش قفل گذاری میشود در بسیاری موارد توسط نرم افزارهای کپی برداری معمولی و CDنویس هاییکه از Discatonce پشتیبانی نمی کنند غیرقابل کپی برداری است ولی با پیشرفتتکنولوژی، این روش نیز به سرعت در حال کناره گیری است.
[B]5-[/B] امروزه قرار دادن فاصله خالی یا سوراخ گذاری بر روی CDمتداول شده است. به این ترتیب بسیاری از برنامه ها که قصد خواندن یک تراکاز ابتدا تا انتها را دارند با مشکل مواجه می شوند.
[B]6- [/B]با استفاده از دستکاری 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: قفل شکنان برای از کار انداختنمحدودیت زمانی از دو روش استفاده می کنند: یا روتین های چک کردن زمان رادر برنامه پیدا کرده، آن را غیر فعال می کنند و یا زمان را طوری تغییر میدهند تا نرم افزار به تمام شدن دوره زمانی از پیش تعیین شده، پی نبرد.برای این کار معمولا برنامه ای می نویسند تا قبل از اجرای نرم افزار اصلی،زمان کامپیوتر را تغییر دهد.
نویسنده: هانیه کارخانه/کارشناس مرکز پدافند غیرعامل [/BLOCKQUOTE]
[/JUSTIFY]
در دو مقاله قبلی با عنوانهای "تولید قفل و روش های شکستن آن" و "روشهای قفلگذاری نرمافزاری"،از چهار نوع قفلی که مطرح کردیم به دو نوع قفل های سخت افزاری و نرمافزاری پرداختیم. در این مقاله می پردازیم به قفل های CD، DVD و قفل هایاینترنتی و در انتها تکنیک های شکستن قفل را مطرح می کنیم.
ج- قفل های روی CD
با متداول شدن CD و یا لوح فشرده به عنوان بهترین، ارزان ترین و آسان ترینروش مبادله و تکثیر اطلاعات، نیاز به حفاظت از آن در برابر تکثیر غیرمجازهر چه بیشتر احساس شد.
روش های قفل گذاری روی CD
[B]1- [/B]یک روش قفل گذاری اجرای برنامه از روی CD است. در اینحالت برنامه هنگام اجرا، به CD رجوع کرده و نقاط خاصی از آن را چک می کند.این نقاط بخش هایی هستند که به صورت فیزیکی علامت گذاری شده اند و در واقعبه نوعی صدمه دیده اند و معمولاً این خرابی با تابش اشعه لیزر انجام میشود. به این ترتیب نقاط معینی از CD به اصطلاح لیزر سوز می شود.این نقطهیا نقاط، به عنوان قفل CD عمل می کند و از عمل تکثیر یا کپی برداری وهمچنین استفاده غیر مجاز از آن جلوگیری به عمل می آورد.
[B]2-[/B] قفل های حجمی: در این روش فایل های CD را به حدود چندگیگا بایت افزایش می دهند که امکان کپی شدن روی هارد را نداشته باشند. یکیاز ساده ترین و عمومی ترین روش هایی که تاکنون برای حفاظت از CD دیده شده،افزایش مجازی طول چند فایل درون CD است به نحوی که آنها تا چند صد مگابایت به نظرمی رسند. برای انجام چنین کاری تنظیمات مربوط به طول آن فایلرا در Image بر روی هم قرار می دهند ولی برنامه حجم واقعی هر فایل رامیداند و عمل خواندن را تا آن لحظه انجام می دهد. بنابراین برنامه به خوبیکار می کند.
[B]3- [/B]یکی از روش های نادر برای حفاظت از CDها کنترل بر رویدرایو CD است. از این روش بیشتر در حفاظ بازی های استفاده می شود نحوهایجاد آن به دانش بالایی نیاز دارد. روش آن چنین است که اطلاعاتی نادرست(عمدی) در قسمت ECC (تصحیح خطا) یک سکتور داده نوشته می شود. CD نویس هایاستاندارد به صورت خودکار این خطاها را هنگام نوشتن تصحیح می کنند. هنگامخواندن برنامه سکتور داده را به صورت RAW و بدون تصحیح خطا در حافظه برایتطبیق با داده های اصلی بار می کند و در صورت تناقض با داده های اصلی،برنامه اجرا نمی شود.
[B]4- [/B]متداول ترین روشی که برای محافظت از CD دیده می شود،ایجاد فاصله هایی (gaps) غیراستاندارد ما بین تراک های صوتی و قرار دادناندیس ها در مکان هایی دور از انتظار است. CD که با این روش قفل گذاری میشود در بسیاری موارد توسط نرم افزارهای کپی برداری معمولی و CDنویس هاییکه از Discatonce پشتیبانی نمی کنند غیرقابل کپی برداری است ولی با پیشرفتتکنولوژی، این روش نیز به سرعت در حال کناره گیری است.
[B]5-[/B] امروزه قرار دادن فاصله خالی یا سوراخ گذاری بر روی CDمتداول شده است. به این ترتیب بسیاری از برنامه ها که قصد خواندن یک تراکاز ابتدا تا انتها را دارند با مشکل مواجه می شوند.
[B]6- [/B]با استفاده از دستکاری 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: قفل شکنان برای از کار انداختنمحدودیت زمانی از دو روش استفاده می کنند: یا روتین های چک کردن زمان رادر برنامه پیدا کرده، آن را غیر فعال می کنند و یا زمان را طوری تغییر میدهند تا نرم افزار به تمام شدن دوره زمانی از پیش تعیین شده، پی نبرد.برای این کار معمولا برنامه ای می نویسند تا قبل از اجرای نرم افزار اصلی،زمان کامپیوتر را تغییر دهد.
نویسنده: هانیه کارخانه/کارشناس مرکز پدافند غیرعامل [/BLOCKQUOTE]
[/JUSTIFY]