2017-09-27 115 views
-1

我被有很多经验的人告知,至少有一种替代方式来监视Windows操作系统调用,例如,创建类似于过程监视器的功能或开发反病毒扫描程序,而不是“挂钩”,并且这种替代方法比挂钩效率更高。但是,我不确定在开发过滤器驱动程序来执行此任务的上下文中有哪些替代方法。除了可用于监视Windows系统上Native/SSDT API调用的“挂钩”之外,还有其他方法吗?

+1

处理器监视器不监视Windows操作系统调用,但是监视Windows内核中的某些类型的事件。它通过各种技术来做到这一点。对于文件监控,它使用设备过滤器驱动程序,就像防病毒扫描程序一样。请参阅https://stackoverflow.com/questions/1531800/how-does-a-windows-antivirus-hook-into-the-file-access-process此技术根本无法用于监视SSDT(SQL Server数据工具)API(我认为)是一个用户级别的API。 –

+0

@RossRidge谢谢,但由SSDT我的意思是系统服务调度表调用aka系统调用 –

+0

你可能会想到MS [Detours](https://www.microsoft.com/en-us/research/project/detours/) – JJF

回答

0

没有SSDT挂钩的等价物,但这并不意味着你不能监视事件。我们在KM中有几个CB可用于监控和更改数据/访问权限等。如果您在谈论防病毒扫描器,那么大多数时候这些CB都是足够的。我认为最好是描述一下你需要什么。然后说出使用什么更容易。

注意事项这是作为评论。我认为这是疯狂的,你必须赚取超过50代表能够置评论!评论对于更好地理解问题和澄清事物很有用。为什么有人需要有代表呢?!

+0

嗯,我说的是一个AV扫描,以查看和附加一些功能,所有调用给定的API,如NtCreateFile或NtCreateSection,例如在内核模式下。 –

+0

好的。要拦截对文件系统的修改/访问,您可以编写**文件系统过滤器驱动程序**并注册它以接收通知。您可以实施微过滤器或使用旧的架构。还有一个为** NtCreateSection **提供的CB,可以为微过滤器设置**,IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION **。也可以通过设置** FsRtlRegisterFileSystemFilterCallbacks:PreAcquireForSectionSynchronization ** –

+0

非常完美,非常感谢!如果你想让我知道,我可以编辑这个问题,也许你可以把这个信息放入答案中?或者你想只保留在评论中? –

相关问题