c - 为什么 DetourFindFunction() 找不到函数的地址?

标签 c winapi detours

微软的绕道FAQ文档间接指出静态链接函数不能在问题为什么我没有看到任何对 malloc 绕行的调用?

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

此外,如果在 Visual Studio 项目配置下启用了内联函数扩展,则 DetourFindFunction() 无法找到该地址。为什么会失败?还有其他方法可以找到地址吗?

最佳答案

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

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

关于c - 为什么 DetourFindFunction() 找不到函数的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54767288/

相关文章:

c - 如果我在这种情况下使用 malloc 会出现内存泄漏吗

java - 什么是shell脚本、makefile和ant文件

c++ - 使用 Detours 3.0 Express 的简单数据包记录器

c++ - Linux Ubuntu下绕行功能

c - 我是否可以通过将变量设为静态来提高性能?

c - 加速器未显示在 GtkCheckMenuItem 中

.net - OpenGL 是否可以使用 .NET 形式?

c++ - 在应用程序启动之前需要特定的事件完成

c++ - 有没有办法让 DisableUserModeCallbackFilter 在 Windows 10 中工作?

c - 带有 C.FillRectangle 的 Direct2D 不工作