我有一个程序,它加载库test.dll,这个库使用ws2_32.dll来创建套接字和发送/接收数据包。我可以将我的C ++库注入此过程,但不知道如何与函数“socket”,“accept”的test.dll调用进行交互。有人可以帮我解决这个问题吗? 谢谢!
答案 0 :(得分:2)
你需要挂钩接受功能。 您可以使用库来完成此操作,例如MS Detours(早期版本是免费的,您可以使用版本1.5,只需谷歌)。 致电
DWORD a=DetourFindFunction("Ws2_32.dll","accept")
它将为您提供接受函数的指针。 然后你可以通过调用
来绕道而行DetourFunction(a,&Yourfunction)
DetourFunction将新指针返回到"接受",所以一定要在" YourFunction"结束时调用它。确保程序不会崩溃。
或者,您可以使用Inlineassembler自行重定向该功能。这当然要复杂得多。