Salut, des tuto ont déjà été fait mais c'est pas grave :
-Tous les packets se trouvent dans le DofusInvoker.swf, il "suffit" de les traduire en c#
-Pour se qui est de la reconnaissance des packet, chaque packet à un ID propre.
Par exemple le packet HelloConnectMessage a pour id 3.
-Oui, il faut que tous les packets venant du client sois transmis au serveur et inversement mais, il y a un mais.
Lorsque tu te connecte à un serveur (dans dofus, par exemple Jiva) tu dois redirigé dofus vers ton bot et ton bot se connectera au serveur à ça place, comme pour l'indentification. Pour cela, tu dois modifié un packet.
Et les packets, ils ne sont pas crypté, ils sont sérialisé car pour communiqué avec des sockets, ont utilise des Bytes (sois des chiffres de 0 à 255) donc, par exemple le nom de ton personnage qui est un string va être sérialisé en une liste de byte. Pour désérialisé les packets, tu doit traduire le DataReader (dans le dofusInvoker.swf aussi) et aussi le DataWriter en passant pour pouvoir re-sérialisé les packets ensuite.
Par contre, lors de la connection au serveur d'authentification le mot de passe est crypté pour qu'on puisse pas l'intercepté.
Donc pour commencé, tu dois pouvoir récupéré l'ID d'un packet, on appel ça le "Parsing".
Bonne chance :)