Autre Reader/writer python

Inscrit
18 Avril 2013
Messages
19
Reactions
0
#1
Bonjour,

Je me suis lancé comme objectif de créer un petit bot MITM en Python 3.
J'utilise le module struct (https://docs.python.org/3.1/library/struct.html) pour mon reader/writer.
Dans les sources du jeu, la fonction readUTF() est utilisée en AS3 pour lire une chaine de caractère en utf-8.
Je ne trouve pas la fonction équivalente en Python3.

Pouvez vous m'aidez ?

Merci d'avance
 
Inscrit
27 Aout 2012
Messages
264
Reactions
0
#2
Un readUTF c'est simplement un readShort pour avoir la taille de la chaine de caractères puis des readByte pour chaque caractère de la chaine.
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#3
Code:
lenght = data.readShort();
string = data.readBytes(lenght);
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#4
Je connais bien Python, et je te conseille pas d'utiliser struct, ce n'est pas très utile, et ce n'est pas compliqué de faire un truc plus adapté à dofus.
Quand tu récupères tes données, elles sont dans un array de type bytes (je t'invite à taper help(bytes)) que l'on va nommer data. Tu peux récupérer la chaine en utilisant la fonction decode comme ceci :
Code:
data.decode()
 
Inscrit
18 Avril 2013
Messages
19
Reactions
0
#5

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#6
Ah, comme ça, ça va d'utiliser struct, quoique tu aurais pu coder toi-même les fonctions. J'avais peur que tu utilises struct pour décoder les paquets entiers avec des strings bizarres :p
Oui, je m'y connais plutôt, et tu t'en sors bien pour l'instant :)
Juste, c'est assez mignon tes méthodes getBuffer, ça m'a bien fait rigoler :mrgreen:
 
Inscrit
18 Avril 2013
Messages
19
Reactions
0
#7
Labo a dit:
Ah, comme ça, ça va d'utiliser struct, quoique tu aurais pu coder toi-même les fonctions. J'avais peur que tu utilises struct pour décoder les paquets entiers avec des strings bizarres :p
Oui, je m'y connais plutôt, et tu t'en sors bien pour l'instant :)
Juste, c'est assez mignon tes méthodes getBuffer, ça m'a bien fait rigoler :mrgreen:
J'ai encore l'habitude des getters et setters. :D
 
Haut Bas