一种彻底粉碎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

 

原创粉丝点击