为啥 DetourFindFunction() 找不到函数的地址?

Posted

技术标签:

【中文标题】为啥 DetourFindFunction() 找不到函数的地址?【英文标题】: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()找不到地址。为什么会失败,还有其他方法可以找到地址吗?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于为啥 DetourFindFunction() 找不到函数的地址?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 GetProperty 找不到它?

为啥我找不到 ProgressiveMediaSource?

总是提示找不到符号为啥

为啥找不到这些符号?

为啥我找不到 Dockerfile?

找不到存储库 bean(不知道为啥)