Jump to content
Sign in to follow this  
bullet

(Problème) Sniffing packet map

Recommended Posts

Bonjour à tous,

 

J'aimerais créer un petit tool qui intégrit entre l'emulateur et le client, en gros un sniffeur de packet qui n'enregistre que les packets des maps.

 

Donc voici la partie du code qui sniffe le packet : 

//byteData = les packets reçus
MemoryStream ms1 = new MemoryStream(byteData);
                    BinaryReader bin = new BinaryReader(ms1);
                    byte header = bin.ReadByte();
                    byte service = bin.ReadByte();
                    int length = bin.ReadInt16();
                    short s1 = bin.ReadInt16();
                    short s2 = bin.ReadInt16();
                    byte s3 = bin.ReadByte();
                    byte protocol = bin.ReadByte();
                    short checksum = bin.ReadInt16();
                    int srcip = bin.ReadInt32();
                    int dst = bin.ReadInt32();

                    if (getStrIp(dst).Equals("213.248.126.84")) //l'adresse du serveur du jeu
                    {
                        using (StreamWriter fileWriter = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\Packets.txt", true))
                            fileWriter.WriteLine("[" + DateTime.Now.ToShortTimeString() + "] Paquet reçu : " + bin.ReadInt32()
                                );
                    }

Normalement ca doit me fournir l'id de la map (selon ce que j'ai compris après avoir analyser Stump)

 

Mais ca ne donne pas l'id de la map ca donne un entier du genre 37494920017

 

Une idée s'il vous plaît ?
Merci d'avance

Share this post


Link to post
Share on other sites

a risque de paraitre con il me semble que les ID des map c'est justement des grosses ID comme ça (pas sur je touche pa a la 2.0) mais au debut des 1er emulateurs ig c'est se que j'avais vue ...

Share this post


Link to post
Share on other sites

a risque de paraitre con il me semble que les ID des map c'est justement des grosses ID comme ça (pas sur je touche pa a la 2.0) mais au debut des 1er emulateurs ig c'est se que j'avais vue ...

Oui au faîtes tu as raison ils sont des grosses ID mais pas comme celle en haut, au faîtes parfois ça me donne un ID de 6 chiffres, 8 chiffres 9 10 .. mais tous ces ID n'existent pas dans les maps0.d2p et les autres fichiers de d2p de maps.

Merci pour ta réponse.

Share this post


Link to post
Share on other sites

Tu regarde quel packet ? Et tu le lis bien comme il faut ? (Regarde sur Stump en cherchant l'id, nom du packet que tu cherche à lire pour voir comment il est composé)

Share this post


Link to post
Share on other sites

Tu regarde quel packet ? Et tu le lis bien comme il faut ? (Regarde sur Stump en cherchant l'id, nom du packet que tu cherche à lire pour voir comment il est composé)

Merci pour ta réponse,

Voici le packet que je cherches (GameMapMovementRequestMessage) : 

public const uint Id = 950u;
public override void Deserialize(IDataReader reader)
		{
			ushort num = reader.ReadUShort();
			short[] array = new short[(int)num];
			for (int i = 0; i < (int)num; i++)
			{
				array[i] = reader.ReadShort();
			}
			this.keyMovements = array;
			this.mapId = reader.ReadInt();
			if (this.mapId < 0)
			{
				throw new Exception("Forbidden value on mapId = " + this.mapId + ", it doesn't respect the following condition : mapId < 0");
			}
		} 

Un ReadInt pour obtenir l'id de map, pourtant ça ne fonctionne pas pour moi

Tu sais même pas se que ta coder ...

Peux-tu expliquer s'il te plaît ?

Share this post


Link to post
Share on other sites

Comment tu identifie le packet pour savoir qu'il s'agit bien de GameMapMovementRequestMessage ? Car le bin.ReadInt32(); te donneras pas le bon Id du packet à moins que c'est sensé te donné l'id de a map ? (mais sa marchera pas la normal lol) et je dois t'avouer que je ne comprend pas à quoi te sert toutes la partie haute de ton code si c'est sensé décortiquer les packets reçus tout est faux et normal que tout le reste soit erroné après

Share this post


Link to post
Share on other sites

Comment tu identifie le packet pour savoir qu'il s'agit bien de GameMapMovementRequestMessage ? Car le bin.ReadInt32(); te donneras pas le bon Id du packet à moins que c'est sensé te donné l'id de a map ? (mais sa marchera pas la normal lol) et je dois t'avouer que je ne comprend pas à quoi te sert toutes la partie haute de ton code si c'est sensé décortiquer les packets reçus tout est faux et normal que tout le reste soit erroné après

J'avoue qu'on doit identifier qu'il s'agit d'un packet de mouvement pour que ReadInt nous donne l'id de la map, mais, si par exemple j'envoie un message dans le canal général, je détruis un objet et je me déplace, cela fait 3 packets, donc je dois obtenir un id de map correct et deux id incorrets, non ? Sinon aurais-tu une idée comment corriger le code?

J'apprécie ta réponse :) Merci beaucoup

Share this post


Link to post
Share on other sites

J'avoue qu'on doit identifier qu'il s'agit d'un packet de mouvement pour que ReadInt nous donne l'id de la map, mais, si par exemple j'envoie un message dans le canal général, je détruis un objet et je me déplace, cela fait 3 packets, donc je dois obtenir un id de map correct et deux id incorrets, non ? Sinon aurais-tu une idée comment corriger le code?

J'apprécie ta réponse :) Merci beaucoup

Euh non mais tu obtiendras jamais rien de juste tu read pas de la bonne manière et pour le reste même si tu n'effectue que c'est 3 actions y'a de fortes chances que tu reçoive plus que 3 packets

Share this post


Link to post
Share on other sites

Euh non mais tu obtiendras jamais rien de juste tu read pas de la bonne manière et pour le reste même si tu n'effectue que c'est 3 actions y'a de fortes chances que tu reçoive plus que 3 packets

Euh tu as raison, j'obtiens pleins de packets je sais pas d'ou ça vient (parfois + de 1000 enregistrements), je fais comment pour lire de la bonne manière ? Et merci beaucoup pour ton aide, super sympa de ta part :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...