0

ゲーム クライアントに dll を挿入し、Easyhook を使用して send/recv をフックしました。クライアントがサーバーに送信し、サーバーから受信するパケットを簡単に監視できます。自分のパケットを送信したいので、次のような関数を作成しました。

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 に答える