این مطلب یک نسخه بهروز شده از یک مطلب قدیمی وبلاگ کرمهای کامپیوتر هست. البته هدف ما هیچ وقت خرابکاری و خصوصا آموزش آن نبوده و نیست. در این مورد نیز سیستم هایی که از نرمافزار های ضد خرابکاری استفاده میکنند مانع از بروز مشکل میشوند؛ به نوعی اگر مدیر سیستم به فکر تامین امنیت نبوده باشد با این حفره باید فاتحهی سیستم را بخواند!
رجیستری چیست؟
قبل از هز چیز شاید بهتر باشد کمی در مورد رجیستری توضیح دهم. رجیستری یک دیتابیس در ویندوز است که حاوی تنظیمات ویندوز است و نرم افزار های است. تنظیماتی مانند این که تصویر پسزمینه در کجا ذخیره شده، چه برنامهای مسئول نمایش دسکتاپ و فایل های شماست و … برای دسترسی به رجیستری ویندوز میتوانید از نرمافزار regedit ویندوز استفاده کنید. این نرمافزار ساختار رجیستری و داده های ذخیره شده در آن را به شما نمایش و امکان ویرایش آن ها را میدهد.
رجیستری ویندوز دارای پنج کندو یا مرکز تجمع (Registry Hive) است که در تصویر بالا نمایش داده شدهاند، یک هایو مجموعهای از کلید ها و مقادیر آن هاست که یک فایل پشتیبان دارند و در زمان ورود کاربر در رم بارگزاری میشوند. نام این هایو ها به شکل زیر خلاصه میشوند: HKCR, HKCU, HKLM, HKU, HKCC
ویندوز چطور فرمت ها را میشناسد؟
در ویندوز نوع فایل ها براساس پسوند آن ها مشخص میشود. اگر در تنظیمات مربوط به فایل و پوشه گزینه Hide extensions … را غیر فعال کنید خواهید دید که در آخر نام هر فایل پسوندی با علامت نقطه جدا شده، برای مثال پسوند فایل های متنی txt. و فایل تصاویر jpg. است.
ویندوز برای آن که بداند با هر پسوند باید چه بکند و با چه نرمافزاری آن را باز کند از رجیستری استفاده میکند. تمامی این داده های در HKCR ذخیره شدهاند. به این شکل که ابتدا پسوند فایل با علامت نقطه مشخص میشود و در مقدار Default آن نام یک کلید دیگر که حاوی اطلاعات لازم برای این فایل هست مشخص میشود. مثلا اگر در کلید jpeg. مقدار Default برابر است با jpegfile و در کلید jpegfile نام این فرمت فایل مثلا JPEG File و اطلاعات دیگری از جمله این که با چه نرمافزاری باز شود آمده.
دستور ASSOC
سالها از دوران داس(DOS) میگذرد اما این دستور همچنان در ویندوز وجود دارد. این دستور وظیفه دارد تا در رجیستری ثبت کند برای هر پسوند چه کلیدی باید استفاده شود. مثلا در مثال بالا برای jpg. کلید Default را تغییر میدهد. اگر این دستور را بدون هیچ پارامتری اجرا کنید تمام فرمت ها را نمایش میدهد و اگر هم یک پسوند در پارامتر بدید فرمت آن را نمایش میدهد:
جلوگیری از اجرای نرمافزار ها
تا اینجا دریافتید که ویندوز از رجیستری برای کسب تکلیف در مورد فایل ها استفاده میکند. فایل های اجرایی با پسوند exe. نیز از این قاعده مستثنا نیستند. بنابراین با تغییر در رجیستری و ایجاد نقص در رجیستری مربوط به فایل exe. ویندوز دیگر نمیداند با این فایل ها چه کند. این کار را می توان از طریق رجیستری و یا دستور assoc انجام داد برای مثال دستور زیر فایل اجرایی را به یک فایل ناشناس تبدیل میکند. توجه: توصیه میشود دستور زیر را در سیستم خودتان اجرا نکنید و یا در صورتی اجرا کنید که میدانید چه میکنید.
اگر خیلی مصرانه کنجکاوید نتیجهی این دستور را ببینید به این شیوه عمل کنید:
ابتدا دستور زیر را بزنید تا راه برگشت داشه باشید!
سپس نوبت به دستور خطرناک میرسد ولی توجه داشته باشید که به هیچ وجه بعد از زدن دستور پنجره cmd را نبندید و از آن خارج نشوید.
حالا میتوانید نتیجه اجرای این دستور را ببینید و زمانی که کنجکاوی شما رفع شد آن را به حالت اول بازگردانید:
در بعضی موارد دیدم که آنتیویروسها مانع این کار میشوند پس اگر این دستور عمل نکرد شاید دلیل آن فعال بودن آنتیویروس یا نبود دسترسی ادمین باشد. در مطلب بعدی در مورد چگونگی رفع مشکل در زمانی که به cmd دسترسی نداشتید خواهم نوشت.