Python Décoder les paquets D2

Inscrit
28 Avril 2020
Messages
6
Reactions
0
#1
Bonjour, Bonsoir

Je suis actuellement entrain d'apprendre le python, issue du Web a la base l'apprentissage et long mais je m'accroche.
Je tien a spécifié que j'ai pris le temp de scruté les différents tutoriaux sur c-a-d, étudier les packets grâce a WireShark mais comprendre la logique du décodage de paquets D2 en python s'avère être une réelle épreuve pour moi.

J'utilise la méthode attaque en MITM avec python en "Hookant" ( je sais pas si ça se dit ^^' ) le process de D2.
Pour cela j'utilise le framework Fritm de @Labo

Voici mon code actuel:

Python:
import fritm
import select

def dumb_callback(soCli, soSrv):

    conns = [soCli, soSrv]
    other = {soCli: soSrv, soSrv: soCli}

    active = True

    try:
        while active:

            rlist, wlist, xlist = select.select(conns, [], conns)
            
            if xlist or not rlist:
                break

            for r in rlist:
                data = r.recv(8192)
                

                if other[r] == soSrv:
                    print(f'[SERVEUR] => ' + data)

                if other[r] == soCli:
                    print(f'[CLIENT] => ' + data)

                if not data:
                    active = False
                    break

                other[r].sendall(data)

    finally:
        for c in conns:
            c.close()

fritm.hook("Dofus.exe", 5555)
httpd = fritm.start_proxy_server(dumb_callback, 5555)
Pour vous montrer mon investissement afin que vous ne pensiez pas que je souhaite que vous me mâchiez le travail.

J'ai en amont :

- étudié la construction d'un paquet dofus a l'aide de WireShark et de convertiseurs en ligne pour extraire l'id du message
- étudié le framework afin de différencier les message reçu par le serveur et par le client
- étudié la façon de décoder des bytes en python grâce a .decode() par exemple

Seulement voilà je suis véritablement perdu et dépourvue de réponses qui pourrait m'aider a comprendre, je souhaiterais décoder le message reçu de la part du serveur afin de pouvoir récupérer l'id du paquet, le nom, la data, etc..

Mais à vrais dire je ne sais pas par ou commencer, ni même comment attaquer le paquet en Python.. :/

J'espère sincèrement que vous pourriez me dirigé afin que je puisse comprendre cela.

Merci de vôtre aide et de vôtre temps !
 
Haut Bas