【发布时间】:2013-07-10 14:01:36
【问题描述】:
我目前正试图通过注入 DLL 并绕过几个函数来向基本服务器应用程序添加一些功能,但我遇到了存储的 IP 地址在两次调用之间损坏的问题。
首先我绕过“接受”并解析一些值,然后将它们输入到连接类中并将其添加到列表中。
接受绕行功能:
std::list<Connection*> ConnectionsList;
SOCKET WINAPI MyAccept(SOCKET s, sockaddr *addr, int *addrlen)
{
...
ConnectionsList.push_back(new Connection(ClientSocket, ipstr));
...
}
连接类:
SOCKET s;
char * ipAddress;
char * playerName;
Connection::Connection(SOCKET sock, char * address)
{
s = sock;
ipAddress = address;
}
我还绕道了“closesocket”,此时我想从连接列表中删除套接字。如果我在此函数上设置断点,则 IP 地址似乎已损坏。
有人知道为什么会这样吗?
【问题讨论】:
-
s 从 296 变成 292 有关系吗?
标签: c++ corruption dll-injection detours