百科问答小站 logo
百科问答小站 font logo



影子系统的工作原理是什么? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

题主有兴趣的话可以研究一下trueCrypt,虽然这东西已经关闭下载了,但是源码什么的还能找到,尤其是Windows的部分,写的很经典。

对于Windows的应用来说,具体分成两种情况:

一种是用NTLDR引导的,包括2K、XP这类,WIN7也支持。

另一种是用新一代引用方式(这玩意该叫啥我不知道,反正boot的东西是一个分区,或者UEFI之类的更庞大的东西),Vista以后就有了。

对于NTLDR来说,它里面不包含磁盘驱动,NTLDR每次需要读磁盘时,都从保护模式切回实模式,调用INT 13H,再切回来,通过这样把NTOSKRNL.EXE以及附带的驱动都加载上。(所以,这也是为什么XP不支持AHCI,因为INT 13H不支持)

加载完以后,转移控制权给NTOSKRNL就可以了。

TrueCrypt的原理是:

在启动之前把钩子加到INT 13H中断里,NTLDR的任何行为都会被钩子拦截并处理。

同时,再注册一个驱动,跟随内核一起启动,这个是标准的磁盘设备过滤驱动。当系统起来的时候,已经不用INT 13H了,注册的这个驱动开始发挥作用,并继续完成拦截所有磁盘操作的动作。

所以影子系统分两部分,一部分是在实模式下的INT 13H,另一部分是保护模式下的过滤驱动。

不使用NTLDR方式引导的就有点麻烦,需要把钩子做到引导分区里,具体的技术不是太了解,微软公开的东西不多。

我了解的情况就是这样的。




  

相关话题

  如果代码按行付费,会有什么好玩的事情发生? 
  为什么有人在学习初段效率惊人,而在过了入门阶段之后兴趣与学习能力都迅速下降? 
  打这样的代码用了一小时零十分钟,大概是个什么手速?(我是初学者中的初学者)? 
  软件工程界有其它与『操作系统内核』与『浏览器引擎』齐名的高难度项目吗? 
  通过 Bochs 让高性能的 Android 手机流畅运行 Windows 虚拟机是否可行? 
  上古时期的程序员都有哪些当今普通程序员无法想象的神级操作? 
  忽然发现自己敲键盘的指法很不标准,我觉得已经对 coding 效率产生影响,怎么办? 
  打字速度对编程的影响大吗? 
  如何看待ARM处理器在未来生产力/娱乐业的应用前景? 
  Java中有哪些设计精良的部分(精华),还有哪些是不值得花费很多时间探究的知识点? 

前一个讨论
为什么《三体》刘慈欣没有给太阳系一个好的结局?
下一个讨论
USB3.1与Type-c接口是同一回事吗?





© 2024-11-24 - tinynew.org. All Rights Reserved.
© 2024-11-24 - tinynew.org. 保留所有权利