مديريت امنيت در ويندوز ويستا:BOOT.INI Is Gone, BCD Is Here
از نسخه هاي قبلي ويندوز مانند NT3.1، براي اصلاح بعضي از مواردي كه بوت شدن سيستم عامل را با مشكل مواجه مي سازد، فايل boot.ini به صورت ASCII text وجود داشت و براحتي قابل اصلاح بود. در ويندوز ويستا، كه همه چيز عوض شده، اين كار توسط فايلي به نام Boot Configuration Data كه به اختصار BCD ناميده مي شود مديريت مي شود.اين فايل در مسير boot volume كه سيستم عامل اجرا مي شود ، و در شاخه BOOT قرار دارد. اين فايل مانند بقيه منابع سيستم عامل(مانند *.EVT كه مديريت رويداد ويندوز مي باشد) كه تحت كنترل مي باشند، Lock شده است. بنابراين شما نمي توانيد در حالت معمول آنرا اصلاح نماييد و به همين دليل ابزارهاي خرابكاري و كدهاي مخرب نمي توانند آنرا اصلاح و يا خراب كند. به دنبال اصلاح اين فايل از طريق Control Panel و يا Startup and Recovery و يا از طريق منوي "To edit the startup options manually, press Edit," نباشيد زيرا اين امكانات در ويندوز ويستا وجود ندارد.
به جاي آن دستور bcdedit.exe براي اصلاح boot options وجود دارد.
BOOT.INI Review
دليل اصلاح كردن فايل Boot.ini چيست؟ زماني كه شما داراي چند سيستم عامل هستيد و يا وظيفه مشخصي را از سيستم عامل انتظار داريد و ... . در ويندوزهاي XP ,2003 مي توان به راحتي دستورات مورد نياز را در اين فايل اضافه كرد، مانند غير فعال كردن Data Execution Prevention (DEP) با اضافه كردن دستور NoExecute=AlwaysOff به فايل boot.ini. اما در مورد BCD چه طور؟
براي درك بهتر BCD،نگاهي كوتاه به فايل boot.ini روي ويندوزXP خواهيم داشت:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP x64 " /fastdetect /
NoExecute=OptOut
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP x64 w/debug" /fastdetect /
NoExecute=OptOut /DEBUG
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"
/fastdetect
اين يك boot.iniي است كه سه نمونه از سيستم عامل هاي متفاوت را در زمان بوت شدن كامپيوتر نشان ميدهد. انتخاب هايي كه مي توان در زمان بوت شدن نشان داده شود، در قسمت [operating systems] مشخص شده است.سه خطي كه بعد از اين قسمت آمده است، boot.ini entry ناميده مي شود. به عنوان مثال خط زير را در نظر بگيريد:
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP x64 " /fastdetect /
NoExecute=OptOut
اين فرمان multi(0)disk(0)partition(2)\WINDOWS، اشاره مي كند كه سيستم عامل روي پارتيشن دوم از هارد ديسك اول و در شاخه ويندوز قرار دارد.
اين فرمان با دو سوئيچ /fastdetect و /NoExecute=OptOut همراه است كه دستور اول به ويندوز اعلام مي كند براي بار گذاري سيستم عامل به دنبال دستگاه هاي سريال و يا دستگاه هاي ديگر نگردد و سوئيج /NoExecute كه حالت نرمال برايDEP مي باشد.به دليل اينكه سه سيستم عامل متفاوت وجود دارد، ، منويي در boot.ini وجود دارد كه اين سيستم عامل ها را در هر بار بوت شدن كامپيوتر نشان مي دهد.
از ديگر سوئيج ها /maxmem مي باشد كه به ويندوز شمااعلام ميكند،نبايد از ميزان مشخصي بالاتر، از حافظه دستگاه استفاده نمايد، و يا /Debug كه حالت عيب يابي سيستم را فعال مي سازد و يا /numprocs كه به سيستم عامل اعلام مي كند كه برخي از پروسس ها را در نظر نگيرد.
بالاي قسمت[operating systems]،بخش [boot loader] قرار دارد. در اين قسمت دو مشخصه وجود دارد كه شامل زمان ماندن منو انتخاب سيستم عامل و قسمت دوم مشخص كردن مقدار پيش فرض براي اين انتخاب مي باشد.
شايد اين تفكر براي شما ايجاد شود كه" هرگز چيزي به عنوان boot.ini و يا منوي انتخاب سيستم عامل روي دستگاه من وجود ندارد. " اين بدان معني است كه شما تنها يك سيستم عامل داريد.شما هيچگاه منوي براي انتخاب سيستم عامل نداريد و نوع سيستم عامل مهم نيست. اگر شما ويندوز ويستا با BCD بيشتر از يك خط داريد، منوي بوت شما با ويندوز ويستاي كه به صورت پيش فرض نصب شده متفاوت خواهد بود. Boot منو در ويستا به صورت متني مي باشد ولي يك مقدار جالب تر از boot.ini مي باشد.


منوي بالا نشان دهنده دو انتخاب مي باشد يكي "Microsoft Windows Vista," كه زماني كه ويستا نصب مي شود ساخته مي شود، و قسمت دوم "Vista without DEP," كه دستي ايجاد شده است و مراحل ايجاد آنر خواهيم ديد.
BCD Terminology
براي كار با BCD آشنايي مختصري راجع به آن لازم است. محتويات پايگاه داده BCD به نام "store" و يا "system BCD store." شناخته مي شود. Store شامل يك يا چند ورودي مي باشد كه مانند boot.ini عمل مي كند.
چطور ميتوان boot.ini را بهBCD ترجمه كرد. Store شامل سه ورودي مي باشد. علاوه بر اين ورودي ها، منوي ابزاري وجود دارد كه به صورت پيش فرض داراي يك مقدار مي باشد و آن تست حافظه مي باشد. هر ورودي شامل مقداري است كه معادل سوئيچ هاي boot.ini است مانند /NoExecute=AlwaysOff كه در اينجا به نامٍ Entry option معروف است نه به نام سوئيچ.
براي فهميدن اين ارتباط و ديدن تنظيمات كنوني از دستور bcdedit استفاده مي كنيم.
C:\Users\mark>bcdedit
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=D:
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {current}
displayorder {current}
{c0e803c8-217c-11db-8f12-0016364dab15}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Microsoft Windows Vista
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
nx OptOut
Windows Boot Loader
-------------------
identifier {c0e803c8-217c-11db-8f12-0016364dab15}
device partition=C:
path \Windows\system32\winload.exe
description Vista without DEP
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
nx AlwaysOff
توجه كنيد كه شما سه بخش در اين گزارش مي بينيد: يك بخش "Windows Boot Manager" و دو بخش
"Windows Boot Loader".
Windows Boot Manager مانند[boot loader] مي باشد و Windows Boot Loader مانند بخش
[operating systems] در boot.ini مي باشد.
تعويض منوي،زمان انتخاب سيستم عامل و امكانات ديگري براي مديريت BCD وجود دارد كه در مباحث بعدی
به آن اشاره خواهد شد.
Understanding Vista Boot Manager Identifiers
مفاهيم {default} و {c0e803c8-217c-11db-8f12-0016364dab15}به چه معنا است؟Boot Manager ويندوز، نيازمند مكانيزمي براي تشخيص سيستم عامل هاي مختلف است. ممكن است براي شناسايي به هركدام اسم مشخصي داده شود مانند "default Vista OS entry,". تنها مشكلي كه ممكن است به وجود آيد اشكال در همنام بودن اين مشخصات است كه منجر به خراب شدن ويندوز شود. به هرحال زماني كه ويستا ركوردي را براي سيستم عامل جديدي ايجاد مي كند يك عدد 128 بيتي تصادفي ايجاد كرده و آنرا به عنوان "true name." براي سيستم عامل انتخاب مي كند. حال در داخل اين ركورد سيستم عامل، قسمتي به نام "description" يا توضيح وجود دارد كه ميتوان آنرا با متن دلخواه جايگزين كرد.مانند"Vista without DEP" و از اين توضيح براي مشخص كردن سيستم عامل استفاده كرد.ولي همچنان ويندوز از عدد 128 بيتي خود به عنوان شناسه سيستم عامل استفاده مي كند.
منبع:http://www.sgnec.net/Articledet
در این پایگاه سعی بر این است که اخبار و اطلاعات جدید در باره دنیای جذاب فناوری اطلاعات و ارتباطات(ICT) قرار داده شود . متاسفانه یکی از موانع بزرگ بر سر راه ICT کشور نبود شناخت کافی از این علم و نیز اظهارنظر و فعالیت افراد غیر متخصص در سطح کلان در آن است چه بسا که این امر باعث ضربه زدن به پیکره این علم می شود.