我有一种情况,我不能修改代码,它是编译的,我不能修改源,但需要记录一些正在发送给它的数据。我可以通过DLL链接到它。我试图捕获函数调用,将其重定向到链接的新DLL,存储我需要的数据,然后调用未修改的函数。我可以通过执行dllimport并重新定义我的DLL中的函数来捕获调用,但最后我无法调用原始函数。由于它们是同一个名称,它只是一个递归调用。我如何回电并退出?
我在VS2005下使用VC ++。
答案 0 :(得分:1)
查看EasyHook
答案 1 :(得分:1)
请勿使用DllImport加载原始功能。
而是使用LoadLibrary(Ex)和GetProcAddress加载原始DLL并找到原始函数并将其放入变量中。完成后,您可以通过变量调用原始函数。