拦截套接字函数(windows)
Posted
技术标签:
【中文标题】拦截套接字函数(windows)【英文标题】:Intercept socket functions (windows) 【发布时间】:2012-05-15 15:46:10 【问题描述】:我有一个程序,它加载库 test.dll,这个库使用 ws2_32.dll 创建套接字和发送/接收数据包。我可以将我的 C++ 库注入这个进程,但不知道如何拦截函数“socket”、“accept”的 test.dll 调用。有人可以帮我解决这个问题吗? 谢谢!
【问题讨论】:
请说明您到目前为止自己做了什么以及收到了哪些错误。 【参考方案1】:你需要 Hook 接受函数。 您可以通过使用库来做到这一点,例如MS Detours(早期版本是免费的,您可以使用 1.5 版,只需 google 即可)。 打电话
DWORD a=DetourFindFunction("Ws2_32.dll","accept")
它会给你一个指向接受函数的指针。 然后你可以通过调用来绕道
DetourFunction(a,&Yourfunction)
.
DetourFunction 返回指向“accept”的新指针,因此请确保在“YourFunction”末尾调用它以确保程序不会崩溃。
您也可以使用 Inlineassembler 自行重定向函数。当然,这要复杂得多。
【讨论】:
您不需要汇编程序来重定向 DLL 函数,您可以直接修补 PE Imports 表。以上是关于拦截套接字函数(windows)的主要内容,如果未能解决你的问题,请参考以下文章
在 c++ 中通过套接字(发送函数)发送图片,但不接收完整(Windows)!