技术解析

发现 Win10/7 一个资深 bug, 0day bug?
0
2021-06-03 22:44:38
idczone

我有几个外置磁盘,有个目录,100 多 G,几万个文件,不论在 win10/wi大带宽服务器n7 下删除都只是显示出删除框一阵子后,然后就自动消失了,根本不能删除一个文件。 分析:里面是递归调用,形成要操作列表缓存区,结果缓存区溢出,它就一脸蒙比的爬着走了。


那就向微软提交 bug 反馈。

chkdsk 一下分区吧,盲猜有错误

你要看是什么层面的 0day bug 。如果是文件系统管理代码的 bug,那么就可能是核弹。如果只是资源管理器的,就只是影响体验的 bug 。

确定不是你的硬盘坏了?

win10 往 OneDrive 目录解压了一份 switch 开发的项目的源码,删除的时候会剩下一堆占用为 0 的文件,再次删除系统就会重启,目前这个文件夹存在我电脑很久了每次一删点删除就重启,100%复现。

MFT 坏了?修复下文件系统

有意思。日志里没任何相关内容?

遇到过一次移动硬盘的回收站爆炸,分享你一下:
用 DiskGenius 看一下硬盘分区的 recycle.bin 是否文件较多,可以手动清空一下
这里的回收站只有在对应删除时用的电脑上才能出现在 Windows 的回收站里

之前用 HBuilder 不知道怎么弄的,文件夹建了 n 多层,然后就删不掉了

硬盘没坏,可以创建和删除文件夹,其它小目录也可以正常操作。

Windows 有个 BUG 是如果文件路径过深(我记得是路径超过 128 还是 256 个字符),会无法删除。可以尝试把深层文件夹移动到磁盘根目录,以减少路径深度。

噢,这个问题我遇到过,跟你的很像,几万个文件吧,删除非常的缓慢,最后提示无法删除。怎么都删不掉,最后用命令行删除才解决掉。
所以应该是用户界面程序有 bug,怀疑是对要删除的文件数量进行统计用来计算进度条?结果缓存太小溢出了?要不就是哪里内存泄露后重复了几万次后把自己搞崩溃了?
不过也有可能是你的(机械)硬盘有坏道……

bug 一般是不称 0day 的…… 漏洞才会这么说
路径字符串长度超过 260 ( MAX_PATH ) 了?试下用 7z File Manager 去删,7zFM 对
https://stackoverflow.com/a/1880453/6202760
https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation
后来版本的 Windows 可以手动提升这个数值,但必须是程序自己的代码,以确保程序本身对此 aware (以防某些程序申请了恰好 260 内存来存储路径,会导致缓冲区溢出。)
MAX_PATH=260,据说多的 4 个是 盘符、':'、'\'、和最后的 NULL Terminator

遇到过无法删除文件夹, 只要再重命名下文件夹就自己删除消失了

刚才又检查磁盘,告诉我磁盘没问题,我让它强制检查一遍后,再删除,也是一样:先显示有多少文件空间要删除,过一会儿,界面上啥都没有,那文件夹还在。

不过试了下似乎在 explorer.exe 中删除操作并不受 260 影响,无论是彻底删除还是回收站

Explorer 那个删除文件夹会提前遍历一次所有文件,这个过程相当的慢。
如果你的文件特别多,直接用命令行或者换个文件管理器删吧。

onedrive 里放的文件如果名字太长还会造成无法同步那个文件的 bug 。你的情况网页端删了试试?

你的磁盘有坏道吧

win7 为止, 好像都有这个 BUG...
不确定多少个文件, 单个文件夹内文件数量超过多少就会出现异常
记得以前出过补丁..

试试 PCHunter https://www.anxinsec.com/view/pchunter/update/index.html

0day 的话可以换奖金了

没用 我的网页端已经删除不存在这个文件夹了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服