检查 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 是否受到监控(挂钩?) 的相关文章

  • Caliburn.Micro - ShowDialog() 如何关闭对话框?

    EDIT 新信息 刚刚设法让记录器工作 老实说 我不知道 cm 有一个 并且在尝试使用时收到此消息TryClose TryClose requires a parent IConductor or a view with a Close m
  • 如何在特定时间以毫秒精度触发 C# 函数?

    我有两台计算机 它们的时间通过 NTP 同步 确保时间仅相差几毫秒 其中一台计算机将通过 TCP 向另一台计算机发送一条消息 以在两台计算机上的未来指定时间启动某个 c 函数 我的问题是 如何在特定时间以毫秒精度 或更好 触发 C 中的函数
  • STL之类的容器typedef快捷方式?

    STL 容器的常见模式是这样的 map
  • Go 编译器有窗口化设置选项吗?

    我正在使用 Go 6g 编译 GTK 应用程序 我想知道是否有编译器 链接器选项使其成为 Windows 可执行文件而不是控制台可执行文件 MinGW 有一个 mwindows 选项来实现此目的 目前我必须使用十六进制编辑器手动更改 PE
  • 将字符串作为 PChar 从 CSharp 传递到 Delphi DLL

    我正在尝试将字符串从 C 传递到 Delphi 构建的 DLL Delphi DLL 需要 PChar 这是Delphi导出 procedure DLL Message Location PChar AIntValue integer st
  • 将公历日期转换为儒略日期,然后再转换回来(随着时间)

    我正在编写一个程序 必须将当前的公历日期和时间转换为儒略日期 然后再转换回公历门 最终我需要添加能够添加年 月 日 小时 分钟和秒的功能 但我需要先解决这部分问题 现在我已经从公历日期转换为儒略日期 所以从逻辑上讲 我觉得我应该能够以某种方
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • Monotouch全局异常处理

    我在野外发现了一只令人讨厌的虫子 但我无法确定它的具体情况 有没有办法拥有全局 Try Catch 块 或者有办法处理 Monotouch 中未处理的任何异常 我可以包起来吗UIApplication Main args 在 try cat
  • 无法加载程序集问题

    我收到以下错误 无法加载程序集 错误详细信息 System BadImageFormatException 无法加载文件或程序集 文件 或其依赖项之一 该程序集是由比当前加载的运行时更新的运行时构建的 无法加载 该程序集是使用 Net Fr
  • 应用程序处于中断模式。您的应用程序已进入中断状态,

    我发现自己遇到了同样的问题here https stackoverflow com questions 36204009 disable break mode page in vs2015 我在 dll 中使用 Windows 窗体 这是针
  • 如何从外语线程调用Python函数(C++)

    我正在开发一个程序 使用 DirectShow 来抓取音频数据 媒体文件 DirectShow 使用线程将音频数据传递给回调 我的程序中的函数 然后我让该回调函数调用另一个函数 Python 中的函数 我使用 Boost Python 来包
  • 更改 Xamarin.Forms 应用中顶部栏和底部栏(ControlsBar、StatusBar)的颜色

    无论如何 即使后面需要特定于平台的代码 也可以更改顶部栏 蓝色的 和底部栏 黑色的 的颜色吗 我希望添加对浅色和深色模式的支持 因此我希望能够在运行时更改它 有可能的 Android Using Window SetStatusBarCol
  • C#:自定义转换为值类型

    是否可以将自定义类转换为值类型 这是一个例子 var x new Foo var y int x Does not compile 是否有可能实现上述情况 我需要超载一些东西吗Foo 您将必须重载强制转换运算符 public class F
  • Gremlin.net 文本包含等效项

    我正在使用 Gremlin net 库连接到 janus 图形服务器 我使用 cassandra 和弹性搜索进行数据存储和索引 在我使用的 gremlin 语言和 gremlin 控制台中文本包含在属性的文本中进行搜索 我正在使用混合索引
  • 如何检测应用程序正在运行的 .NET 版本?

    我尝试使用Environment Version ToString 确定目标计算机上正在使用什么 NET 框架 但安装了 4 0 版本时 它说我正在使用 NET 2 0 如何检测目标计算机上正在运行的 NET Framework 版本 En
  • 如何将System.Windows dll添加到Visual Studio 2010 Express?

    我正在开发一个小型应用程序C and VS2010 as IDE with NET框架4 我想用CaptureSource类以便从笔记本电脑的网络摄像头捕获视频 为此我需要添加一个命名空间System Windows DependencyO
  • C 变量声明的效率 [重复]

    这个问题在这里已经有答案了 例如 在 C 中声明一个变量需要多长时间int x or unsigned long long var 我想知道它是否会让我的代码在类似的事情中更快 for conditions int var 0 code 这
  • Boost.asio和异步链,unique_ptr?

    我对异步编程不太熟悉 我有一个问题 我的问题如下 给出 boost asio 中 C 11 的 echo server 示例 http www boost org doc libs 1 60 0 doc html boost asio ex
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma
  • 将一个 IEnumerable 拆分为多个 IEnumerable

    我是 linq 新手 我需要根据指示器将 Couple string text bool Indicator 类型的 IEnumerable 拆分为多个 IEnumerable 我尝试使用skipWhile 和 TakeWhile 但没有找

随机推荐

  • 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 是否正在被监视或挂钩 如果是 那么我不会调用该部分