Microsoft的绕行FAQ文档间接指出,在问题下不能绕过静态链接函数为什么我看不到对malloc绕行的任何调用?
但是我可以通过使用DetourFindFunction()
查找地址来绕过我自己的静态链接库函数。我相信它使用调试符号来找到它。我已经进行了足够的测试,但是使用这种方法没有发现任何异常行为?微软在FAQ中发表此类声明的背后原因可能是什么?
如果在Visual Studio项目配置下启用了内联功能扩展,则DetourFindFunction()
将找不到地址。为什么会失败,还有其他找到地址的方法吗?
答案 0 :(得分:0)
我认为他的意思是,当您在流程B中调用一个函数(在静态库A中),然后在流程B中绕过该函数时,它将失败,但不会直接绕过静态库A中的函数。 / p>
内联函数由编译器直接执行,只需将代码移到调用位置即可,而无需调用它。内联函数不会跳转到要执行的地址。