QQ文件保险柜与Truecrypt之对比.
今天本来想把Format部分抠出来的,但是XX实在太多了...只好装虚拟机,重新配置调试环境.把昨天的笔记放一下...然后说一下应用层的,Mount部分.其实关于Mount,可以参考阅读下filedisk的源代码...
分析Truecrypt的源代码的初衷,是为了仿写一个类似QQ文件保险柜的功能.
而似乎QQ的文件保险柜,也是从Truecrypt中抠出来的代码.
具体来看,QQ的文件保险柜实现的是Truecrypt的file_container的功能,
并没有实现给磁盘加密,或者给系统盘加密.
而在file_container这一部分,又是选择了Standard_Volume功能,
并没有实现Hidden_Volume功能.
QQ保险柜在实现隐藏的时候,是Unmount这个卷了,所以在磁盘分区中看不到.
当打开这个卷的时候,先验证密码,然后又重新mount这个file了...
目前打算从TrueCrypt中将file_container抠出来...
先实现Format部分..StandardVolume...
+--->Standa vol --> vol_path-->Ea_Ha -> vol_size -> Password -> Format
+
file_container --+
+ +--> Normal-->vol_path-->OuterVolume-->Ea_Ha->vol_size->Pwd -> Format
+--->Hidden vol --+
+--> Direct-->vol_path-->...
QQ文件保险柜流程如下:(其中的加密算法,cluster,选择默认了...)
1.新建保险柜 file_container->Standard vol
2.确认密码 Password(绑定QQ的不会..nnd)
3.保存位置 VolPath
4.容量大小 vol_size
6.初始化 Format
7.打开保险柜 Mount
8.关闭保险柜 UnMount
本来想放一个demo的...但是今天是不可能了...只想弄file_container部分...其他的关于给Windows系统盘加密和分区加密,还是放到以后再说.
放一个console程序的main函数流程.
void main(int argc,char** argv).
{
// step1,Init Volume Password
strcpy(volumePassword.Text,"123456");
volumePassword.Length = (unsigned int)(strlen(volumePassword.Text));
// step2,Init VolumePath,or szDiskFile
strcpy(szDiskFile,"C:\\volumeTest.txt");
szDiskFile[strlen("C:\\volumeTest.txt")] = 0 ;
// step3,Init VolumeSize
nVolumeSize = 10*1024*1024; // 10 MB
// step4,Format Volume
Format();
// step5,Mount Volume
Mount();
// step6,DisMount Volume
UnMount();// 关闭文件保险柜,即调用DisMount()函数.
}
关于Truecrpyt的Mount/DisMount部分的两个核心函数,都很简单,都是向驱动发送IOCTL,来完成的.
打开TrueCrypt.exe这个程序."Select file"选择前面使用Format程序,创建的一个file_cotainer的文件.
然后选择一个驱动盘符,然后点击"Mount".这个时候会调用函数Mount(),而该函数内部调用的核心函数为MountVolume().
int MountVolume (HWND hwndDlg,// 传入的窗口句柄
int driveNo, // 加载的磁盘分区序号
char *volumePath,// 用户选择的加密卷文件
Password *password,// 用户输入的密码
BOOL cachePassword,// 是否使用缓存密码
BOOL sharedAccess,
MountOptions *mountOptions,// mount选项
BOOL quiet,
BOOL bReportWrongPassword // 是否报告错误的密码
)
其函数的Mount的核心是,这部分可以看看FileDisk的src
bResult = DeviceIoControl (hDriver, TC_IOCTL_MOUNT_VOLUME, &mount,
sizeof (mount), &mount, sizeof (mount), &dwResult, NULL);
当你点击"UnMount"时,会调用UnMountVolume()函数,其核心函数是.DriverUnmountVolume();
其实也是向驱动返送IOCTL.
bResult = DeviceIoControl (hDriver, TC_IOCTL_DISMOUNT_VOLUME, &unmount,
sizeof (unmount), &unmount, sizeof (unmount), &dwResult, NULL);
QQ文件保险柜与Truecrypt之对比.相关推荐
- 【转帖】360密盘的惊人内幕 — 当然包括QQ文件保险箱
这几天,看到大家都在热议一个话题,就是360密盘被破,我在想,所谓的QQ文件保险箱,又会在什么时候被破呢? 好多人可能认为360密盘是360自己原创的,然后QQ文件保险箱抄了360密盘,因此QQ文件保 ...
- win7打不开qq文件怎么办
1.这种情况是因为QQ为了用户安全,防止传过来的文件是病毒,在电脑上自动运行而做的修改,针对的是.EXE等WINDOWS系统可执行的文件,会自动在文件名称后面加上.重命名三个字.如果确认不是病毒,在该 ...
- 因更改注册表而导致无法打开QQ文件所在文件夹
因更改注册表而导致无法打开QQ文件所在文件夹 解决办法 -用火绒的系统修复扫描即可:
- 局域网限制网速软件_大文件传输工具,比微信、QQ文件传输还好用的传输软件,关键还不限速!...
白剽一个专注分享各种软件资源的平台 软件名称:文件传输助手 如果你觉得本篇文章对你有帮助,麻烦你给我本篇文章的文末点一个[在看]就是对我最大的帮助,白嫖党和伸手党真的不好,正所谓赠人玫瑰手留余香,我帮 ...
- qq服务器上的文件删除后如何恢复,qq文件过期怎么恢复(过期的QQ文件如何申请恢复)...
日常工作上,常常会应用QQ来推送文档,很有可能有一些情况下忘掉或太忙而沒有去接受文档,进而造成 QQ文档到期,那麼针对到期的QQ文档应当如何恢复呢?一切正常状况下文档到期了就没有办法修复了,由于是临时 ...
- C盘瘦身:QQ文件的清理及Group2文件夹
目录 问题 解决方法 Windows 10 20H2 TIM 问题 最近C盘被撑爆了 使用SpaceSniffer一扫发现QQ的文件中有个Group2文件夹占了我17G 但使用QQ自带的个人文件夹清理 ...
- 解决电脑C盘空间不足,发现微信和qq文件占用了大量内存
项目场景: 电脑C盘空间不足,需要隔一段时间清理垃圾,分析占用空间的文件,将C盘文件迁移到E盘. 问题描述 C盘提示空间不足 原因分析: 通过扫描磁盘发现微信和qq文件占用了几十G的内存,由于微信和q ...
- VB.NET + QQ文件助手实现远程控制
这前看到一篇文件介绍用Python+itchat微信接口实现"远程控制"电脑,最近无聊试了下利用"QQ文件传输助手"可以接收手机端发送的消息原理来写了一个VB. ...
- QQ文件传输攻击工具
QQ文件传输攻击工具 生成大量垃圾文件,全选之后拖到QQ好友的头像上,QQ会将这些文件全部发送,被攻击者的系统资源会被大大浪费掉! 程序及动画下载:http://www.nohack.cn/bbs/v ...
- java qq 传送文件_如何利用Java实现QQ文件传输功能.pdf
您所在位置:网站首页 > 海量文档  > 计算机 > Java 如何利用Java实现QQ文件传输功能.pdf2页 本文 ...
最新文章
- mui后端开发php,PHP解决mui中ajax的跨域问题
- 内核-程序员的顶级梦寐
- 015 已接任务链表和任务库二叉树遍历
- java原子引用怎么理解_Java 原子性引用 AtomicReference
- adonis.js mysql_Adonis.js——数据库基本操作
- 【Clickhouse】CLICKHOUSE SQL文件等常用语句
- 数据科学即将迎来“无代码”时代
- (七)对Jmeter进行参数化的俩种方式
- python 解决transform.rescale操作,本应得到彩色图像,然而所得图像为灰色图像问题
- 欣赏深圳东部最迷人的东冲海岸线与最纯净的沙滩
- 欢迎清风艾艾在ITPUB博客安家!
- 自行车小组问卷调查报告
- 廊坊金盾说手脚冰冷先暖胃
- 2021 年年度最佳开源软件
- 如何利用MES系统实现防错和预警?(详细整理,值得收藏)
- 利用MATLAB模糊控制器实现对水位高度调节SIMULINK仿真(隶属度7分级)
- php用打印出实心菱形,php打印实心菱形
- 自如2020新产品发布:全面打造智能租住生活
- 职高计算机动漫设计专业就业困难,动漫设计专业就业怎么样?可以找哪些工作?...
- SOLID原则:单一职责原则(SRP)