微软的绕道FAQ文档间接指出静态链接函数不能在问题为什么我没有看到任何对 malloc 绕行的调用?
但是我可以通过使用 DetourFindFunction()
查找地址来绕过我自己的静态链接库函数。我相信它使用调试符号来找到它。我已经进行了足够的测试,并且我没有发现这种方法有任何异常行为?微软在常见问题解答中做出此类声明的原因可能是什么?
此外,如果在 Visual Studio 项目配置下启用了内联函数扩展,则 DetourFindFunction()
无法找到该地址。为什么会失败?还有其他方法可以找到地址吗?
最佳答案
我认为他的意思是,当你在进程B中调用一个函数(在静态库A中)时,然后你在进程B中绕行该函数,它会失败,但不会直接绕行静态库A中的函数。
内联函数由编译器直接执行,将代码移动到调用位置,没有调用它的开销。 Inline函数不会跳转到某个地址来执行。
关于c - 为什么 DetourFindFunction() 找不到函数的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54767288/