Le botting en étapes ?

Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#1
Bonjour, je viens pour exposer ma façon de voir les choses et j'aimerais avoir sois une confirmation sois ... Je vais me faire foutre :D.
Le sujet touche aux bots (pas que Dofus, je parles du bot en général), dans l'ordre des choses j'imagine que les choses à faire serait à peut prêt ça:

1: Étudier si possible le code source du client.
2: Sniffer les packets échanger et essayer de comprendre le fonctionnement (voir le cryptage) du système.
3: Simuler les échanges et essayer de convenir à une automatisation identique par rapport au client original.

Bien sûr dès l'étape 1 on peut parfois directement passer sur l'étape 3, selon la facilité du programme et la complexité du code, si on joue à un jeu tout petit tel que le jeu T4C de l'époque il est éventuellement facile de créer un bot à partir de l'unique source du jeu. Tout dépend de ce qu'on à en face.

Mais globalement, c'est ça non ? Pour Dofus il suffit qu'une fois qu'on à le "cryptage" des packets (bon à priori c'est pas crypté, enfin je vois beaucoup de contradiction), il suffit de sniffer les packets et ensuite de reproduire ce qu'on voit quoi ?

C'est juste pour être sûr pour moi même ^^

Thanks !
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#2
C'est ça :)
Pour Dofus, les paquets de la 1.29 sont envoyés en clair (une simple chaine de texte).
Pour la 2.0, les variables sont sérialisées respectant la norme Big Endian. Donc ce ne sont plus des chaines de texte en clair mais des suites de bytes qui sont transférées sur le réseau, ce qui peut donner l'impression lors du sniffage d'une encryption. En fait pas du tout :)
 
Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#3
Bonjour tazman !

Merci tu as retiré toutes mes interrogations ! ^^, surtout au niveau du cryptage.
J'ai beaucoup progresser dans la programmation pourtant je n'ai pas appris grand chose de plus, bien que j'en suis devenu pro (ma propre boite de développement);
je penses que je suis juste devenu moins con ...

Merci à toi en tout cas :D

Ps: En parlant du Big Endian, j'ai vu rapidement un tuto qui en parlait et perso j'ai jamais appris ce genre de chose, mais ça disait "le plus grand en premier contrairement au little" fin l'autre little ou small ou jsais plus. Bref le petit quoi .. >_>

J'ai pas trop bien compris, donc 00 00 01 devient 01 00 00, ok, mais par exemple 15 72 1D devient quoi? 1D 72 15 ? La personne disait qu'il fallait prendre des DLL et tout un bordel, un tableau de bytes qu'on inverse n'est pas suffisant? C'est peut être trop lent c'est vrais que je n'ai jamais travailler la vitesse et la praticité de certaines façons de faire ..

(Sur le coup j'ai la flemme de réfléchir mais imaginons j'ai un tableau de 80 bytes, je créer un tableau vide de 80 bytes, une valeur x prenant en valeur la dernière position du tableau, for each élément d'un tableau de byte, je commence du début à la fin donc en utilisant x-= 1 à chaque for, ça marche pas?).

J'ai très envie de faire un bot Dofus, de A à Z moi même, faire ma propre base pour faire le truc le plus stable, j'ai pas dis le truc le plus efficace ni rapide, pour ça me faudrait 2-3 vies :')
 
Inscrit
20 Juin 2016
Messages
41
Reactions
2
#4
Ça dépend en quel langage tu veux faire ton reader/writer mais c'est pas compliqué le big/little endian
 
Inscrit
4 Decembre 2016
Messages
30
Reactions
0
#5
Bonjour tazman !

Merci tu as retiré toutes mes interrogations ! ^^, surtout au niveau du cryptage.
J'ai beaucoup progresser dans la programmation pourtant je n'ai pas appris grand chose de plus, bien que j'en suis devenu pro (ma propre boite de développement);
je penses que je suis juste devenu moins con ...

Merci à toi en tout cas :D

Ps: En parlant du Big Endian, j'ai vu rapidement un tuto qui en parlait et perso j'ai jamais appris ce genre de chose, mais ça disait "le plus grand en premier contrairement au little" fin l'autre little ou small ou jsais plus. Bref le petit quoi .. >_>

J'ai pas trop bien compris, donc 00 00 01 devient 01 00 00, ok, mais par exemple 15 72 1D devient quoi? 1D 72 15 ? La personne disait qu'il fallait prendre des DLL et tout un bordel, un tableau de bytes qu'on inverse n'est pas suffisant? C'est peut être trop lent c'est vrais que je n'ai jamais travailler la vitesse et la praticité de certaines façons de faire ..

(Sur le coup j'ai la flemme de réfléchir mais imaginons j'ai un tableau de 80 bytes, je créer un tableau vide de 80 bytes, une valeur x prenant en valeur la dernière position du tableau, for each élément d'un tableau de byte, je commence du début à la fin donc en utilisant x-= 1 à chaque for, ça marche pas?).

J'ai très envie de faire un bot Dofus, de A à Z moi même, faire ma propre base pour faire le truc le plus stable, j'ai pas dis le truc le plus efficace ni rapide, pour ça me faudrait 2-3 vies :')
T'as pas à t'embêter avec un for.

Array.Reverse(byte[] bytes) est fait pour
 
Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#6
T'as pas à t'embêter avec un for.

Array.Reverse(byte[] bytes) est fait pour
Comme dis plus haut, malgré que j'en est fais mon métier j'ai de grosses lacunes,
mais j'aurais peut être trouvé, j'ai rarement utilisé cette fonction c'est pour ça que je l'ai oublié oups :p
Bien vu l'aveugle ! ^^

Ça dépend en quel langage tu veux faire ton reader/writer mais c'est pas compliqué le big/little endian
En C# (donc il me semble que le write/read est en little et non pas en big), et j'ai bien compris que ce n'est pas compliqué, juste je déteste m'embêté avec des DLL et des modules quand je peux moi même faire une fonction :D
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#7
Pour Dofus tu peux tout faire from scratch directement à partir des sources du jeu :cool: Si tu veux créer un bot, décompile le DofusInvoker (contenu dans ton dossier Dofus) avec JPEXS ou un Flash Decompiler quelconque. Puis une fois dans les sources direction ankamagames > jerakine > network, tu risques de trouver ton bonheur ! Dans ce qui a déjà été fait et open source, il y a "BehaviorIsManaged" (https://github.com/Emudofus/BehaviorIsManaged), qui n'est plus à jour, mais qui est en soit une énorme base niveau architecture et scallabilité. Enjoy :D
 
Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#8
Pour Dofus tu peux tout faire from scratch directement à partir des sources du jeu :cool: Si tu veux créer un bot, décompile le DofusInvoker (contenu dans ton dossier Dofus) avec JPEXS ou un Flash Decompiler quelconque. Puis une fois dans les sources direction ankamagames > jerakine > network, tu risques de trouver ton bonheur ! Dans ce qui a déjà été fait et open source, il y a "BehaviorIsManaged" (https://github.com/Emudofus/BehaviorIsManaged), qui n'est plus à jour, mais qui est en soit une énorme base niveau architecture et scallabilité. Enjoy :D
Ouai je sais t'en fais pas j'ai déjà un peu regarder le code 2.0 que ce soit bot ou source et j'avais commencer un bot en 1.29.

J'avais tout seul de mon côté sans pomper créer les algo IA (vérification d'attaque, pathfinding A*, mais surtout transfert du quadrillage Dofus vers un quadrillage X/Y ^^)

Bon but, c'est de tout faire seul, il y aura des erreurs mais ce sera ma fierté :D
 
Haut Bas