Skip to main content

این مطلب یک نسخه به‌روز شده از یک مطلب قدیمی وبلاگ کرم‌های کامپیوتر هست. البته هدف ما هیچ وقت خرابکاری و خصوصا آموزش آن نبوده و نیست. در این مورد نیز سیستم هایی که از نرم‌افزار های ضد خرابکاری استفاده می‌کنند مانع از بروز مشکل می‌شوند؛ به نوعی اگر مدیر سیستم به فکر تامین امنیت نبوده باشد با این حفره باید فاتحه‌ی سیستم را بخواند!

رجیستری چیست؟

قبل از هز چیز شاید بهتر باشد کمی در مورد رجیستری توضیح دهم. رجیستری یک دیتابیس در ویندوز است که حاوی تنظیمات ویندوز است و نرم افزار های است. تنظیماتی مانند این که تصویر پس‌زمینه در کجا ذخیره شده، چه برنامه‌ای مسئول نمایش دسکتاپ و فایل های شماست و … برای دسترسی به رجیستری ویندوز می‌توانید از نرم‌افزار regedit ویندوز استفاده کنید. این نرم‌افزار ساختار رجیستری و داده های ذخیره شده در آن را به شما نمایش و امکان ویرایش آن ها را می‌دهد.

نمایی از نرم افزار regedit و کندو های آن! (Hive)

رجیستری ویندوز دارای پنج کندو یا مرکز تجمع (Registry Hive) است که در تصویر بالا نمایش داده شده‌اند، یک هایو مجموعه‌ای از کلید ها و مقادیر آن هاست که یک فایل پشتیبان دارند و در زمان ورود کاربر در رم بارگزاری می‌شوند. نام این هایو ها به شکل زیر خلاصه می‌شوند: HKCR, HKCU, HKLM, HKU, HKCC

ویندوز چطور فرمت ها را می‌شناسد؟

در ویندوز نوع فایل ها براساس پسوند آن ها مشخص می‌شود. اگر در تنظیمات مربوط به فایل و پوشه گزینه Hide extensions … را غیر فعال کنید خواهید دید که در آخر نام هر فایل پسوندی با علامت نقطه جدا شده، برای مثال پسوند فایل های متنی txt. و فایل تصاویر jpg. است.

ویندوز برای آن که بداند با هر پسوند باید چه بکند و با چه نرم‌افزاری آن را باز کند از رجیستری استفاده می‌کند. تمامی این داده های در HKCR ذخیره شده‌اند. به این شکل که ابتدا پسوند فایل با علامت نقطه مشخص می‌شود و در مقدار Default آن نام یک کلید دیگر که حاوی اطلاعات لازم برای این فایل هست مشخص می‌شود. مثلا اگر در کلید jpeg. مقدار Default برابر است با jpegfile و در کلید jpegfile نام این فرمت فایل مثلا JPEG File و اطلاعات دیگری از جمله این که با چه نرم‌افزاری باز شود آمده.

دستور ASSOC

سال ها از دوران داس می‌گذرد اما این دستور همچنان در ویندوز وجود دارد. این دستور وظیفه دارد تا در رجیستری ثبت کند برای هر پسوند چه کلیدی باید استفاده شود. مثلا در مثال بالا برای jpg. کلید Default را تغییر می‌دهد. اگر این دستور را بدون هیچ پارامتری اجرا کنید تمام فرمت ها را نمایش می‌دهد و اگر هم یک پسوند در پارامتر بدید فرمت آن را نمایش می‌دهد:

    assoc .jpg
.jpg=jpegfile

جلوگیری از اجرای نرم‌افزار ها

تا اینجا دریافتید که ویندوز از رجیستری برای کسب تکلیف در مورد فایل ها استفاده می‌کند. فایل های اجرایی با پسوند exe. نیز از این قاعده مستثنا نیستند. بنابراین با تغییر در رجیستری و ایجاد نقص در رجیستری مربوط به فایل exe. ویندوز دیگر نمی‌داند با این فایل ها چه کند. این کار را می توان از طریق رجیستری و یا دستور assoc انجام داد برای مثال دستور زیر فایل اجرایی را به یک فایل ناشناس تبدیل می‌کند. توجه: توصیه می‌شود دستور زیر را در سیستم خودتان اجرا نکنید و یا در صورتی اجرا کنید که می‌دانید چه می‌کنید.

    assco .exe=file
.exe=file

اگر خیلی مصرانه کنجکاوید نتیجه‌ی این دستور را ببینید به این شیوه عمل کنید:

ابتدا دستور زیر را بزنید تا راه برگشت داشه باشید!

    assoc .exe
.exe=exefile

سپس نوبت به دستور خطرناک می‌رسد ولی توجه داشته باشید که به هیچ وجه بعد از زدن دستور پنجره cmd را نبندید و از آن خارج نشوید.

    assoc .exe=file
.exe=file

حالا می‌توانید نتیجه اجرای این دستور را ببینید و زمانی که کنجکاوی شما رفع شد آن را به حالت اول بازگردانید:

    assoc .exe=exefile
.exe=exefile

در بعضی موارد دیدم که آنتی‌ویروس ها مانع این کار می‌شوند پس اگر این دستور عمل نکرد شاید دلیل آن فعال بودن آنتی ویروس یا نبود دسترسی ادمین باشد. در مطلب بعدی در مورد چگونگی رفع مشکل در زمانی که به cmd دسترسی نداشتید خواهم نوشت.