评估Vista内核模式的安全性( 五 )


/Windows/system32/bootvid.dll
/Windows/system32/ci.dll
/Windows/system32/clfs.sys
/Windows/system32/hal.dll
/Windows/system32/kdcom.dll (or kd1394.sys or kdusb.dll, depending on boot options)
/Windows/system32/ntoskrnl.exe
/Windows/system32/pshed.dll
/Windows/system32/WINLOAD.EXE
/Windows/system32/drivers/ksecdd.sys
/Windows/system32/drivers/spldr.sys
/Windows/system32/drivers/tpm.sys
加载映象和验证代码完整性都在BlImgLoadPEImageEx内,都使用了SelfIntegrityCheck(在前面章节有描述)函数 。所有的映象(image)都通过代码完整性校验后,NTOSKRNL.EXE和它所有的Imports此时会被加载 。列表(版本:Build 5363)如下:
/Windows/system32/NTOSKRNL.exe
/Windows/system32/HAL.dll
/Windows/system32/PSHED.dll
/Windows/system32/BOOTVID.dll
/Windows/system32/CLFS.SYS
/Windows/system32/CI.dll
接下来使用OslHiveFindDrivers查找所有的boot drivers,并且根据组(which is ordered according to HKEY_LOCAL_MACHINE/CurrentControlSet/Control/GroupOrderList)和标记(an integer which determines each driver’s order within its respective group)对他们进行分类 。这个分类好的boot drivers列表通过OslLoadDrivers进行加载 。OslLoadDrivers为列表中的每个驱动调用LoadImageEx 。LoadImageEx将会加载每个驱动及相关信息 。
此时,剩余的boot drivers也被加载和初始化 。列表如下(按照年月日排列,64位Vista):
1. /Windows/system32/drivers/Wdf01000.sys
2. /Windows/system32/drivers/WDFLDR.SYS
3. /Windows/system32/drivers/acpi.sys
4. /Windows/system32/drivers/WMILIB.SYS
5. /Windows/system32/drivers/msisadrv.sys
6. /Windows/system32/drivers/pci.sys
7. /Windows/system32/drivers/volmgr.sys
8. /Windows/system32/drivers/isapnp.sys
9. /Windows/system32/drivers/mpio.sys
10. /Windows/system32/drivers/compbatt.sys
11. /Windows/system32/drivers/BATTC.SYS
12. /Windows/System32/drivers/mountmgr.sys
13. /Windows/system32/drivers/intelide.sys
14. /Windows/system32/drivers/PCIIDEX.SYS
15. /Windows/system32/drivers/pcmcia.sys
16. /Windows/system32/drivers/aliide.sys
17. /Windows/system32/drivers/amdide.sys
18. /Windows/system32/drivers/cmdide.sys
19. /Windows/system32/drivers/msdsm.sys
20. /Windows/system32/drivers/pciide.sys
21. /Windows/system32/drivers/viaide.sys
22. /Windows/System32/drivers/volmgrx.sys
23. /Windows/system32/drivers/atapi.sys
24. /Windows/system32/drivers/ataport.SYS
25. /Windows/system32/drivers/hpcisss.sys
26. /Windows/system32/drivers/storport.sys
27. /Windows/system32/drivers/adp94xx.sys
28. /Windows/system32/drivers/adpu160m.sys
29. /Windows/system32/drivers/SCSIPORT.SYS
30. /Windows/system32/drivers/adpu320.sys
31. /Windows/system32/drivers/djsvs.sys
32. /Windows/system32/drivers/arc.sys
33. /Windows/system32/drivers/arcsas.sys
34. /Windows/system32/drivers/elxstor.sys
35. /Windows/system32/drivers/i2omp.sys
36. /Windows/system32/drivers/iirsp.sys
37. /Windows/system32/drivers/iteraid.sys
38. /Windows/system32/drivers/lsi_fc.sys
39. /Windows/system32/drivers/lsi_sas.sys
40. /Windows/system32/drivers/lsi_scsi.sys
41. /Windows/system32/drivers/megasas.sys
42. /Windows/system32/drivers/mraid35x.sys
43. /Windows/system32/drivers/msahci.sys
44. /Windows/system32/drivers/nfrd960.sys
45. /Windows/system32/drivers/ql2300.sys
46. /Windows/system32/drivers/ql40xx.sys
47. /Windows/system32/drivers/sisraid2.sys
48. /Windows/system32/drivers/sisraid4.sys
49. /Windows/system32/drivers/symc8xx.sys
50. /Windows/system32/drivers/sym_hi.sys
51. /Windows/system32/drivers/sym_u3.sys
52. /Windows/system32/drivers/vsmraid.sys
53. /Windows/system32/drivers/fltmgr.sys
54. /Windows/system32/drivers/fileinfo.sys
55. /Windows/system32/drivers/ndis.sys
56. /Windows/system32/drivers/msrpc.sys
57. /Windows/system32/drivers/NETIO.SYS
58. /Windows/System32/Drivers/Ntfs.sys
此时,所有的boot drivers被加载(参考附录B,完整的boot drivers列表) 。接下来,调用OslpLoadNlsData从注册表项HKEY_LOCAL_MACHINE/CurrentControlSet/Control/NLS加载操作系统的语言版本 。最后调用OslpLoadAllModules做了下面的几个事情:

推荐阅读