6044|11

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

优盘的清零或低格 [复制链接]

最近在作一个小项目,就是实现优盘的清零或着说是低格,最终的目的就是对优盘操作后,无法用恢复软件恢复。例如:Finadata等。
另外我已经在vc.net下用过DeviceIoControl函数了参数IOCTL_DISK_FORMAT_TRACKS_EX和IOCTL_DISK_FORMAT_TRACKS返回的错误都是“不支持请求”
想向各位高手提一个问题就是,有没有其它的函数能够通过编程的方法对优盘清零或低格,当然速度越快越好了。
另外如果上述的办法行不通,那么有没有其它的办法实现我的最终目的,包括毁掉优盘。
因为对闪存的结构不了解如果有关于这方面的资料能给发一份,我将非常感谢你。

最新回复

最彻底的做法的是底层驱动开放擦除接口,对Flash数据区做一次擦除操作,实施可能性几乎为零.一般的格式话只是将文件系统的信息区数据清零,如FAT表,目录区等,但是这个等Flash底层驱动来说,就是写数据操作,只是写的数据是0而已,flash层有一个地址转换的问题,如果将地址转换表数据清除,数据几乎是不可恢复的,虽然数据可能还在Flash上,这就好比要将一个一平方英寸的纸片撕成数以十万片然后再重新拼凑复原.Flash驱动是决不会这么做的,这样危害太大,所以实施的可能性也为0,除非楼主自己做底层驱动. 比较可行的方法是先格式化U盘,然后根据U盘容量创建一个比容量略小的文件,文件数据全部为0,写入U盘,这样U盘的数据被覆盖,原来的数据当然就没有了,再格式化U盘,但是时间的代价不菲......  详情 回复 发表于 2009-2-23 22:32
点赞 关注

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
驱动呢?有没有实现LZ想要的功能???
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
用CreateFile打开U盘,名称用例如"\\\\.\\X:"的形式,用DeviceIoControl发FSCTL_LOCK_VOLUME命令锁定卷,如果失败则延时重试,然后用WriteFile从头到尾都写入0即可。
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

4
 
按2楼的方法,不过不要打开卷了,直接打开磁盘就好了,也不用锁定了,然后从头到尾填0.不过需要注意的是,这种方法只能杜绝通过数据恢复软件恢复而已,其实盘上还有一部分内容没有清掉,不过对于一般的保密要求来说足够了。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个问题,应该从硬件上考虑会好一些,也就是说从驱动一级做。

优盘,现在大多数是T-Flash卡,flash的特点是执行擦除操作后,相应的块全部被写为1,这样数据是不可能被恢复的。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 91program 的回复:
这个问题,应该从硬件上考虑会好一些,也就是说从驱动一级做。

优盘,现在大多数是T-Flash卡,flash的特点是执行擦除操作后,相应的块全部被写为1,这样数据是不可能被恢复的。

仅仅执行擦除操作的话还是会有残留信息的,通过特殊方法可以读取到。另外由于wear levelling技术的使用,从系统中是不可能擦除掉所有块的,除非主控芯片厂商提供了相关接口。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
去  数码之家 看看,那里估计会有你要的答案。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

8
 
顶一个,关注中……
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
数码之家 估计是找不到你要的答案,除非U盘的驱动是你自己写的,或者它提供了擦除的接口,你可以直接擦掉数据区的全部Block,否则是无解的
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 
从头到尾填0的方法太慢了,一个4G的优盘大概要8分钟,达不到要求.一个4G的优盘要求是7秒.我也试着想从驱动一级来做,可不知道从何下手.各位有没有相关的资料给提供一些.
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

11
 
flash的擦写速度本来就比读慢多了,所以不可能太快的。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

12
 
最彻底的做法的是底层驱动开放擦除接口,对Flash数据区做一次擦除操作,实施可能性几乎为零.一般的格式话只是将文件系统的信息区数据清零,如FAT表,目录区等,但是这个等Flash底层驱动来说,就是写数据操作,只是写的数据是0而已,flash层有一个地址转换的问题,如果将地址转换表数据清除,数据几乎是不可恢复的,虽然数据可能还在Flash上,这就好比要将一个一平方英寸的纸片撕成数以十万片然后再重新拼凑复原.Flash驱动是决不会这么做的,这样危害太大,所以实施的可能性也为0,除非楼主自己做底层驱动.
比较可行的方法是先格式化U盘,然后根据U盘容量创建一个比容量略小的文件,文件数据全部为0,写入U盘,这样U盘的数据被覆盖,原来的数据当然就没有了,再格式化U盘,但是时间的代价不菲......
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表