【问题标题】:Why DetourFindFunction() fails to find the address of a function?为什么 DetourFindFunction() 找不到函数的地址?
【发布时间】:2019-02-19 13:19:17
【问题描述】:

Microsoft 的 Detour FAQ 文档间接表示,在问题 为什么我没有看到任何对我的 malloc 迂回的调用?

但我可以通过使用DetourFindFunction() 查找地址来绕过我自己的静态链接库函数。我相信它使用调试符号来找到它。我已经进行了足够的测试,并且我没有看到这种方法有任何异常行为?微软在常见问题解答中做出此类声明的原因可能是什么?

另外如果在visual studio项目配置下开启内联功能扩展DetourFindFunction()找不到地址。为什么会失败,还有其他方法可以找到地址吗?

【问题讨论】:

    标签: c winapi detours


    【解决方案1】:

    我认为他的意思是当你在进程B中调用一个函数(在静态库A中),然后你绕过进程B中的函数,它会失败但不会直接绕过静态库A中的函数。

    内联函数由编译器通过将代码移动到调用位置直接执行,没有调用它的开销。 Inline 函数不会跳转到要执行的地址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2014-03-02
      • 2014-01-22
      相关资源
      最近更新 更多