VeraCrypt的简介我就不在多啰嗦了,大家可以直接到官方网站上去查看。如何使用我也不做过多的介绍,网上的教程太多太多,能够进入看本博客的童鞋,绝对有足够的能力去搞定这方面的知识。
需要的基础知识:VeraCrypt主要用C/C++语言编写,为了提高软件的运行效率,源码中也夹杂着少许汇编,所以读者可能需要熟悉C/C++的基本知识和一点点汇编知识,但作为读者,您不需要对这部分知识了如指掌,只需看得懂即可。另外该软件的核心部分是以驱动程序的方式挂载到Windows内部的,所以您还需要熟悉windows的内核编程知识。另外本人会最后一期博客后将备注过的源代码提供出来,供大家批评指正。
总体来将VeraCrypt的架构并不复杂,它与一般的应用软件最大的区别在于VeraCrypt在用户界面与操作系统之间加了一层内核驱动程序,以此来截获用户对容器的读写操作,然后对在后台将截获到的数据进行加密和解密操作后传给操作系统。该过程对用户来说是透明的,感知不到的。以写文件为例:用户从某个地方复制了一个文件,并拷贝进VeraCrypt的容器中,驱动程序会截获该拷贝过程,将文件的数据加密后传给操作系统,操作系统只知道需要将传给他的文件回写到磁盘上,所以OS会当成普通的文件,将数据保存在磁盘中去。读数据的过程与写数据的过程相反。