检查 API 是否受到监控(挂钩?)

2024-01-15

我的应用程序使用一些 API,例如GetProcAddress and CreateProcess这有时会导致防病毒软件将其标记为恶意软件,即使它不是恶意软件。

我想做的是检查特定的 API 是否正在被监视或挂钩,如果是,那么我不会调用该部分代码。

如何检查某个API是否被hook?

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

Thanks.


在 win32 上,没有官方方法来检测和/或放置钩子(除了SetWindowsHookEx() (http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990 http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990)等函数仅涵盖一小部分功能)。

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

有两种流行的放置挂钩的方法:

  1. 导入/导出表修补
  2. 代码覆盖

有关放置挂钩的不同方法的详细信息(优点/缺点),请考虑阅读此处http://help.madshi.net/ApiHookingMethods.htm http://help.madshi.net/ApiHookingMethods.htm.

每种烹饪方法都需要不同的方法来检测。

有关检测如上所述放置的挂钩的方法,请查看此处的“ApiHookCheck 算法”http://www.security.org.sg/code/apihookcheck.html http://www.security.org.sg/code/apihookcheck.html。此页面上有可用的示例源,我就是这样做的not test.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 API 是否受到监控(挂钩?) 的相关文章

随机推荐

  • Swing 组件的单元测试

    我正在编写一个类似 Total Commander 的应用程序 我有一个单独的文件列表组件及其模型 模型支持侦听器并发出事件通知 例如CurrentDirChanged等方式如下 private void fireCurrentDirect
  • “stat_smooth()”计算失败:找不到对象“C_crspl”

    我正在尝试添加一个geom smooth to a qplot 使用以下代码 library ggplot2 library ggplot2movies qplot votes rating data movies geom smooth
  • 在 Android Room 库中使用 Singleton

    我总是被告知使用 Singleton 很糟糕 然而 Android Room 实现的每个示例似乎都使用 Singleton 方法 有人可以解释一下为什么会这样吗 Thanks 有两种方法 1 你应该使用匕首2 2 抽象 RoomDataba
  • 我该如何修复这个正则表达式?

    前言 这个问题是以下问题的衍生问题 这个问题 https stackoverflow com q 59761275 109941 这是我的代码 https repl it repls AvariciousMindlessEllipse us
  • 在小程序中显示图像并播放音频片段

    我想在小程序中显示图像并播放音频剪辑 我编写了以下代码 但它不起作用 我只为图像编写了代码 但对音频剪辑一无所知 请让我知道我在哪里犯了错误 import java applet import java awt import java ne
  • 在ES6类中使用EventEmitter

    我正在尝试让我自己的类中的 EventEmitter 在 ES6 中运行 use strict const EventEmitter require events class Client extends EventEmitter cons
  • 如何在 SwiftUI 中使列表反转

    我是 SwiftUI 的新手 正在尝试制作类似的东西reverse在安卓中LinearLayoutManager messagesRecyclerView view findViewById R id messagesRecyclerVie
  • 如何确定 QTextDocument 的高度?

    给定一个特定的宽度 我想找出一个的高度QTextDocument 换句话说 如果QTextEdit其中包含QTextDocument is w宽 最小高度是多少h为了完全显示文档而不需要滚动条 将 QTextDocument 对象的宽度设置
  • log4net - 想要为每个Web应用程序用户创建一个日志文件[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们在 Asp Net Web 应用程序中使用 log4net 替换 nLog nLog 有一个有用的功能 允许我们为每个用户创建一个
  • 定位上下文菜单

    我正在尝试使用 jQuery 定位自定义上下文菜单 第一次它出现在正确的位置 鼠标坐标 但随后当前位置与新位置相加 以便菜单从屏幕上消失 这是 JavaScript
  • Div 100% 高度,内嵌显示

    我需要有 2 列divs 右栏将有一个随机内容 可能有 1 行或 100 行 我想在没有 JavaScript 的情况下跟随右列的高度 我正在尝试这个 div div style display inline block width 30
  • 为 python 2.7 安装 scipy

    我似乎无法让 SciPy 在 32 位 Windows XP 平台上为 Python 2 7 工作 我宁愿不构建自己的副本 有谁知道我在哪里可以找到它的安装程序 我试过这个site http www lfd uci edu gohlke p
  • 方括号在 SQL 查询中有效吗?

    我正在看某人写给我的一张便条 它看起来像这样 SELECT Something FROM Foobar WHERE blah blah pulls this too SELECT Something FROM Foobar WHERE so
  • 如何确定时钟的秒针是否位于较大区域或较小区域[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我得到的时间格式如下 hh mm ss 我必须找出在给定的时间内 秒针是否位于时针和分针形成的较大或较小的区域中 我知道
  • 如何从 C 中的浮点数中提取有偏差的指数?

    我在从浮点数中查找有偏差的指数时遇到问题 我不明白为什么我为参数输入的任何数字都返回 0 这是我的代码 iFloat t floatGetExp iFloat t x return x gt gt 23 0x7f800000 浮点数的指数是
  • numpy einsum() 可以执行外加法吗?

    在numpy中 我们可以在两个向量之间执行 外加法 a and b像这样 a np c 1 2 3 b np c 4 5 6 result a b T alternatively this can be a T b 是否可以使用einsum
  • 如何使用预处理器指令区分编译器的版本

    有没有办法区分使用预处理器指令的编译器版本 我在使用新的 Roslyn 编译器时遇到了问题 它生成的代码与旧编译器不同 我需要保持代码与使用 Visual Studio 2013 和 2015 的团队兼容 None
  • 从角度工厂中的 $resource 响应获取数据

    我有这个工厂 factory Member function resource var endpoint http some valid url function generateMemberToken id1 id2 return res
  • 有没有一种简单的方法可以在文本框中进行单击并拖动滚动?

    我有一个 divoverflow auto和滚动条 我希望能够拖动内容进行滚动 我不需要能够选择文本 是否有捷径可寻 一个 jQuery 插件会很好 否则普通的 JavaScript 就可以了 看来我自己说得还不够清楚 有一个具有固定高度的
  • 检查 API 是否受到监控(挂钩?)

    我的应用程序使用一些 API 例如GetProcAddress and CreateProcess这有时会导致防病毒软件将其标记为恶意软件 即使它不是恶意软件 我想做的是检查特定的 API 是否正在被监视或挂钩 如果是 那么我不会调用该部分