Jump to content
×
×
  • Create New...
  • 0

Programmation [Socket/Packet] Sniff


Valoutifruit
 Share

Question

Bonjour à tous,

 

Je sais coder en Java et donc je me suis lancé un défit, me réaliser un emu dofus 2.0.

J'ai pour l'instant codé qu'un truc, quand le client envoie un socket je le reçois mais impossible de le lire. Ma question est :

 

Comment je peux lire ce socket ?

 

"j'ai biensur fait un BufferedReader ... mais je sais qu'il faut décrypter un truc mais je sais pas comment... "

 

J'aimerai aussi savoir comment on fait pour savoir "Quoi" Envoyer au client pour qu'il affiche un truc special. En gros comme sur la 1.29 imagions que j'envoie "aaFl" le client affiche un message "Le nom de compte ou le mot de passe est incorrect"

 

Merci beaucoup de votre aide, biensur je prends tout exemple dans tout type de langage !

Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0

tu peux utiliser une variable y qui lance le message x qui s'occupe de l'action (message{xy.

 

Du type:

 

(lostconnection=common

type(connect_message

(lostconnection-(connection_refused=

(mot de passe incorrect)=connection_refused

i'm not a philosophic but i'm a tank -T4NK

Link to comment
Share on other sites

  • 0

Pour cela je suis d'accord avec toi mais moi ce que je parle c'est de ça par exemple :

 

public static void REALM_SEND_REQUIRED_VERSION(PrintWriter out)
{
	String packet = "AlEv" +Constants.CLIENT_VERSION;
	send(out,packet);
	if(Ancestra.CONFIG_DEBUG)
		RealmServer.addToSockLog("Conn: Send>>"+packet);
}

 

Moi ce que je veux savoir c'est comment on connait le "AlEv" ? Merci :)

Link to comment
Share on other sites

  • 0

Pour cela je suis d'accord avec toi mais moi ce que je parle c'est de ça par exemple :

 

public static void REALM_SEND_REQUIRED_VERSION(PrintWriter out)
{
	String packet = "AlEv" +Constants.CLIENT_VERSION;
	send(out,packet);
	if(Ancestra.CONFIG_DEBUG)
		RealmServer.addToSockLog("Conn: Send>>"+packet);
}

 

Moi ce que je veux savoir c'est comment on connait le "AlEv" ? Merci :)

 

Hmm, d'après ce que tu me dis le "AlEv" renvoi le packet en dehors de la config.

 

Le AlEv varie selon le type d'action que tu lui accordes.

Exemples:

 

String packet="AlEv" (+actionID={common_string

(packet="AlEv"= rootwi(actionID_string

 

Voila. ;)

i'm not a philosophic but i'm a tank -T4NK

Link to comment
Share on other sites

  • 0

Je ne comprends toujours pas comment on trouve le AlEv ^^

 

Tu es débutant non ?

 

Reprenons ton code:

public static void REALM_SEND_REQUIRED_VERSION(PrintWriter out)
   {
       String packet = "AlEv" +Constants.CLIENT_VERSION;
       send(out,packet);
       if(Ancestra.CONFIG_DEBUG)
           RealmServer.addToSockLog("Conn: Send>>"+packet);
   } 

 

Le " String packet = "AlEv" +Constants.CLIENT_VERSION;

send(out,packet);

if(Ancestra.CONFIG_DEBUG)

RealmServer.addToSockLog("Conn: Send>>"+packet); "

 

signifie que le AlEv varie suivant la variable atribué. La config est alors modifié extérieurement en annonçant au Realm que le packet a été envoyé.

 

Exemple:

String packet = "AlEv" +Constants.CLIENT_VERSION;
       send(out,packet);
(rootwi(AlEv_18)=constants.CLIENT_VERSION;
RealmServer.addToLog_("AlEv"take.18)

 

voila. ;)

i'm not a philosophic but i'm a tank -T4NK

Link to comment
Share on other sites

  • 0

Ca j'ai compris t'inquiete pas ^^ Mais comment un developpeur fait pour savoir qu'il faut envoyer AlEv et non pas d'autres lettres. C'est pas du pif sinon le client ne comprendra pas le packet. Moi ce que je veux savoir c'est comment le DEVELOPPEUR à t'il pu savoir qu'il fallait envoyer "AlEv" au client pour que cela modifie la version du client... Merci !

Link to comment
Share on other sites

  • 0

Ca j'ai compris t'inquiete pas ^^ Mais comment un developpeur fait pour savoir qu'il faut envoyer AlEv et non pas d'autres lettres. C'est pas du pif sinon le client ne comprendra pas le packet. Moi ce que je veux savoir c'est comment le DEVELOPPEUR à t'il pu savoir qu'il fallait envoyer "AlEv" au client pour que cela modifie la version du client... Merci !

 

Car AlEv signifie une arithmétique ancienne capable de lancer le renvoi de packet.

i'm not a philosophic but i'm a tank -T4NK

Link to comment
Share on other sites

  • 0
  • Retraité

J'aimerai aussi savoir comment on fait pour savoir "Quoi" Envoyer au client pour qu'il affiche un truc special. En gros comme sur la 1.29 imagions que j'envoie "aaFl" le client affiche un message "Le nom de compte ou le mot de passe est incorrect"

 

Pour répondre à ta question, vu que personne ne l'a fait je crois. Tu trouves ces informations dans les sources du client. (En tout cas en 1.29)

Link to comment
Share on other sites

  • 0

J'aimerai aussi savoir comment on fait pour savoir "Quoi" Envoyer au client pour qu'il affiche un truc special. En gros comme sur la 1.29 imagions que j'envoie "aaFl" le client affiche un message "Le nom de compte ou le mot de passe est incorrect"

 

Pour répondre à ta question, vu que personne ne l'a fait je crois. Tu trouves ces informations dans les sources du client. (En tout cas en 1.29)

 

Je l'ais fais. -_-

i'm not a philosophic but i'm a tank -T4NK

Link to comment
Share on other sites

  • 0
  • Retraité

Les sources sont dispo' sur le net :

Hidden Content

    Give reaction to this post to see the hidden content.
Tu trouves les infos sur les paquets dans Dofus/aks/DataProcessor.as (

Hidden Content

    Give reaction to this post to see the hidden content.
) par exemple.

 

C'est la liste des paquets que le client reçoit par le serveur.

  • Funky Emulation 1
Link to comment
Share on other sites

  • 0
  • Retraité

Hum, dofus 2.0 est très complexe, Boubou avait fait un ému, et avait expliqué qu'a chaque M.A.J les devs mettait des parcelles de code à l'intérieur même du client qui le rendait stérile si la config était modifié, je pense que c'est une perte de temps à moins de te fixer à 1 seule version.

 

Valou oublis pas la fucking balise ;)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.