如何使用Detours挂钩exe函数?

时间:2015-07-03 13:58:49

标签: c++ function hook exe detours

我刚刚开始使用ms Detours库,我想知道如何使用它来挂钩exe文件。我从IDA Pro获得了函数偏移量,但是我不知道应该挂钩的地址。如果我使用access violation工具挂钩偏移量,它会给出withdll.exe。有人可以告诉我一个如果有可能挂钩exe的例子吗?

1 个答案:

答案 0 :(得分:0)

发生StackHash崩溃是因为您可能正在尝试从没有EXECUTE访问权限的页面执行代码。您可以仅禁用DEP以确保这是导致崩溃的原因。随后,如果确实如此,则应使用VirtualProtectVirtualProtectEx使用包含EXECUTE访问权限的保护常量之一来修改页面保护(您可以看到常量列表{{3 }})。根据地址/偏移量计算,我在您的描述中没有发现任何问题。

以下是有关如何禁用DEP的说明:

  1. 单击“开始”菜单,然后转到“控制面板”。
  2. 单击“系统维护”,然后单击“系统”。
  3. 选择高级系统设置。
  4. 在“系统属性”下,从顶部的“性能”部分中选择“设置”。
  5. 单击“数据执行保护”选项卡。
  6. 选择“为我选择的所有程序和服务启用DEP”。
  7. 找到触发错误的应用程序的可执行文件。
  8. 选择导致错误的应用程序,然后单击“打开”将其添加到“DEP例外”列表中。
  9. 单击“确定”保存新设置。
  10. 希望这有帮助。