gpt4 book ai didi

c - 用户模式钩子(Hook)的检测

转载 作者:行者123 更新时间:2023-11-30 17:56:48 25 4
gpt4 key购买 nike

有没有办法(以编程方式)检测用户模式 Hook 列表?我尝试阅读一些相关文章但无法阅读。任何指示、想法或示例都会有很大帮助。由于我现在还没有开始编写代码,因此请随时在 C 或 C++ 方面帮助我。 TIA。

编辑:: 我正在尝试使用一种方法来枚举当前正在运行的所有进程,然后再次枚举每个进程使用的所有模块。我真正想尝试的(正如一些专家所解释的)是比较当前加载到内存中的所有模块的枚举列表和每个进程的磁盘上的模块列表以检查 Hook 。有人可以解释一下吗?我不知道我的问题是什么,但如果您明白我的困惑是什么,请在这里帮助我。

最佳答案

有多种方法可以实现用户模式 Hook 。例如:

  1. 无条件分支指令可以内联插入到函数的开头。
  2. 修复导入地址表。
  3. 当进入函数时,可以使用某种机制引发异常(更改页面保护、int 3 等),然后使用 vector 异常处理程序重定向执行。

检测方法因您正在检测的用户模式 Hook 的方法而异。举个例子,

  1. 检测最常见的用户模式 Hook (目标函数启动时的 JMP 指令)的经典方法是反汇编函数并检查第一条指令。
  2. 使用 GetProcAddress 动态解析 IAT 中预期的函数地址,并检查表是否符合预期。
  3. 检查页面保护、反汇编等。

我并不打算提供所有可能的 Hook (和检测)方法的详尽枚举,而是要解释没有单一通用方法可以生成用户模式 Hook 列表。

关于c - 用户模式钩子(Hook)的检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com