شناخت و کار با ریجیستری
رجیستری چیست؟
رجیستری یک بانک اطلاعاتی بسیار قدرتمند است که جهت ذخیره سازی تنظیمات و تغییرات اعمال شده در نسخه های 32 بیتی Microsoft Windows شامل 95 ، 98 ، NT ، 2000 و XP بکار می رود. رجیستری شامل اطلاعات و تنظیمات برای تمام سخت افزارها ، نرم افزارها ، کاربران ، اولویت های PC و .... می باشد. هنگامی که یک کاربر تغییراتی در تنظیمات Control Panel ، انتساب فایلها ، سیاستهای امنیتی و یا برنامه های نصب شده ایجاد می کند ، این تغییرات به رجیستری منعکس شده و در آنجا ذخیره می شود.
فایلهای فیزیکی که رجیستری را آرایش می دهند ، بطور مجزا و وابسته به هم ، در نسخه ویندوز شما ذخیره شده اند. در ویندوز 95 و 98 ، رجیستری در داخل دو فایل مخفی واقع در دایرکتوری ویندوز ، به نامهای User.dat و System.dat گنجانیده شده است. در ویندوز Me ، علاوه بر آن دو فایل ، در یک فایل دیگر نیز به نام Classes.dat نیز ذخیره شده است. در صورتی که در ویندوز NT ، 2000 و XP ، فایلها بطور جداگانه در داخل دایرکتوری %SystemRoot%System32Confing قرار دارد. شما نمی توانید به طور مستقیم به این فایل ها دسترسی پیدا کنید ، بلکه باید از یک ابزار شناخته شده به نام "Registry Editor" جهت ویرایش و ایجاد تغییرات در رجیستری استفاده کنید.
ساختار رجیستری
رجیستری دارای یک ساختار مرتبه ای (hierachal) می باشد؛ هر چند که ساختمان آن پیچیده به نظر می آید ، اما همانند ساختار پوشه های روی هارد دیسک شما می باشد. شکل ظاهری "Registry Editor" مشابه Windows Explorer بوده و در آن ، ساختمان رجیستری به صورت یک ساختار درختی نمایش داده می شود.
ساختار مرتبه ای رجیستری
در ساختار رجیستری ، هر شاخه اصلی ( که با آیکن پوشه ویندوز نمایش داده شده است و کلمه اول آن HKEY می باشد) یک Hive نامیده می شود. Hiveها شامل Keyها هستند. هر Key (کلید) ، خود می تواند شامل زیر کلیدهای دیگر نیز باشد. کلیدهای دیگر رجوع کننده و یا به یک مقدار(Value) اشاره کنند. مقادیر شامل اطلاعات واقعی ذخیره شده در رجیستری می باشند. این شش شاخه عبارتند از:
· HKEY_CLASSES_ROOT :
این شاخه شامل نگاشت تمامی انجمن های فایلی جهت پشتیبانی از طرح Drag and Drop ، اطلاعات OLE ، میانبرهای ویندوز ، شکل ظاهری رابط های کاربری ویندوز و ... می باشد. در این قسمت یک زیر کلید برای هر کدام از انواع فایلی تعریف شده وجود دارد.
· HKEY_CLASSES_USER :
این شاخه به بخش HKEY_USER اختصاص داده شده به کاربری که در حال حاضر به PC وارد شده است ، ارتباط دارد و شامل اطلاعاتی از قبیل اسامی ورود ، تنظیمات Desktop و تنظیمات منوی Start می باشد.
· HKEY_LOCAL_MACHINE :
این شاخه ، شامل اطلاعات ویژه کامپیوتر درباره نوع سخت افزار ، نرم افزار و سایر اولویت های ارایه شده بر روی یک PC می باشد. اطلاعات برای تمام کاربرانی که وارد کامپیوتر شده اند (Logon کرده اند) قابل استفاده می باشد.
· HKEY_USERS :
این شاخه شامل اولویت های منحصر به فرد برای هر کاربر کامپیوتر می باشد. هر کاربر با استفاده از یک زیر کلید SID قرار گرفته در زیر شاخه اصلی ، نمایش داده می شود.
· HKEY_CURRENT_CONFIG :
این شاخه به بخشی از شاخه HKEY_LOCAL_MACHINE اختصاص داده شده برای پیکربندی جاری سخت افزار ، متصل است.
· HKEY_DYN_DATA :
این شاخه به قسمتی از شاخه HKEY_LOCAL_MACHINE برای استفاده در ابزار های Plug & Play نصب شده روی ویندوز اشاره می کند. این بخش ، پویا بوده و با اضافه و یا حذف شدن ابزارها از سیستم ، تغییر پیدا می کند.
انواع داده های رجیستری
هر مقدار رجیستری به صورت یکی از پنج نوع داده اصلی ذخیره می شود. این پنج نوع عبارتند از:
· REG_SZ (String Value) :
این نوع ، یک رشته استاندارد است که برای نمایش مقادیر متنی قابل خواندن توسط انسان بکار می رود.
"SZ" مخفف (String Zero) می باشد.
· REG_BINARY (Binary Value) :
این نوع ، مقادیر را به صورت داده های باینری خام ذخیره می کند. اکثر اطلاعات مربوط به اجزای سخت افزار بصورت داده های باینری هستند و می توانند در یک ویرایشگر بصورت هگزادسیمال نمایش داده شوند.
· REG_DWORD :
این نوع ، داده ها را با یک عدد چهار بیتی یعنی در محدوده 0 تا 42949672295 نمایش می دهد و معمولا برای مقادیر بولی بکار می رود. مثلا 0 برای غیر فعال و 1 برای فعال و ... بعلاوه ، بسیاری از پارامتر ها برای راه اندازهای ابزارها و سرویس ها ، از این نوع اند و می توانند در Regedt32 بصورت باینری ، هگزادسیمال و دسیمال و در Regedit بصورت هگزادسیمال و دسیمال نشان داده شوند.
"DWORD" مخفف جمله (Double Word) می باشد.
· REG_EXPAND_SZ (Expandable String Value) :
این نوع ، یک رشته داده ای قابل رشد است که یک رشته ، شامل یک متغییر می باشد که با فراخوانی توسط برنامه های کاربردی ، جایگزین می شود. برای مثال مقدار "%SystemRoot%" با مکان واقعی پوشه ای که شامل سیستم فایلی NT می باشد جایگزین می شود. (این نوع تنها در ویرایشگر رجیستری مربوط به ویندوز XP و یا یک نسخه پیشرفته ویرایشگر رجیستری نظیر Regedt32 قابل دسترس است).
· REG_MULTY_SZ (Multi String Value) :
این نوع ، یک رشته چند گانه است که جهت نمایش مقادیری که شامل لیست ها یا مقادیر چند گانه ای بوده و هر کدام توسط یک کاراکتر NULL از هم جدا شدهاند ، به کار می رود. ( این مقدار در ویندوز XP و یا هنگام استفاده از یک ویرایشگر رجیستری پیشرفته مثل Regedt32 ، قابل دستیابی است).
انواع دیگر داده های رجیستری که در ویرایشگرهای استاندارد رجیستری قابل دستیابی نیستند ، عبارتند از :
· REG_WORD_LITTLE_ENDIAN : یک عدد 32 بیتی با قالب Little-Endian
· REG_WORD_BIG_ENDIAN : یک عدد 32 بیتی با قالب Big-Endian
· REG_NONE : یک نوع مقدار تعریف نشده.
· REG_QWORD : یک عدد 64 بیتی.
· REG_QWORD_LITTLE_LIST : یک عدد 64 بیتی با قالب Little-Endian
· REG_RESOURCE_LIST : یک لیست منابع از راه اندازهای سخت افزاری.
· REG_LINK : یک ارتباط سمبلیک Unicode که به طور داخلی استفاده می شود. برنامه های کاربردی از این نوع استفاده نمی کنند.
ویرایش اطلاعات موجود در رجیستری :
ویرایشگر رجیستری (Regedit.exe) در اکثر نسخه های ویندوز وجود دارد ولی شما نمی توانید آن را در منوی Start و یا نقطه ای دیگر از ویندوز ببینید. این ویرایشگر شما را قادر به مشاهده ، جستجو و ویرایش کردن داده های داخل رجیستری می کند. روش های متعددی جهت اجرای ویرایشگر رجیستری وجود دارد. ساده ترین راه کلیک روی دگمه Start ، انتخاب گزینه Run ، تایپ کردن "Regedit" در قسمت Open و فشار دادن کلید OK در آنجاست. با این کار در صورتی که ویرایشگر رجیستری در ویندوز شما نصب شده باشد ، اجرا شده و پنجره ای باز می شود.
یک نسخه دیگر از ویرایشگر رجیستری به نام "Regedt32.exe" نیز وجود دارد که در ویندوز NT ، 2000 و XP قابل دسترسی می باشد. آن شامل برخی ترکیبات اضافی است که در نسخه استاندارد ویرایشگر رجیستری وجود ندارد. قابلیت این نسخه در نمایش ، تغییر و اصلاح دستورات امنیتی و همچنین ایجاد و تغییر مقادیر رشته ای توسعه یافته REG_EXPAND_SZ و REG_MULTI_SZ می باشد.
استفاده از Regedit.exe برای تغییر دادن رجیستری
همانگونه که قبلا ذکر شد در قسمت چپ پنجره Regedit یک ساختار درختی از پوشه ها و در قسمت سمت راست ، محتویات (مقادیر) پوشه انتخاب شده ، نمایش داده می شود. همانند Windows Explorer ، جهت بسط یک شاخه در نمودار درختی ، روی علامت "+" واقع در سمت چپ پوشه ها ، کلیک کرده و یا روی متن پوشه دابل کلیک نمایید. برای مشاهده محتویات یک کلید ، فقط روی آیکن کلید مربوط ، کلیک کرده و به مقادیر لیست شده در قسمت سمت راست پنجره توجه کنید. شما می توانید یک کلید یا مقدار را با انتخاب گزینه New از منوی Edit و یا با کلیک راست در قسمت سمت راست پنجره اضافه کنید.
ایجاد ، حذف و تغییر نام کلیدها و مقادیر
برای ایجاد یک کلید یا مقدار جدید ، می توانید از منوی Edit ، گزینه New را انتخاب کرده و یا در قسمت راست پنجره ، کلیک راست نموده و گزینه New را انتخاب کنید. در این صورت منویی باز می شود که از آنجا می توانید کلید جدید و یا مقدار جدید را بر اساس نوع داده مورد نظر خود ایجاد کنید.
برای تغییر دادن نام کلید ها و یا مقادیر نیز می توانید روی آن کلیک راست نموده و گزینه Rename را انتخاب کنید ، از منوی Edit ، گزینه Rename را انتخاب کنید و کلید F2 را فشار دهید.
برای حذف کردن یک کلید یا مقدار ، می توانید کلید Delete روی صفحه کلید را فشار دهید و یا روی آن کلید راست کرده و گزینه Delete را انتخاب کنید.
نکته : به خاطر داشته باشید که قبل از انجام هر گونه تغییر در رجیستری ویندوزتان ، حتما یک Backup از آن تهیه کنید. زیرا ممکن است تغییر دادن و یا حذف کردن یک تنظیم بحرانی رجیستری ، منجر به نصب دوباره سیستم عاملتان گردد.
مقدار دهی به مقادیر
هر کدام از انواع مقادیر تعریف شده در رجیستری جهت کارآیی ، نیاز به مقدار دهی دارند تا براساس مقدار انتساب شده عمل محوله را انجام دهند. برای مقدار دهی به هر کدام از انواع مقادیر (Dword ، Binary و String) از دو روش می توانید استفاده کنید :
· روی مقدار ایجاد شده دابل کلیک کنید.
· روی مقدار کلیک راست کرده و گزینه Modify را انتخاب کنید.
پس از انجام یکی از روشهای ذکر شده پنجره مقدار دهی مربوط به مقدار انتخابی نمایش داده خواهد شد. این پنجره در هر سه نوع مقدار تعریف شده برای رجیستری متفاوت می باشد. برای مقدار دهی تنها کافی است در پنجره نمایش داده شده و در محل مربوط مقدار عددی مورد نظر را وارد کرده و OK را بزنید. مقدار وارد شده ، انتساب خواهد شد.
نحوه جستجوی مقادیر و کلیدها در رجیستری
چنانچه پیدا کردن یک کلید ، مقدار و یا یک موضوع خاص در میان Hiveها و زیر کلیدهای رجیستری برایتان دشوار و خسته کننده است ، می توانید آنرا از گزینه Find واقع در منوی Edit جستجو کنید. برای اینکار در قسمت Find What عبارت مورد نظر خود را تایپ کرده و روی دگمه Find Next کلیک کنید. چنانچه عبارت مورد نظر پیدا شود ، نمایش داده خواهد شد.