首页 > 其他分享 >VeraCrypt源代码学习--架构介绍

VeraCrypt源代码学习--架构介绍

时间:2024-06-03 12:12:10浏览次数:20  
标签:文件 驱动程序 -- 截获 VeraCrypt 源代码 操作系统

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

标签:文件,驱动程序,--,截获,VeraCrypt,源代码,操作系统
From: https://www.cnblogs.com/Hejianbin1985/p/18228532

相关文章

  • DevOps全面综述:从概念到实践
    这篇文章详尽介绍了DevOps的背景、核心实践、工具和技术,探讨了团队协作、文化建设及组织变革,旨在帮助企业高效实现持续交付和创新。关注作者,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕博,复旦机器人智能......
  • 再也不用为找.NET相关的项目和框架发愁了
    思维导航前言C#/.NET/.NETCore优秀项目和框架精选C#/.NET/.NETCore项目宝库C#/.NET/.NETCore优秀项目和框架Issues前言最近经常在DotNetGuide技术社区交流群里看到有小伙伴问:有什么好用的.NET定时任务调度框架推荐的?有什么好的WPF/WinForm/Blazor图表库推荐的?.NET......
  • 读取Excel格式测试用例
    测试用例编写测试用例编写格式(个人习惯)测试用例名称请求方法接口路由请求参数请求体断言方法断言信息titlemothodrouterparbodyassert_mothodasserted测试用例一GET/api/testtext"errorCode":0测试用例一(登录)POST/api/login/testtext"er......
  • debian11 简单搭建go环境
    简单环境,目前仅支持单版本go,后续可以考虑直接把go环境放到docker中或podman中,这样每个容器都是一套go版本。新建文件夹目录#我直接用的root账户cd/rootmkdirgocdgomkdirbinpkgsrc下载安装包#可以自行选择官网不同版本安装包wgethttps://golang.google.cn/d......
  • 【Revit二次开发】Document.Regenerate方法(更新Revit文档中所有的图元)
    出处https://www.revitapidocs.com/2015/22468e2c-9772-8478-0816-c9759aa43428.htm功能更新Revit文档中的图元以反映所有更改。注意使用此方法可以在一组更改后强制更新文档。请注意,当事务被提交时,会自动调用以重新生成文档。用法FamilyInstanceinstance=doc.Create.Ne......
  • python 探测网络 并自动绘制ip拓扑图
    要实现网络探测并自动绘制IP拓扑图,你可以使用Python与相关库和工具来完成。一个流行的方法是使用Python的网络扫描库(例如Nmap或Scapy)来扫描网络,并使用网络图形库(例如NetworkX和Matplotlib)来绘制IP拓扑图。以下是一个粗略的步骤示例,展示了如何实现网络探测并自动绘制IP拓扑图:i......
  • python NetworkX和Matplotlib 来绘制IP拓扑图
    要使用NetworkX和Matplotlib来绘制IP拓扑图,首先需要使用NetworkX来构建图形,并在图形准备就绪后,使用Matplotlib绘制图形。以下是一个简单的示例,演示了如何使用NetworkX和Matplotlib来绘制IP拓扑图:importnetworkxasnximportmatplotlib.pyplotasplt#创建一个简单的示......
  • leetcode第263题:丑数
    丑数的因子只能是2,3,5。但是可能有多个2,多个3,多个5.因此需要循环地除以2、3、5.publicclassSolution{publicboolIsUgly(intn){if(n<=0){returnfalse;}int[]factors={2,3,5};for(inti=0;i......
  • leetcode第1281题: 整数的各位积和之差
    publicclassSolution{publicintSubtractProductAndSum(intn){intsum=0;intji=1;while(n>0){intnum=n%10;sum+=num;ji*=num;n/=10;}returnji-sum;......
  • Python学习笔记(一)
    PS:这篇文章是以一个学习者的角度来汇总知识点以及教程,对于想学习Python的入门者也会比较友好,想学习python可以先收藏,我会慢慢持续更新。学艺不精,如有纰漏,敬请指正。需要安装配置python和Pycharm软件可以移步这篇文章,有详细的教程。传送门:python及pycharm安装配置-CSDN博客P......