2.0 Bot chasse : gestion des phorreurs (sniffer?)

Inscrit
1 Octobre 2019
Messages
2
Reactions
0
#1
Hello !

Il y a environ 1 an, j'ai fait un bot chasse dans le but de les faciliter (en nodejs).
Il ne gérait pas les combats ni les phorreurs mais ça me convenait, c'était semi-automatisé.
Il utilise Tesseract pour lire les directions, indices, et positions de départ. Il trouve les indices à l'aide de Dofus Map, la dragodinde fait le reste. Lorsque c'est un phorreur il me demande la position de celui-ci et reprend la chasse.
Aujourd'hui je travaille dessus à nouveau et je suis ici pour faire appel à votre imagination et à vos conseils.

Pour les combats, ça ne devrait pas poser trop de problèmes l'ayant déjà fait sur Retro.
Pour les phorreurs, je suis à court d'idées. Impossible de faire une recherche d'image à cause des décors qui peuvent passer sur le phorreur, et la recherche par pixel me paraît trop peu précise pour ce genre de recherche (il trouverait sur certaines maps des pixels de même couleur).

La seule idée qui me vient à l'esprit c'est de sniffer les paquets, mais je ne sais même pas si lors de l'arrivée sur une map je pourrais voir dans le paquet qu'un phorreur s'y trouve. (Je pense que si? logiquement il me semble que c'est impossible autrement mais je ne suis pas sûr)
Quoi qu'il en soit j'ai commencé à essayer de lire les paquets en python, notamment à l'aide du tutoriel de Labo. (Je ne m'y connais pas en réseau)
Lorsque je lance le sniffer live, j'arrive à récupérer un ou deux paquets au lancement du programme, puis plus rien. J'ai essayé avec scapy et kamene le résultat est le même. J'ai l'impression qu'il freeze ou ne détecte pas les paquets (même sans le filtre TCP 5555). Ce blocage m'empêche d'approfondir dans la lecture des paquets reçus.


Auriez-vous quelques pistes pour le sniffer en python ? (ou autre langage why not)
Ou quelques idées pour détecter les phorreurs ?

Merci !


EDIT: Je viens de tomber sur ce sujet : https://cadernis.com/index.php?threads/bot-chasses-au-trésor-et-maps-bloquantes.2528/
J'essaye d'utiliser le sniffer de Labot mais lorsque je lance sudo python -m labot.sniffer.main j'obtiens : No module named labot.sniffer.main
(Le problème doit sûrement être idiot, je ne m'y connais pas vraiment en python)
 
Dernière édition:
Inscrit
10 Mai 2015
Messages
351
Reactions
43
#2
Hello,

Etant donné que mon bot est full socket la question pour moi ne se pose pas, c'est très facile de savoir si le phorreur se trouve ou non sur la map avec les packets.

Ce packet : TreasureHuntStepFollowDirectionToHinteger permet de savoir si le prochain indice est un phorreur à trouver ou un indice classique.

Dans le cas où c'est un phorreur, tu peux obtenir son identifiant dans le packet en question, et lorsque tu parcours chaque map tu dois vérifier avec ce packet : MapComplementaryInformationsDataMessage si l'identifiant du phorreur se trouve sur la map.

Dans ton cas c'est un peu relou de faire un sniffer juste pour récupérer le phorreur, il me semble tu pourrais activer un raccourcis sur chaque map afin de rendre visible le texte pour chaque actor sur la map. Et avec ça, tu utilises Tesseract pour lire si un phorreur se trouve sur la map ou non. Ce n'est évidemment qu'une suggestion, je ne l'ai pas testé moi même sorry :(

Sinon tu pourrais faire un hook de la fonction qui charge le phorreur de la map ou encore scanner le processus du client et pourquoi pas modifier la mémoire.

Enfin voilà j'ai pas d'autres idées, je ne t'ai pas parlé du fait de modifier le client de jeu pour des raisons de sécurité. Si tu as eu une autre idée que les miennes, hésite pas à la poster sur ce fil, ça m'intéresse de voir les différentes approches.
 
Haut Bas