我刚刚开始学习C ++编程和练习我想学习如何编写Windows API Syscall Hook。例如,如果我将尝试删除具有特定名称的文件,例如,对于exmaple' test.txt',则不会删除它而是会弹出一条消息。我试着寻找一个关于如何做这样的事情的教程,但我找不到任何东西。
也许有人可以分享一个关于如何做这样的事情的教程的链接,或者可能是一个非常简单的代码示例?
我正在使用Windows 10计算机和Visual Studio 2015。
答案 0 :(得分:1)
编写文件系统(迷你)过滤器驱动程序。
https://msdn.microsoft.com/en-us/library/windows/hardware/ff548202%28v=vs.85%29.aspx
文件系统过滤器驱动程序是一个可添加值的可选驱动程序 或修改文件系统的行为。文件系统筛选器驱动程序 是一个内核模式组件,作为Windows执行程序的一部分运行。
文件系统过滤器驱动程序可以过滤一个或多个I / O操作 文件系统或文件系统卷。取决于性质 驱动程序,过滤器可能意味着记录,观察,修改甚至阻止。典型 文件系统筛选器驱动程序的应用程序包括防病毒 实用程序,加密程序和分层存储管理 系统
Windows驱动程序示例包含一个minifilter驱动程序,用于检测文件或流的删除。
请参阅:https://github.com/Microsoft/Windows-driver-samples/tree/master/filesys/miniFilter/delete