为啥 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() 找不到函数的地址?的主要内容,如果未能解决你的问题,请参考以下文章