【自荐】Delapp - 开源的文件删除工具

软件名称

Delapp

应用平台

推荐类型

【开发者自荐】

简介

  • 高速删除文件和文件夹
  • 删除以. (空格)结尾的文件夹
  • 删除被其他程序打开的文件和文件夹
  • 删除映射文件
  • 删除正在运行的程序
  • 删除正被使用的动态运行库

项目网站&下载

https://github.com/differentrain/Delapp

最新版本

截图


瞎扯八道

很久以前写过一个类似的东西 DeletionTool, 不过它有不少小毛病,于是找个时间重写了一下。

其实“解除文件占用”从技术方面讲很简单,像 BlackINT3 大佬的 OpenArk, 解锁占用只是其中最微不足道的功能之一。

这项技术最大难点在于Ring3层面的束手束脚。最典型的例子QueryObject,这玩意不进内核简直就是达利特,碰见pipe等大哥正在进行SYNCHRONIZE操作,直接挂起到老死,DeletionTool就有这个问题。

写Delapp的时候,我不想为了小工具单独写个驱动,还得安装,麻烦且不环保,于是试了很多办法,研究了一两天才解决。

大部分接解除用工具到这里就结束了,实测的时候,还有一些情况无法解决,比如被删除的是一个程序exe,或者是一个正被使用的dll。当然这也不难,遇到程序直接关闭进程,遇到dll或者映射文件直接unmap。

于是Delapp解除占用的流程是这样的:首先判断被占用的是不是程序,如果是程序就关闭,如果是其他模块(dll)或者映射文件,则unmap掉,最后才是像其他程序一样检测句柄问题。

这套流程可以做到至少70%的文件都是想删就删,不过肯定有风险,某些软件可能就闪退了,这个没办法,于是我强制加了个提示,必须确认才会删除。

不过它毕竟是用户层的应用,对系统是没影响的,大概。我曾经一度想做个提权,弄到System权限,能删的东西就更多,不过单文件就做不到了,于是作罢。

还有就是以. (空格)结尾的文件夹。

打开命令行,输入 md test..\,就可以创造一个名为test..的文件夹,摁Delete或者邮件删不掉的,输入命令 rd test..\才能删掉。我最开始遇见这个问题是下在本子的时候,特别糟心,可以说是我写这两个软件的最大动机了……

这个问题吧,是shell外壳程序的BUG导致的,这意味着系统通用的文件对话框完全不能用了,所以如上图,我做了个简陋的对话框,专门用来处理这种糟心货。

用起来肯定不如系统自带的那个方便,如果不是这种倒霉玩意儿,直接拖到软件上或者用右键菜单就可以了,要是遇上了,想删除或者修复的话,就用这对话框手动选择吧。

P·S:刚才发给朋友,被鄙视了,因为这程序不能删除自己……其实是能做到的,但要创建临时文件或者task了,不优雅。所以我把自身的路径,和所属文件夹路径都屏蔽了。

10 个赞

刚听到感觉很没用,稍微想想又感觉很有用,再仔细想想还是很没用 :rofl: :rofl:
这个工具让我想起来很久之前打CTF时遇到的驻留内存并且相互创建的一组恶心木马:rofl:
不管怎么说 star了:rofl:

2 个赞

这太高效率了,一点也体现不出很难的样子 :dog:

1 个赞

哈哈哈哈我也这样觉得

你想,这种1年用不了2次的东西,花了两天时间解决一个小问题,是不是挺 :rofl:的。
其实最开始我想用它替代回收站,但想想觉得太暴躁就算了,毕竟数据无价……

这玩意,对于公司网管来说,用处大大的!有些人整的乱七八糟的东西,真的是牛皮癣!

好东西以前一直在用unlocker或Iobit unlocker

你的选择和我一样,我用好久 unlocker 了,好几次用它们删文件把系统搞蓝屏了,不过正常情况下还真的是有用