微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

拦截FILESytemCall进行删除

有没有办法检测删除文件之前,Windows执行删除? 我发现FileSystemWatcher类,但只有在执行删除操作后才会引发事件,但是我想在用户/进程select删除操作时捕获删除操作。 您可以监视文件系统表,但要寻找更好的方法。 谢谢你的帮助。

如果我对Windows服务进行了更改,是否必须运行installutil.exe?

在Mac和Windows上打开相同的.NET Core解决scheme

Windows批处理脚本中的文件/文件夹select器对话框

.NET安全策略由标准用户更改?

支持阿拉伯字符从右到左

我认为最简单的方法是使用钩子来通知(并最终停止)该进程。 它不能在.NET中完成,所以你必须DllImport很多结构和P / Invoke功能很少。

让我们用NtSetFile@R_121_4045@ion (无文档)函数开始您的工作。 当一个文件需要被删除(使用Filedisposition@R_121_4045@ion结构)时,这是由其他任何东西调用函数

现在的问题是如何挂钩功能(祝你好运,这是不容易的)。 一个很好的选择可以使用Microsoft Detours 。 看看这篇文章的例子。 它的问题是它不是免费的。 一个替代的解决方案(价格合理,.NET界面)是Deviare,但我从来没有试过甚至免费的版本,所以我不知道它有多好。 如果别人知道一个好的拦截工具…

你需要一个文件系统过滤驱动程序。 不过,我强烈建议,如果你不知道答案,你可能不应该这样做。

http://msdn.microsoft.com/en-us/library/windows/hardware/gg462968.aspx

或者可以试试IcopyHook接口。

http://msdn.microsoft.com/en-us/library/windows/desktop/bb776049%28v=vs.85%29.aspx

copyCallback方法中使用wFunc参数中的FO_DELETE来指定删除操作。

缺点:只能防止在Windows Shell中删除

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐