日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

評估Vista內(nèi)核模式的安全性( 二 )


一個典型的Boot Manager的BCD配置文件如下:
Windows Boot Manager
Identifier: {bootmgr}
Type: 10100002
Device: partition=C:
Description: Windows Boot Manager
Locale: en-US
Inherit options: {globalsettings}
Boot debugger: No
Pre-boot EMS Enabled: No
Default: {current}
Resume application: {3ced334e-a0a5-11da-8c2b-cbb6baaeea6d}
Display order: {current}
Timeout: 30
如果只有一個啟動入口在BCD文件內(nèi),啟動管理器會直接從該入口啟動 。如果多于一個啟動入口,Boot Manager會給用戶一個可選擇的列表,并提示用戶選擇啟動那個OS 。如果啟動階段激活了日志記錄,啟動管理器會把狀態(tài)信息寫入%SystemDrive%/Boot/bootstat.dat文件內(nèi)(通過BmpInitializeBootStatusDataLog) 。緊接著啟動管理器會使用BlResourceFindHtml把bootmgr.xsl定位在資源節(jié)點,而后把它傳給BlXmiInitialize 。bootmgr.xsl文件控制啟動菜單和位于啟動菜單的選項 。
如果啟動列表的某個條目被選擇,跟隨BmpTransferExecution之后,將使用BmpLaunchBootEntry對該條目進(jìn)行加載 。BmpTransferExecution將重新找回啟動選項(通過BlGetBootOptionString)并把他們交給BlImgLoadBootApplication 。如果FVE(Full Volume Encryption)被激活,BlFveSecureBootUnlockBootDevice和 BlFveSecureBootCheckpointBootApp將被調(diào)用 。由于Windows分區(qū)被加密,必須在把控制權(quán)交給Vista OS Loader前對分區(qū)進(jìn)行解密 。
最后,Boot Manager調(diào)用BlImgStartBootApplication把控制權(quán)交給Vista OS Loader 。

B、;;;;Windows Vista OS Loader (階段2)
bootmgr調(diào)用了位于%SystemRoot%/System32/WINLOAD.EXE下的Vista OS Loader 。WINLOAD.EXE替換了NTLDR(Windows NT OS Loader),該小節(jié)的最后部分,會引用WINLOAD.EXE在開始入口點(OslMain)的指令 。
A typical BCD entry for the Windows Vista OS Loader looks like this:
一個典型的Vista OS Loader的BCD入口配置文件如下:
Windows Boot Loader
Identifier: {current}
Type: 10200003
Device: partition=C:
SYMANTEC ADVANCED THREAT RESEARCH 3
Path: /Windows/system32/WINLOAD.EXE
Description: Microsoft Windows
Locale: en-US
Inherit options: {bootloadersettings}
Boot debugger: No
Pre-boot EMS Enabled: No
Advanced options: No
Options editor: No
Windows device: partition=C:
Windows root: /Windows
Resume application: {3ced334e-a0a5-11da-8c2b-cbb6baaeea6d}
No Execute policy: OptIn
Detect HAL: No
No integrity checks: No
Disable boot display: No
Boot processor only: No
Firmware PCI settings: No
Log initialization: No
OS boot information: No
Kernel debugger: No
HAL breakpoint: No
EMS enabled in OS: No

執(zhí)行從OslMain開始 。它重用了與bootmgr階段相同的代碼,因此InitializeLibrary在bootmgr內(nèi)的工作原理與在WINLOAD.EXE內(nèi)的工作原理相似 。在InitializeLibrary之后,控制權(quán)交給OslMain 。
如果啟動狀態(tài)日志記錄被激活,WINLOAD.EXE將會把結(jié)果寫入%SystemDrive%/Boot/bootstat.dat (通過 OslpInitializeBootStatusDataLog和OslpSetBootStatusData) 。接下來WINLOAD.EXE調(diào)用OslDisplayInitialize,并使用BlResourceFindHtml定位osloader.xsl所在的資源節(jié)點 ??刂茩?quán)轉(zhuǎn)交給BlXmiInitialize 。在系統(tǒng)啟動過程中osloader.xsl控制著高級啟動選項 。在操作完高級啟動選項(使用OslDisplayAdvancedOptionsProcess),WINLOAD.EXE現(xiàn)在就準(zhǔn)備開始啟動 。啟動階段首先會使用BlDeviceOpen打開啟動設(shè)備 。根據(jù)設(shè)備類型,BlDeviceOpen會使用不同的設(shè)備函數(shù)集來打開設(shè)備 。
For Full Volume Encryption (_FvebDeviceFunctionTable) these are:
dd 0 ; FVE has no EnumerateDeviceClass callback
dd offset _FvebOpen@8 ; FvebOpen(x,x)
dd offset _FvebClose@4 ; FvebClose(x)
dd offset _FvebRead@16 ; FvebRead(x,x,x,x)
dd offset _FvebWrite@16 ; FvebWrite(x,x,x,x)
dd offset _FvebGetInformation@8 ; FvebGetInformation(x,x)
dd offset _FvebSetInformation@8 ; FvebSetInformation(x,x)
dd offset _FvebReset@4 ; FvebReset(x)
For block I/O (_BlockIoDeviceFunctionTable) these are:

推薦閱讀