SgtFatality

Équipe de travail Wakfu

Recommended Posts

Bonjour,

Voilà je m'intéresse un peu au jeu Wakfu et j'aimerais développer une sandbox pour ce jeu à titre éducatif comme d'hab. Je suis donc à la recherche de quelques personnes motivées à travailler sur ce projet.

La sandbox sera en C++/Qt.

Faites moi signe si vous êtes intéressé :)

Bonne journée,
Sgt Fatality

Partager ce message


Lien à poster
Partager sur d’autres sites

Si tu veux t'éduquer ne sèche plus les cours au collège :'o 

Partager ce message


Lien à poster
Partager sur d’autres sites

Parce que j'ai déjà fait une sandbox donc je pourrais ré-utiliser la base. Ensuite j'aime bien Qt (conception de la POO, documentation, librairie complète et communauté active).

Après mon autre proposition serait d'utiliser la librairie POCO si d'autres personnes sont intéressées par cette lib.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonne chance !

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci. J'ai pu identifier certaines classes (notamment toutes les structures des paquets serveur) dans les sources du client grâce à Velocity, merci à lui.

 

Je suis maintenant en train de développer un proxy pour sniffer les paquets du jeu.

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci. J'ai pu identifier certaines classes (notamment toutes les structures des paquets serveur) dans les sources du client grâce à Velocity, merci à lui.

 

Je suis maintenant en train de développer un proxy pour sniffer les paquets du jeu.

Tu as finalement fini par trouver , Continues comme sa :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui j'ai trouvé ;)

J'ai pu avancer aujourd'hui et je tenais à remercier Crystal et LittleScaraby pour les informations supplémentaires que j'ai reçu de leurs part.

 

J'ai presque terminé mon proxy sniffer :

012550wakxy.JPG

 

Maintenant il me reste encore une seule chose à mettre en place c'est un système permettant de définir les structures des paquets dans un fichier XML afin que mon sniffer puisse lire correctement les données. Je vais faire ça demain.

 

Bonne soirée,

Sgt

Partager ce message


Lien à poster
Partager sur d’autres sites

Le DofusProtocolBuilder développé par bouh2 fait déjà la conversion AS3 <-> XML, tu as juste à faire toi-même la conversion XML <-> C++ (ou bien les charger au runtime vu que tu fais un proxy).

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

Finalement j'ai implémenté QtScript, un système de scripting en javascript pour que chacun puisse bosser sur les structures. Wakfu est en Java donc je ne pense pas que l'outil par bouh2 fonctionne du coup ?

 

Bonne journée,

Partager ce message


Lien à poster
Partager sur d’autres sites

Au risque de paraître con, c'est quoi une Sandbox ? 

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

Finalement j'ai implémenté QtScript, un système de scripting en javascript pour que chacun puisse bosser sur les structures. Wakfu est en Java donc je ne pense pas que l'outil par bouh2 fonctionne du coup ?

 

Bonne journée,

Ah oui, en effet, et bien tu peux toujours t'en inspirer ;) tu peux également t'aider du compilateur javac pour parser le code source et extraire exactement les données que tu veux

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui je vais voir tout ça Blackrush merci ! :)

 

Au risque de paraître con, c'est quoi une Sandbox ? 

 

En gros c'est une base d'émulateur qui te permet de te connecter dans le jeu et te déplacer. L'objectif c'est de comprendre le fonctionnement du protocole et du jeu afin d'en faire un "proof of concept" (la sandbox) et "prouver" qu'on a bien compris le concept avec une résultat visible et utilisable.

 

Sinon presque tout est prêt pour une première version publique (du sniffer). Je vais la publier ce week-end je pense. Je n'ai finalement pas utilisé le format XML pour la lecture des structures des paquets mais le javascript. J'espère que vu la simplicité du langage cela pourra intéresser un plus grand nombre de personnes :)

 

Bonne soirée,

Sgt

Partager ce message


Lien à poster
Partager sur d’autres sites

Excellent choix, tu pourras utiliser tous les CoffeeScript, TypeScript, etc :D comment tu t'y es pris par contre vu que les sources sont obfusquées ?

BTW pourquoi QtScript ? tu peux utiliser V8 qui est développé en C++

Partager ce message


Lien à poster
Partager sur d’autres sites

Le plus simple reste une sandbox java avec javassist, ca te permet d'editer les classes de wakfu au chargement du jeu par la jvm, autrement dit hook les packets directement dans le client et faire ce que tu veux ! Mais tu peux aussi modifier les fonctions du client en ajoutant ou retirant du code a la volée :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Excellent choix, tu pourras utiliser tous les CoffeeScript, TypeScript, etc :D comment tu t'y es pris par contre vu que les sources sont obfusquées ?

BTW pourquoi QtScript ? tu peux utiliser V8 qui est développé en C++

 

QtScript est un engine de scripting développé pour et intégré par défaut dans la librairie Qt. Et ça fonctionne bien donc je n'ai même pas regardé pour utiliser un autre engine :D. (Je parle toujours du sniffer, pas de la sandbox).

 

Le plus simple reste une sandbox java avec javassist, ca te permet d'editer les classes de wakfu au chargement du jeu par la jvm, autrement dit hook les packets directement dans le client et faire ce que tu veux ! Mais tu peux aussi modifier les fonctions du client en ajoutant ou retirant du code a la volée :)

 

Merci pour la proposition, je ne connais actuellement ni javassist ni le java. Pour le moment je vais déjà voir s'il y a des personnes intéressées par le projet (autant débutantes qu'avancées car il y a du travail pour tout le monde :)). Je propose juste la base.

 

Bonne journée,

Sgt

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pourais vous montrer une demo de la puissance de java combiné a javassist :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pourais vous montrer une demo de la puissance de java combiné a javassist :)

 

Ce serait pas mal effectivement, intéressant même pour certain d'entre nous.

 

Dommage que le projet soit en C++, ayant peut de connaissance en ce langage, je ne pourrais pas donner de coup de main. Mais tu recevras des petites remarques de ma part si je trouve quelque chose à contredire ou simplement à améliorer.

 

Les projets seront-ils open-source ? Comme ta Sandbox Dofus ? Simple question.

 

Bonne chance pour tes projets.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je pourais vous montrer une demo de la puissance de java combiné a javassist :)

 

Volontiers ! :)

 

Les projets seront open source oui. Le sniffer devrait être utilisable facilement pour tout le monde. Le but c'est que chacun puisse aider dans l'identification des structures des paquets. Une fois ceci fait, travailler sur une sandbox ou un émulateur sera beaucoup plus rapide, quelque soit le langage.

 

Bonne soirée,

Partager ce message


Lien à poster
Partager sur d’autres sites

Le problème c'est qu'a chaque MAJ du client l'obfuscation générée change le nom des classes/methodes etc, donc pour reconnaitre une classe au fur et a mesure des mises a jour, la seule manière et de faire des patterns de bytecode x). Ou alors prendre un client de MAJ X et travailler uniquement sur cette version.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui effectivement c'est bien un problème. Pour le moment je pars sur la 2ème solution qui est de travailler uniquement sur une version définie. J'ai vraiment pas envie de me casser la tête à faire des patterns ou autres...

 

Pour information je travail sur le client 1.27.98906.

Partager ce message


Lien à poster
Partager sur d’autres sites

Donnez vos skype en mp histoire de monter un groupe de discussion a ce sujet !

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant