一种彻底粉碎Windows磁盘文件的设计思路
来源:互联网 发布:网络模特余潇潇男朋友 编辑:程序博客网 时间:2024/04/29 07:50
本设计采用“三轮粉碎”的方式,尽量保证了原始文件的彻底删除,力图达到攻击者采用任何系统工具都无法恢复原始的文件内容,甚至目录及文件名称。
第一轮处理,通过文件操作Windows API,找到原始文件的明文在存储器上所在区域,逐字符逐位进行完全填充,全部填充为零,用这种方法粉碎的文件,使用任何硬盘恢复工具都不能恢复出明文信息;
第二轮处理,通过磁盘操作Windows API找到原始文件或目录在FAT表中的位置,将原始文件或目录在FAT表中的表项清零(其中,根据文件名的长度,将文件名填充为最多256个字符的字母“A”),这样,在FAT表中无法找到原始的文件名称及物理位置。因为某些极其严格加密需求状况下,文件名称也需要保密。
第三轮处理,通过磁盘操作Windows API,找到原始文件或目录在备份FAT表(Windows的机制是对工作FAT表提供一份备份FAT表)位置,将原始文件或目录在备份FAT表中的的表项清零(同样根据文件名的长度,将文件名填充为最多256个字符的字母“A”)。这样,即使适用任何的系统修复工具,也无法从备份FAT表中获知原始文件的名称及物理位置等。
最后,再调用文件操作Windows API删除原始文件被清零处理后的文件及原始文件在FAT表中的表项。
(摘自协助友人指导学生的参赛作品,我们对只是感兴趣,而不是特别熟悉。抱歉不能贴出几十页的完整方案,尽管不像公司那么敏感,但毕竟其他部分是友人的成果。在此抛砖引玉,欢迎大家给出宝贵意见)
补充: 今天在CodeProject上看到了一个C Sharp写的文件粉碎器:
C style shredder in C# .NET: http://www.codeproject.com/KB/files/NShred.aspx
- 一种彻底粉碎Windows磁盘文件的设计思路
- linux 彻底删除、粉碎文件命令shred
- linux 彻底删除、粉碎文件命令shred
- 文件粉碎的原理
- 一种Web UI 的代码设计思路
- 操作配置文件的一种设计思路
- 一种值得借鉴的设计思路
- 一种API代码结构的设计思路
- 又一种设计思路
- Windows文件系统以及文件粉碎原理
- 彻底粉碎“指针与数组的困惑”(上)
- 一种系统异常设计思路
- vb实现文件粉碎的方法
- [原创]简易的文件粉碎模块
- 粉碎删除目录下的文件:
- 一种加密档案文件格式方案的设计思路
- 控制表单内容字段必填项的一种设计思路
- Qt 应用程序的一种插件化设计思路
- VC 目录对话框
- Linux下rpm包绿色解压技巧
- 计算圆周率 Pi (π)值
- DeviceIoControl
- Effective C#之21:Express Callbacks with Delegates
- 一种彻底粉碎Windows磁盘文件的设计思路
- GDB的使用
- 数据块(Data Block)原理深入剖析
- 积极的人生态度
- 技术
- Sendmail的配置( RedHat Enterprise 4 update 7下带smtp认证的sendmail安装和配置)
- 输出缓存与CachePanel
- dos小命令
- java中的堆和栈