C 检查API是否被监控(挂接?)

C 检查API是否被监控(挂接?),c,windows,winapi,hook,C,Windows,Winapi,Hook,我的应用程序使用了一些API,如GetProcAddress和CreateProcess,这些API有时会导致恶意用户将其标记为恶意,即使它不是 我试图做的是检查特定的API是否被监视或钩住,如果是,我就不会调用代码的这一部分 如何检查某个API是否已挂接 这是一个用C编写的Windows应用程序 谢谢。在win32上,没有检测和/或放置挂钩的官方方法(除了SetWindowsHookEx()()等只包含一小部分功能的函数) 检测钩子取决于钩子的应用方式 放置挂钩有两种常用方法: 导入/导出表修

我的应用程序使用了一些API,如
GetProcAddress
CreateProcess
,这些API有时会导致恶意用户将其标记为恶意,即使它不是

我试图做的是检查特定的API是否被监视或钩住,如果是,我就不会调用代码的这一部分

如何检查某个API是否已挂接

这是一个用C编写的Windows应用程序


谢谢。

在win32上,没有检测和/或放置挂钩的官方方法(除了
SetWindowsHookEx()
()等只包含一小部分功能的函数)

检测钩子取决于钩子的应用方式

放置挂钩有两种常用方法:

  • 导入/导出表修补
  • 代码覆盖
  • 关于不同方法放置钩的细节(请参阅),请考虑在这里阅读。< / P> 每种挂钩方法都需要不同的方法来检测


    有关检测如上所述放置的钩子的方法,请查看此处的“ApiHookCheck算法”。此页面上有我未测试的样本源。

    您如何检查API监视器检测器是否已挂接?
    GetProcAddress
    CreateProcess
    本身不应为AVs设置任何标志。您是否正在使用
    CreateRemoteThread
    执行远程dll注入?如果是这种情况,函数的签名可能与恶意软件的签名匹配。没有dll注入,也没有远程线程创建。这两个API位于程序的不同部分,执行不同的操作。你知道如何检查API钩子吗?“…检查特定的API是否正在…”,你在说什么API?没有可靠的方法来检查API是否已经钩子,因为钩子API的人可能也钩住了你的API检测器。到ApiHookCheck算法的链接不再起作用。有人能提供一个很好的链接吗?@Benny:这可能是一个起点:@alk谢谢,我也发现了这个问题。如果它与您提到的APIhookCheck算法相似,请在您的答案中说明?