Analyse Liste des alliances d'un serveur

dampenfr31

Contributeur
Inscrit
2 Juin 2009
Messages
49
Reactions
44
#1
Bonjour, bonsoir,
pour des besoins spécifiques, je me suis penché sur la liste des Alliances et Guildes que l'on peut trouver dans l'annuaire en jeu.
Trouvant ces données utiles, je me suis demandé quel packet transférait ces informations.
J'ai cherché pendant 30min en épluchant packet par packet, rien..

C'était donc forcément par requête HTTP du client vers les serveur d'Ankama.

En utilisant Fiddler, j'ai donc constaté comme prévu que les informations parviennent au client par requête HTTP.

En effet, voici l'URL pour les alliances (il y a aussi guildes + versatile guild & ally) :

http://dl.ak.ankama.com/games/dofus2/game-export/AllianceListMessage.[SERVER-ID].data

Malheureusement, ces données ne sont pas plaintext donc illisibles (moi qui voulais traiter les données brutes via une fonction).

L'annuaire est géré par la classe SocialDataFrame.as, où l'on parle d'une signature dans le fichier config.xml (clé gameExport.signaure)
Mais il se trouve que cette signature se trouve uniquement dans les builds développeur/test comme le confirme la condition ligne 81&83.

Cette signature est normalement en format BASE64 puis décodée en un tableau d'octet pour que l'intégrité des données soit vérifiée.

Sous cette condition, on trouve le code utilisé par nos clients "retail" afin que l'annuaire soit rempli, qui nous renvoie sur un AllianceListRequestAction qui nous envoie lui même sur un AllianceWrapper.

C'est là que je suis bloqué, je ne sais pas comment faire afin d'extraire les données des alliances. Est-ce que quelqu'un à déjà procédé à l'extraction de ces données ? Est-ce que vous connaissez un projet qui exploite ces données ? Avez-vous une idée sur comment y procéder ?

Je vous remercie d'avance pour vos réponses
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#2
Je viens d'ouvrir le fichier pour regarder sa ma l'air assez simple de le lire

y'a le tag / nom après pour le reste je pense qu'il suffit juste d'aller voir le packet AllianceListMessage pour savoir à quoi correspond les autres trucs

edit: enfaite je viens de voir il s'agit justement du packet AllianceListMessage y'a l'id du packet en haut et la size 6422 => 6408 et la size des données 327 donc pour le lire c'est simple tu cherche AllianceListMessage dans les sources dofus et tu regarde la fonction deserialize
 
Inscrit
15 Aout 2016
Messages
20
Reactions
0
#3
Cest grossièrement un message Dofus stocké dans un fichier data
 
Haut Bas