Tout d'abord, toute la Team Hackademy vous souhaite une année 2008 pleine de bonnes choses !

Pour débuter cette année, nous sommes heureux de vous annoncer que le Ezine commence à prendre forme (surtout l'équipe qui dirigera celui-ci) et devrait apparaitre sur le Web début Avril. Cela peut paraitre loin mais nous voulons vraiment faire un Ezine de qualité, cela demande donc beaucoup de préparation.

Pour ceux qui aimeraient publier dans le premier numéro il est encore temps d'envoyer vos articles (au pire il seront pour le prochain numéro) directement à redaction@thehackademy.net.

Autre annonce importante, le premier meeting HZV aura lieu le 16 Février 2008 sur Paris (dans les locaux de Sysdream). Celui-ci sera mensuel et aura pour concept de dispenser une formation d'environ 4h sur divers thèmes choisi par la communauté. Le premier thème abordé sera la sécurité VoIP et sera dispensé par CrashFr. Il vous est possible de réserver vos places en formulant votre demande sur meeting@thehackademy.net. Les meeting sont aussi l'occassion pour ceux qui n'auront pas la chance d'assister à la formation de faire des rencontres avec les autres membres de la communauté. Biensur ce meeting est ouvert à tous et gratuit (seul la limite de place disponible peut vous empecher l'accès; alors faites vite !).

Bonne année et n'oubliez pas: HZV will never die !

 FAQ - Rechercher  

Un client de jeu Mmorpg
Aller à la page 1, 2, 3, 4  Suivante
 
The Hackademy Forum Index du Forum -> Général/Remarques Poster un nouveau sujet   Répondre au sujet
Page 1 sur 4
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Dim Juil 15, 2007 3:18 am  |   Sujet du message: Un client de jeu Mmorpg Répondre en citant
bonsoir,

il s'agit du jeu DOFUS http://dofus.fr/ ils disent que des clients de dofus modifiés sont utilisés, j'aimerais bien qu'on m'explique s'il vous plait, le client en question est en FLASH, donc pour modifier le client, est-ce qu'il faut refaire un autre client en le modifiant ou ajouter un programme "parasite" en C/C++

Ceci n'est pas une demande pour un hack, c'est que je veux comprendre :s.


Merci pour vos reponses.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Dim Juil 15, 2007 1:47 pm  |   Sujet du message: Répondre en citant
Bonjour,

Le flash est assez sympatique car il peut être décompilée. C'est à dire qu'à partir d'un fichier swf on peut retrouver le code source ActionScript. Il existe des outils capables de faire ça (cf plus bas).
Il est donc possible de recréer un client à partir de 0 en se basant sur le client d'origine. Il est aussi possible de modifier l'animation flash d'origine, soit en modifiant le code "assembleur", soit en rajoutant du code ActionScript.


Voici une liste non exhaustive des outils qui existent :
  • flare : Il est capable de décompiler (et uniquement décompiler) le code ActionScript (et juste l'ActionScript) d'une animation flash.
  • flasm : Il désassemble et réassemble le code ActionScript sous forme de mnémoniques (en quelques sortes le langage assembleur de la machine virtuelle flash).
  • les swftools, qui contiennent entre autre :
    • swfextract : capable d'extraire n'importe quelle ressource contenue dans une animation flash.
    • swfc : un programme capable de compiler des fichiers .sc pour produire un swf. (Attention la syntaxe des .sc est spécifique à cet outil.)
    • swfdump : capable d'afficher un tas d'informations à propos d'une animation flash
    • swfcombine : pour "lier" ensemble plusieurs animations flash
  • swfmill : Un programme qui comprend entre autre deux modes : swf2xml et xml2swf capables de transformer le modèle tag-longueur des fichiers flash en un format XML et inversement. Cet outil transforme l'intégralité d'un fichier flash en xml, c'est à dire aussi bien la partie graphique que l'ActionScript. (Attention l'ActionScript se trouve sous forme de mnémoniques dans des balises xml, c'est assez lourd à lire et à modifier.)
  • mtasc : un programme capable de compiler de l'ActionScript et de l'ajouter à une animation déjà existante. Notez que l'interaction entre le code ajouté et le code ActionScript déjà existant dans l'animation est délicate.


Bien sûr il existe plein d'autres outils, et si tu veux tu peux même créer le tiens à partir des spécifications du format swf (qu'on peut trouver sur le site d'Adobe à condition de s'inscrire (gratuitement)).
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Lun Juil 16, 2007 11:47 am  |   Sujet du message: Répondre en citant
Bonjour,

Merci Celelibi pour ta réponse,
j'en ai une autre s'il vous plait ( Embarassed ) ^^'

et bien puisque ces joueurs ont du modifier le programme, normalement, ils leur faut les codes d'acces au serveur via le client (enfin je pense) si ils rajoutent quelque chose elle doit etre recue puis activer, donc a moins de conclure a un hack je ne sait pas comment, et si ils avaient hacker pour de vrai, je ne pense pas qu'ils s'emmerderaient à modifier le programme puisqu'ils pourront avoir accès à la BDD (enfin je pense encore Smile).
Si je me suis gourré encore une fois, veuillez m'expliquez s'il vous plait Razz


Merci,
Julien.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Lun Juil 16, 2007 4:34 pm  |   Sujet du message: Répondre en citant
re bounjour,

Bien ils nt annocé que la plupart des tricheurs ont augmentés le temps de fauchage (2s normalement), en utilisant un programme comme speeder xp, sa ne compte pas, puisqu'il faut faire 2s exactement, alors que dans le dossier il y'as un .exe, un loader.swf et les clips bien sur puisque le jeu est entierement code en flash, donc j'utilise Sothink SWF, pas d'action script je trouve pas ou le changer, comme je suis dans l'equipe de modération j'aimerais bien aider mais je sais pas comment Smile.


Merci,
Julien.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Lun Juil 16, 2007 5:30 pm  |   Sujet du message: Répondre en citant
Je ne vois pas de quel code d'accès tu parles.

J'ai l'impression que tu n'as pas bien compris comment marche le modèle client/serveur pour ce genre de jeux. Il n'y a pas besoin de pirater quoi que ce soit pour créer un nouveau client.

D'un point de vue général, tout ce que fait le client, c'est échanger des données avec le serveur en utilisant un certain protocole. Ce qui pourrait se traduire en français en quelque chose du genre :
Citation:
- "Je voudrais m'identifier avec le login Celelibi et le mot de passe xxxxxxxxxxxxxxx"
- "Ok, mot de passe accepté. Ton id est 123456789"
- "Mon id est 123456789. Ai-je des nouveaux messages ?"
- "Aucun message"
- "Mon id est 123456789. Où se trouve mon personnage"
- "Coordonnées: 1:3:3:7"
- "Mon id est 123456789. Déplace mon personnage vers la droite"
- "Déplacement impossible, y'a un mur"


(C'est pour donner un ordre d'idée, cet exemple est peut-être totalement incongru avec ce jeu.)
Donc créer un nouveau client ce n'est rien d'autre qu'écrire programme capable de parler ce protocole.
Mais il est aussi possible de modifier les fichiers du client d'origine de façon à faire sauter certaines limites qui ne seraient contrôlées que par le client et pas par le serveur.
Par exemple si c'est le client qui dit que le temps de fauchage ne peut pas être supérieur à 2 secondes, mais que le serveur ne vérifie pas quand on lui dit "j'ai fauché 42 secondes", alors il est possible de modifier le client pour faire sauter cette limite.


Tu utilise Sothink SWF decompiler... Il me semble que c'est un logiciel payant. Cracker les logiciels c'est mal. :p
(D'autant qu'il n'est pas toujours très stable.)

Dans tous les cas, moi avec flare j'obtiens plus de 81000 lignes d'action script. C'est principalement des packages. Je ne sais pas comment Sothink gère les movieClip qui contiennent uniquement un package.
Essaye de regarder par exemple le code ActionScript du movieClip 20704.
Si t'as vraiment rien, essaye de changer d'outil.


Si tu es un modérateur, je ne vois pas vraiment en quoi savoir comment les clients flash sont modifiés va t'aider à faire la chasse aux tricheurs.
D'autant que si des tricheries sont possibles c'est qu'il manque des vérifications côté serveur. En effet, pour avoir quelque chose d'un peu sécurisé il faudrait que le serveur vérifie tout ce que le client demande.
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Lun Juil 16, 2007 7:16 pm  |   Sujet du message: Répondre en citant
Bonjour Celibi,

Pour te repondre question modération, je les effets que produit ce changement, je ne le connait pas, donc pour les verifications, deja qu'il y'as a peu pres 12 serveurs, et que deja sa ram de temps en temps, alors imposer une verification, ne serait pas très recommandé, pour ton exemple oui c'est absolument sa, a part les message ^^", pour le fauchage, les joueurs ont tendences a diminué encore plus le temps XD, du genre 0.5s sa bouffe le jeu, sa bouffe les "cereales" et sa nous fait chier, si je peux m'exprimer ainsi, les bannirs definitivement ne sert a rien lol a chaque fois un nouveau compte ...


Non je n'ai pas crack Sothink vu que je ne le fait pas chez moi Smile

Pour flare, je n'ai rien trouvé ... Si tu pourrais m'aider dans ce domaine la, ^^' ce serait gentil.

Donc comme je le disais dans le dossier il y'as sa si on veut :

edit: apparament impossible d'afficher les images ... http://i175.photobucket.com/albums/w142/Gaivadan/Dofus/screen1.jpg


et


http://i175.photobucket.com/albums/w142/Gaivadan/Dofus/screen2.jpg


donc le action script il est nul part lol.

Ps: dans les autres sous dossier il y'as des fichier swf (encore ^^') que des images, a part dans le dossier gfx, des animations.


Julien.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Lun Juil 16, 2007 8:11 pm  |   Sujet du message: Répondre en citant
Faire les vérifications sur le serveur, c'est bien entendu la solution parfaite, mais elle n'est pas toujours applicable en terme de temps de calcul ou de quantité de données à transmettre.

Tu as essayé d'ouvrir le loader.swf avec Sothink ? Et de t'intéresser en particulier au movieClip 20704 ?
L'animation loader.swf semble être le programme principal.
Personnellement j'ai téléchargé le client "tous OS", mais je suppose que ce sont exactement les mêmes.

Tu peux trouver flare à cette adresse : http://www.nowrap.de/flare.html
C'est pourtant le premier lien quand on cherche flare et swf.

Les images se trouvent très certainement dans les animations flash, sothink peut te les montrer facilement. Sinon l'outil swfextract (faisant parti du package swftools) permet d'extraire entre autre les images.
Je te laisse chercher cet outil cette fois.
Ce sont des outils en ligne de commande, j'espère que tu saura t'en servir.
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Lun Juil 16, 2007 9:03 pm  |   Sujet du message: Répondre en citant
Merci, j'essaye et je te met au courant
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Lun Juil 16, 2007 9:09 pm  |   Sujet du message: Répondre en citant
Bonsoir,



lol : http://s175.photobucket.com/albums/w142/Gaivadan/Dofus/?action=view&current=error.png.


Smile
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Mar Juil 17, 2007 1:41 pm  |   Sujet du message: Répondre en citant
Tu as mis un point juste après l'url, donc ça marche pas bien quand on clique sur ton lien.

C'est pas des erreurs, c'est des warnings, j'ai exactement les mêmes, c'est normal.
L'ActionScript est bytecodé (ou semi-compilé), et donc si dans le bytecode on ne retrouve pas de blocs if ni de boucle tels quel for ou while, mais uniquement des sauts conditionnels et inconditionnels.
L'endroit où atterri un saut est automatiquement associé à un label lors du désassemblage. En suite le décompilateur essaye de donner du sens à tous ces sauts et essaye de mettre des if, for, while, switch, ... partout où il y a des saut/labels.
Parfois il n'y arrive pas et il reste dans le code action script des goto et des label.

Cela dit il faut faire attention, car parfois le décompilateur se trompe dans la logique du programme. Notamment lorsqu'il y a des switch.
Mais si t'as des problèmes et que tu vois des trucs incohérents tu peux demander. Smile
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Mar Juil 17, 2007 3:40 pm  |   Sujet du message: Répondre en citant
Bonjour Celibi,

Voila j'ai "analysé" un peu le code, donc a part le chargement des fichiers SWF se situant dans le fichier clips, et la connexion entre le client et la demande de confirmation du mot de passe et du nom de compte,il n'y a rien, LA question que je me pose c'est : Puisque dans le dossier du jeu il n'ya que les ressources necessaires, genre les SWF qui ne contiennent que des images, il n'y a pas les fichiers des "actions" genre bouger, faucher, s'assoir, ouvrir inventaire ... par contre il y'as 2 modules qui se chargent a chaque fois, je vais essayer de les regarder ... pour pas gener le forum on peut continuer par messagerie si vous le desirer.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Mar Juil 17, 2007 10:46 pm  |   Sujet du message: Répondre en citant
Je pense que tu as vraiment un peu analysé le code. Parce qu'il y a quand même plus de 81000 lignes de code, principalement réparties dans les 469 packages.
À noter que le fichier modules/core.swf n'est pas très intéressant, il contient tout un tas de packages qu'on retrouve dans le loader. À la différence que le loader contient 3 packages en plus (dofus.DofusLoader, dofus.graphics.gapi.styles.DofusStylePackage et dofus.utils.LangFileLoader).

Je ne sais pas bien ce que tu cherches, donc je vais juste te donner quelques indications sur comment ça marche.
Première chose, connaître l'action script ça peut aider. Smile
Dans l'animation principale, il y a des movieClip, et éventuellement des frames. L'action script de chaque frame est exécuté quand cette frame est jouée. Typiquement l'animation principale contient un tas de movieClip et une seul frame. Tu trouve généralement le code de la frame à la fin l'animation.
Typiquement, avec le compilateur MTASC on a une seul frame dont le code ne fait rien d'autre qu'appeller une fonction main d'un package (ici c'est la fonction dofus.DofusLoader.main).
Mais attention car il peut aussi y avoir des movieClip qui exécutent du code. Généralement ceux-ci se trouvent au début de l'animation, il servent souvent à gérer certains événement comme le clique sur un bouton.

Si tu veux mon avis, toute la logique du jeu se trouve dans ce fichier loader.swf.
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Jeu Juil 19, 2007 6:16 pm  |   Sujet du message: Répondre en citant
bonjour, bon bah voila j'ai trouvé plusieurs fonctions, dont deux que je veux essayer, je vous explique,

Le premier :


Code:
        v1.boostSpell = function (oSpell) {
          this.api.sounds.events.onSpellsBoostButtonClick();
          if (this.canBoost(oSpell) != undefined) {
            var v3 = new dofus.datacenter.Spell(oSpell.ID, oSpell.level + 1);
            if (this.api.datacenter.Player.Level < v3.minPlayerLevel) {
              this.api.kernel.showMessage(undefined, this.api.lang.getText('LEVEL_NEED_TO_BOOST', [v3.minPlayerLevel]), 'ERROR_BOX');
              return false;
            }
            this.hideSpellBoostViewer(true);
            this.api.network.Spells.boost(oSpell.ID);
            this._sfivSpellFullInfosViewer.spell = v3;
            return true;
          }
          return false;
        };


Bon j'explique ce que j'ai compris :s

enfait la :
Code:
if (this.canBoost(oSpell) != undefined) {
            var v3 = new dofus.datacenter.Spell(oSpell.ID, oSpell.level + 1);
            if (this.api.datacenter.Player.Level < v3.minPlayerLevel) {
              this.api.kernel.showMessage(undefined, this.api.lang.getText('LEVEL_NEED_TO_BOOST', [v3.minPlayerLevel]), 'ERROR_BOX');
              return false;
            }


Si le sort pouvant etre booster (!=undefined) pas compris la xD,
* (oSpell.ID, oSpell.level + 1) : ici, c'est le sort + 1 niveau.
* (this.api.datacenter.Player.Level < v3.minPlayerLevel) : ici il y'as 6level par sorts dans ce jeu, pour le 6e niveau il faut etre a un certain niveau, donc si le niveau du joueur < au niveau du sort, afficher message d'erreur et retourner (car fonction) false.

Je me demande genre dans la 1ere explicatin (spell id) on peut faire par exemple +4 niveau, et dans la 2e, return true, je ne sait pas si sa pourrait marcher, car j'ai decompiler en .flr, c'est la ou j'ai trouvé pour le remettre en swf, aucune idée ... ^^
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Celelibi



Inscrit le: 29 Mar 2006
Messages: 770

Message Posté le: Jeu Juil 19, 2007 8:34 pm  |   Sujet du message: Répondre en citant
Comme dit plus haut dans ma présentation des outils, flare ne permet pas de modifier l'ActionScript.
Par contre flasm le peut, mais ce qu'il modifie ce n'est pas du code ActionScript mais de l'assembleur ActionScript.
Mais attention, comme précisé dans les conditions d'utilisation, tu n'as pas le droit de modifier le client de jeu.

Le plus simple pour apprendre cet assembleur c'est de regarder le site où tu vas le télécharger, puis de regarder quelques équivalents actionscript <-> assembleur.

Au passage, les variables v1, v2, v3 etc. correspondent aux registres de la machine virtuelle, mais ça tu le verras avec le code assembleur. Wink
_________________
Il y a un boulet qui sommeille en chacun de nous. (enfin, surtout vous...)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
julien



Inscrit le: 15 Juil 2007
Messages: 18

Message Posté le: Jeu Juil 19, 2007 10:22 pm  |   Sujet du message: Répondre en citant
Bonsoir,

J'ai telecharger FlasM, j'ai desassembler le fichier swf, il contient 364 268 lignes ... a la place de 81 685 en .flr, pour l'assembleur, j'ai pas bien compris ce que tu m'as dis a propos d'un site a moins que tu ne parle de sa http://www.nowrap.de/flasm.html#syntax.


Merci pour tes reponses,
Julien.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Montrer les messages depuis:   
The Hackademy Forum Index du Forum -> Général/Remarques Poster un nouveau sujet   Répondre au sujet
Aller à la page 1, 2, 3, 4  Suivante

 
Sauter vers:  

Powered by phpBB
Theme modified by mOg & CrashFr
Traduction par : phpBB-fr.com