0

我将一个 dll 注入游戏客户端并使用 Easyhook 连接发送/接收。我可以轻松监控客户端发送到服务器和从服务器接收的数据包。我想发送自己的数据包,所以我做了一个这样的函数:

public static void SendPacket()
{
   string packet= "dance emotion packet";
   byte[] byData = System.Text.Encoding.ASCII.GetBytes(packet);
   IntPtr unmanagedPointer = Marshal.AllocHGlobal(byData.Length);
   Marshal.Copy(byData, 0, unmanagedPointer, byData.Length);
   send(socket, unmanagedPointer, byData.Length, 0);
}

我认为程序发送数据包很好,但我没有从服务器收到任何东西。例如,如果我发送一个数据包来做一个舞蹈情感,服务器没有响应。有趣的是,当我在客户端做某事(例如开一家商店或搬家或任何向服务器发送数据包的事情)时,服务器会响应我在注入的 dll 中使用 SendPacket() 函数之前发送的舞蹈数据包.

所以问题是我的 dll 无法发送数据包或服务器没有响应。有人对此有解决方案吗?

提前致谢。

4

1 回答 1

0

它看起来不像 EasyHook 问题。您可能错过了一些特定的游戏协议细微差别,这些细微差别仅在游戏本身正确发送服务器响应您注入的数据包所需的信息后才起作用。

于 2014-05-17T15:51:30.277 回答