首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows调用序列监视

Windows调用序列监视
EN

Security用户
提问于 2016-07-19 05:20:39
回答 1查看 906关注 0票数 1

我需要监视运行在Microsoft上的进程创建的API调用序列,以分析恶意软件行为。

我知道我们可以做用户模式或内核模式监控。我尝试过一些可以拦截API调用的工具,如Detours调用、EasyHook调用和NTHookEngine调用,但据我理解,所有这些工具都利用了用户模式监视。这使得他们无法检测在内核模式下运行的恶意软件(比如rootkit)。

如果我们尝试使用Detours或EasyHook挂钩API调用,我们就必须定义自己的挂钩函数,在这种情况下,我不需要这样做。我只需要知道被监视的进程正在调用的函数及其参数。

有什么方法可以用高效(几行代码)和有效(用户模式和内核模式监视器)的方式来实现呢?

EN

回答 1

Security用户

发布于 2016-09-12 13:08:52

关于用户模式钩子,也许您可以编写一个通用存根函数

  1. 连接到所有的kernel32调用。
  2. 将调用传递到原始API地址(您必须构建一个包含所有原始API地址的数组,以确定正确的地址)。
  3. 将被调用者的地址与IAT与原始API地址进行比较。

这种用于rootkit检测的调用排序技术可以清楚地检测钩子,但我无法想象它能适用于运行时修补- AKA内联钩子,因为它们不构建堆栈框架。

如果您不愿意沿着这条路线走下去,您可能会考虑在内核模式下连接到本地API,它在Windows7 SP1上有大约290个函数。不过,您必须禁用或绕过PatchGuard系统上的x64系统。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/130434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档