c++ - 拦截套接字函数(Windows)

标签 c++ windows sockets intercept

我有一个程序,它加载库test.dll,该库使用ws2_32.dll来创建套接字并发送/接收数据包。我可以将我的 C++ 库注入(inject)到这个进程中,但不知道如何拦截 test.dll 函数“socket”、“accept”的调用。有人可以帮我解决这个问题吗? 谢谢!

最佳答案

你需要Hook接受函数。 您可以通过使用库来做到这一点,例如MS Detours(早期版本是免费的,您可以使用版本 1.5,只需 google 即可)。 调用

DWORD a=DetourFindFunction("Ws2_32.dll","accept")

它会给你接受函数的指针。 然后你可以通过调用

绕过它
DetourFunction(a,&Yourfunction)

.

DetourFunction 将新指针返回到“accept”,因此请务必在“YourFunction”末尾调用它,以确保程序不会崩溃。

或者,您可以使用内联汇编器自行重定向函数。当然,这要复杂得多。

关于c++ - 拦截套接字函数(Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604304/

相关文章:

node.js - vue-socket.io 应用程序未收到来自 express socket.io 应用程序的发射

java.net.SocketException : Permission denied openshift

c++ - 注册用于 Lua 5.2 的 C++ 类

c++ - 在 cpp 中重载 << 运算符的正确方法是什么

python - 如何在 Windows32 上构建 pysvn?

windows - GitKraken 配置文件 (Windows)

c++ - WTL 拆分器示例中的调试断言

c++ - VC++ 2010 "array is not a member of std"错误

c++ - 是否有用于获取代理用户名和密码的标准 Windows 对话框?

python - 拆分 python 数据包?