为什么DetourFindFunction()无法找到函数的地址?

时间:2019-02-19 13:19:17

标签: c winapi detours

Microsoft的绕行FAQ文档间接指出,在问题下不能绕过静态链接函数为什么我看不到对malloc绕行的任何调用?

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

如果在Visual Studio项目配置下启用了内联功能扩展,则DetourFindFunction()将找不到地址。为什么会失败,还有其他找到地址的方法吗?

1 个答案:

答案 0 :(得分:0)

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

内联函数由编译器直接执行,只需将代码移到调用位置即可,而无需调用它。内联函数不会跳转到要执行的地址。