我被有很多经验的人告知,至少有一种替代方式来监视Windows操作系统调用,例如,创建类似于过程监视器的功能或开发反病毒扫描程序,而不是“挂钩”,并且这种替代方法比挂钩效率更高。但是,我不确定在开发过滤器驱动程序来执行此任务的上下文中有哪些替代方法。除了可用于监视Windows系统上Native/SSDT API调用的“挂钩”之外,还有其他方法吗?
回答
没有SSDT挂钩的等价物,但这并不意味着你不能监视事件。我们在KM中有几个CB可用于监控和更改数据/访问权限等。如果您在谈论防病毒扫描器,那么大多数时候这些CB都是足够的。我认为最好是描述一下你需要什么。然后说出使用什么更容易。
注意事项这是作为评论。我认为这是疯狂的,你必须赚取超过50代表能够置评论!评论对于更好地理解问题和澄清事物很有用。为什么有人需要有代表呢?!
嗯,我说的是一个AV扫描,以查看和附加一些功能,所有调用给定的API,如NtCreateFile或NtCreateSection,例如在内核模式下。 –
好的。要拦截对文件系统的修改/访问,您可以编写**文件系统过滤器驱动程序**并注册它以接收通知。您可以实施微过滤器或使用旧的架构。还有一个为** NtCreateSection **提供的CB,可以为微过滤器设置**,IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION **。也可以通过设置** FsRtlRegisterFileSystemFilterCallbacks:PreAcquireForSectionSynchronization ** –
非常完美,非常感谢!如果你想让我知道,我可以编辑这个问题,也许你可以把这个信息放入答案中?或者你想只保留在评论中? –
- 1. 除了PIVOT之外,还有其他的方法吗?
- 2. JavaBean除了getter和setter之外还有其他方法吗?
- 3. 除了转义引号之外,还有其他方法吗?
- 4. 除了泛型类之外,还有其他方法可以调用结构的接口方法吗?
- 5. 除了super()之外,还有其他一些方法可以调用Parent的__init__方法吗?
- 6. 挂钩系统调用在Windows
- 7. Atom除了联合供稿之外还可以用于其他用途吗?
- 8. 在Ruby中,除了'case - when'之外,还有其他更优雅的方法来调用方法吗?
- 9. 处理iOS Exceptions除了Crittercism之外还有其他方法
- 10. 除strace外还有其他方法可以记录iotcl调用吗?
- 11. 除委托之外还有其他协议用法吗?
- 12. 除了Android SDK之外,还有其他的Android模拟器吗?
- 13. Scala:除了scala之外,还有其他的尝试吗?
- 14. 除了Siphon之外,iPhone还有其他的SIP实现吗?
- 15. EOL == EOS除了BASIC之外还有其他语言吗?
- 16. 监视器/挂钩javascript API
- 17. 除了使用var关键字之外,还有其他方法可以初始化JS中的变量吗?
- 18. 除了使用Cursor之外,还有其他方法可以从SQLite数据库中获取数据吗?
- 19. 除了使用预处理器指令之外,还有其他方法可以避免冲突类型吗?
- 20. 除了用于Python的matplotlib还有其他图形模块吗?
- 21. 系统调用挂钩的问题
- 22. 除了以“=”结尾的base64还有其他编码方法吗?
- 23. WebLogic XML外部实体解析:除了使用XML注册表之外,还有其他方法吗?
- 24. 除POST,PUT,DELETE,GET之外还有其他的HTTP方法
- 25. 还有其他方式可以访问OAUTH2以外的其他Google API吗?
- 26. 除了ClickOnce之外,还有部署基于Windows应用程序的工具吗?
- 27. 除了模拟持久任务之外,Thread.Sleep()还有其他用途吗?
- 28. 除了默认的x + 1之外,还有其他策略可用于自动递增主键吗?
- 29. 在$ .post()之前挂钩其他数据所有调用
- 30. 挂钩读取系统调用
处理器监视器不监视Windows操作系统调用,但是监视Windows内核中的某些类型的事件。它通过各种技术来做到这一点。对于文件监控,它使用设备过滤器驱动程序,就像防病毒扫描程序一样。请参阅https://stackoverflow.com/questions/1531800/how-does-a-windows-antivirus-hook-into-the-file-access-process此技术根本无法用于监视SSDT(SQL Server数据工具)API(我认为)是一个用户级别的API。 –
@RossRidge谢谢,但由SSDT我的意思是系统服务调度表调用aka系统调用 –
你可能会想到MS [Detours](https://www.microsoft.com/en-us/research/project/detours/) – JJF