Python PyShark / Scapy : AnkaSisstant

nepk

Membre
Inscrit
23 Janvier 2016
Messages
21
J'aime
5
#1
Hello !

disclaimer (au cas où) : je ne suis pas familier avec le protocole de Dofus2

J'avais une idée qui me trottait dans un coin de la tête après avoir vu le tutoriel de Labo (ici : https://cadernis.fr/index.php?threa...-sniffer-en-live-les-paquets.1486/#post-23720)

Si on peut sniffer les paquets et lire ce qu'il y a dedans, pourquoi ne pas faire un tool pour aider au jeu, une sorte de conseiller ...
Un peu comme un tracker au Poker, mais en mieux.

Je pensais à certaines petites features sympas :
- Aide aux chasses (plus besoin d'entrer sa position, il dit auto où aller pour réussir la chasse, en utilisant les API de dofus-map)
- Évaluation auto des equip (notemment pour trouver auto des bons plans en HDV)
(ex fomule pour avoir un score -> (somme des produits poidsRuneCarac(i)*valeur(i)) / (somme des produits poidsRuneCarac(i)*valeurMAX(i)) )
- Puis sorte de iLvL par extension (avec classement éventuellement)
- Liste des adversaires rencontrés en Koli & statistiques sur eux
- Calcul auto du puits, et conseil de fm
- COMMUNAUTAIRE : Emplacement des portails
- Statistiques de jeu (Temps moyen par tour, apm en combat, temps moyen de changement de carte, etc..)
- ...

Je m'arrête là mais les possibilités sont nombreuses et sympas (enfin à mon sens),
ça offre un réel avantage, sans pour autant être de la triche... enfin un peu, mais pas trop quoi

Question : qqn a déjà essayé / fait qqch comme ça ?
Je préfère poser la question plutôt que perdre mon temps à chercher mdr : qqn voit un élément qui peut rendre ça infaisable ?
Genre paquets cryptés, sniffers non performants (perte d'infos, aléas dans un accès concurrent ou je ne sais quoi, ..), etc...
J'ai pas envie de faire ça en MITM, parce que ça deviendrai vraiment de la triche pour le coup.
 
Inscrit
10 Juin 2018
Messages
4
J'aime
2
#2
"qqn a déjà essayé / fait qqch comme ça" --> Oui
"qqn voit un élément qui peut rendre ça infaisable" --> Non, c'est totalement faisable

Par contre pour ce qui est de la "triche" même comme ça tu restes contraire aux "règles" du jeu donc c'est de la triche à proprement parler (je vois pas trop pourquoi tu fais une différence entre un sniffer et un MITM pour lequel tu te contenterais de lire les données d'ailleurs). Je pense notamment en combat où tu peux avoir accès à des données qui sont envoyées au client pour les prévisualisations mais qui ne sont jamais données directement aux joueurs (fuite/initiative par exemple).
 
Inscrit
28 Mai 2017
Messages
1
J'aime
2
#3
Hello,

Premier message pour moi sur ce forum mais j'y passe régulièrement depuis un moment quand je m'ennuie :).

Si ça peut te rassurer, ce genre d'outils est tout à fait faisable mais il te faut au minimum un protocol builder pour construire un sniffer à partir duquel tu pourras exploiter toutes les infos dont tu as besoin pour l'application que tu veux en faire.

A l'époque j'avais fait un outil d'aide à la chasse au trésor qui marchait bien mais était assez crade, j'avais récupéré des bouts de codes par ci par là en C# qui me permettaient de lire les messages à partir d'un sniffer réalisé à l'aide de SharpPcap. Comme la communication client-serveur Dofus 2 n'est pas chiffrée et tant que tu ne veux faire que de la lecture, c'est pas indispensable de faire ça en MITM. Ensuite j'ai pompé la base de données de Dofus Hunt et je retournais les infos dans une petite console qui restait au premier plan. C'était assez basique mais vachement efficace, il me fallait environ 4 fois moins de temps pour finir une chasse. Ensuite il y a eu le nerf des chasses et j'ai pas eu le courage de continuer comme j'avais pour objectif de remplacer Dofus Hunt ;)

Au final, je trouve qu'aujourd'hui ce genre d'outils facile à développer manque un peu. Pour moi, la principale raison c'est qu'il n'y a pas de brique de base technique dispo à partir de laquelle mettre en place ce genre de fonctionnalités. Par brique de base, j'entends un outil
du genre AmaknaCore Sniffer, mais qui proposerait une API toute simple permettant d'exploiter les messages du jeu et ainsi construire d'autres applications reposant dessus facilement.

Aujourd'hui, si tu veux faire ce genre d'outil, il faut fournir pas mal d'effort afin de reconstruire cette stack technique qui n'a pas de réelle valeur ajoutée et qui est pas mal chronophage. Aussi, j'ai cru comprendre que dans la culture du forum la compréhension de cette stack qui te permet d'exploiter les messages du jeu est un peu un passage obligé, ce qui expliquerait pourquoi cette brique de base n'existe pas.

En tout cas, je t'encourage vivement à te lancer dans la conception et la construction de ce genre d'outil car c'est très enrichissant et potentiellement utile à plein de monde ;)
 
Inscrit
23 Janvier 2016
Messages
21
J'aime
5
#4
Hello !
(C'est pas un up du tréfonds des âges vu que je bosse encore actuellement sur ce projet (quand j'ai le tmps))

C'est vrai que ça serait sympa d'avoir une telle brique, mais je pense que de ne pas l'avoir compose une sorte de barrière à l'entrée, c'est pas plus mal.

Pour le Protocole Builder, du coup pour l'instant c'est moi mdr, ça me fait la main je verrai plus tard s'il devient intéressant d'en avoir un.
Je commence par l'outil chasses au trésor.

Il me reste à :
- deserialiser CurrentMapMessage, MapComplementaryInformationsDatamEssage, MapInformationsRequestMessage
- Trouver un lien entre l'id indice dofus-map et l'id dofus (donc je crois qu'il faut un reader d2o et reader i18n pour le texte)
(d'ailleurs si qqn a une piste chui cho, un peu la flemme de le faire à la main)
- Conversion MapId en coordonnées (enfin je crois, j'ai pas vu si les coordonnées étaient dans les infos de map)


Edit:
ptdr c'est bon pour l'indice, suffit de faire poiLabelid+1 et on a l'id dans Dofus-map
 
Dernière édition:
Haut Bas