深入底层 评估Vista内核模式的安全性

http://tech.ddvip.com/    2008年01月17日  【字号: 收藏本文   社区

内容摘要:Windows Vista与之前的MS Windows版本(包括Windows XP SP2)相比增加了很多的安全性。Vista新安全性的特征表现在什么地方?这些特性又是如何工作的呢?本文将详细介绍……

  执行从OslMain开始。它重用了与bootmgr阶段相同的代码,因此InitializeLibrary在bootmgr内的工作原理与在WINLOAD.EXE内的工作原理相似。在InitializeLibrary之后,控制权交给OslMain。

  如果启动状态日志记录被激活,WINLOAD.EXE将会把结果写入%SystemDrive%Bootootstat.dat (通过 OslpInitializeBootStatusDataLog和OslpSetBootStatusData)。接下来WINLOAD.EXE调用OslDisplayInitialize,并使用BlResourceFindHtml定位osloader.xsl所在的资源节点。控制权转交给BlXmiInitialize。在系统启动过程中osloader.xsl控制着高级启动选项。在操作完高级启动选项(使用OslDisplayAdvancedOptionsProcess),WINLOAD.EXE现在就准备开始启动。启动阶段首先会使用BlDeviceOpen打开启动设备。根据设备类型,BlDeviceOpen会使用不同的设备函数集来打开设备。

  全盘加密(_FvebDeviceFunctionTable) 如下:

   dd0;FVEhasnoEnumerateDeviceClasscallback
  ddoffset_FvebOpen@8;FvebOpen(x,x)
  ddoffset_FvebClose@4;FvebClose(x)
  ddoffset_FvebRead@16;FvebRead(x,x,x,x)
  ddoffset_FvebWrite@16;FvebWrite(x,x,x,x)
  ddoffset_FvebGetInformation@8;FvebGetInformation(x,x)
  ddoffset_FvebSetInformation@8;FvebSetInformation(x,x)
  ddoffset_FvebReset@4;FvebReset(x)
  ForblockI/O(_BlockIoDeviceFunctionTable)theseare:
  ddoffset_BlockIoEnumerateDeviceClass@12;BlockIoEnumerateDeviceClass(x,x,x)
  ddoffset_BlockIoOpen@8;BlockIoOpen(x,x)
  ddoffset_BlockIoClose@4;BlockIoClose(x)
  ddoffset_BlockIoReadUsingCache@16;BlockIoReadUsingCache(x,x,x,x)
  ddoffset_BlockIoWrite@16;BlockIoWrite(x,x,x,x)
  ddoffset_BlockIoGetInformation@8;BlockIoGetInformation(x,x)
  ddoffset_BlockIoSetInformation@8;BlockIoSetInformation(x,x)
  ddoffset?handleInputChar@OsxmlMeter@@UAEHG@Z;OsxmlMeter::handleInputChar(ushort)
  ddoffset_BlockIoCreate@12;BlockIoCreate(x,x,x)
  Forconsole(_ConsoleDeviceFunctionTable)theseare:
  ddoffset_UdpEnumerateDeviceClass@12;UdpEnumerateDeviceClass(x,x,x)
  ddoffset_ConsoleOpen@8;ConsoleOpen(x,x)
  ddoffset_ConsoleClose@4;ConsoleClose(x)
  ddoffset_ConsoleRead@16;ConsoleRead(x,x,x,x)
  ddoffset_ConsoleWrite@16;ConsoleWrite(x,x,x,x)
  ddoffset_ConsoleGetInformation@8;ConsoleGetInformation(x,x)
  ddoffset_ConsoleSetInformation@8;ConsoleSetInformation(x,x)
  ddoffset_ConsoleReset@4;ConsoleReset(x)
  Forserialport(_SerialPortFunctionTable)theseare:
  ddoffset_UdpEnumerateDeviceClass@12;UdpEnumerateDeviceClass(x,x,x)
  ddoffset_SpClose@4;SpClose(x)
  ddoffset_SpRead@16;SpRead(x,x,x,x)
  ddoffset_SpWrite@16;SpWrite(x,x,x,x)
  ddoffset_SpGetInformation@8;SpGetInformation(x,x)
  ddoffset_SpSetInformation@8;SpSetInformation(x,x)
  ddoffset_SpReset@4;SpReset(x)
  ForPXE(_UdpFunctionTable):
  ddoffset_UdpEnumerateDeviceClass@12;UdpEnumerateDeviceClass(x,x,x)
  ddoffset_UdpOpen@8;UdpOpen(x,x)
  ddoffset_SpClose@4;SpClose(x)
  ddoffset_UdpRead@16;UdpRead(x,x,x,x)
  ddoffset_UdpWrite@16;UdpWrite(x,x,x,x)
  ddoffset_UdpGetInformation@8;UdpGetInformation(x,x)
  ddoffset_UdpSetInformation@8;UdpSetInformation(x,x)
  ddoffset_UdpReset@4;UdpReset(x)

来源:IT专家网    作者:独自等待    责编:豆豆技术应用

正在加载评论...