IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

[Débutant] Besoin d'aide pour modifier un jeu


Sujet :

Assembleur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Débutant] Besoin d'aide pour modifier un jeu
    Bonjour je ne sais pas si vous connaissez le jeu plasma pong, c'est un petit jeu sympa mais le truc qui est mal fait c'est qu'on ne peut pas modifier les touches et en jouant à deux avec les touches données ce n'est pas très pratique.

    Voila ma question:
    comment modifier le jeu afin de pouvoir définir mes touches,
    j'ai désassemblé l'executable mais de l'assembleur moi je connais les bases des bases lol.
    donc (je suppose) qu'il faut trouver ou est la fonction puis modifier avec un editeur hexadécimal?

    je pensait par la suite à faire un patch qui permettrait de regler les touches je n'ai pas trop de connaissance en programmation mais bon c'est de mon niveau quand même je pense.

    Ce que j'ai dit me semble logique, mais j'aimerai avoir votre avis sur ce que je veut faire, et aussi si vous pouviez me dire à quoi je pourrais repérer la fonction...

    merci à tous

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    Euh, il est très rare que les auteurs de logiciels non open-source (même freeware) autorisent ce genre de choses.

    Je doute que quelqu'un ici t'aide à pirater un jeu !
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  3. #3
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Bonjour,

    Je pense que l'approche n'est pas forcément la meilleure. En effet, la probabilité de trouver une aiguille dans un botte de foin (voire même un hangar de foin) est bien plus élevée que celle de trouver dans le code désassemblé le (ou les) endroits concernés par les évènements clavier. Tout dépend également de la plateforme destination du jeu (DOS, Win32, Linux etc ...).

    Si c'est un jeu DOS, la méthode que j'emploierai serait la suivante : créer un petit programme résident en mémoire (TSR) qui réattribue les touches du clavier. Celà permet de ne pas trafiquer le code existant et me parait beaucoup moins complexe

    Si c'est pour un autre OS, je ne sais pas si une telle approche est envisageable car je ne sais pas si les API permettent de redéfinir les touches clavier.

    Bon courage
    Avant de poster, merci de consulter les règles du forum

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci pour l'aide,
    je ne veut pas pirater le logiciel (je trouve d'ailleur l'expression un peu poussé ) je veut simplement changer les touches car le jeu est injouable avec un clavier azerty et je n'ai pas forcement envie de changer les configs a chaque fois.
    je fais surtout ceci par defi avec moi même, c'est en quelque sorte un projet perso.

    pour ce qui est de la plateforme c'est un WIN32, dites moi clairement (si vous savez bien sur :p ) si ce que j'envisage de faire est possible, ou si c'est vraiment impossible, si c'est possible pourriez-vous m'orienter vers la solution (sans me la dire car je tiens a chercher quand même

    merci pour votre aide

  5. #5
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !

    Pour l'AZERTY,un simple batch MSDOS te suffira

    Et pour te dire aussi,qu'en informatique rien n'es impossible,rien n'es sécurisé à 100%...MAIS je croi plutot que tu devrai commencer par les petit tutoriels dédier pour ce genre de modification des PE,et accérire une bonne connaissance sur le domaine(outils,logique...) avant de se lancer sur ce que tu appel défis pour toi

    Bonne chance !
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  6. #6
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par Interruption13h
    Salut !
    [...] MAIS je croi plutot que tu devrai commencer par les petit tutoriels dédier pour ce genre de modification des PE[...]
    Rien n'est dit à ce sujet, et justement il faudrait qu'il en dise plus. On ne sait pas si c'est un exe Windows 16 bits ou si c'est un exe DOS ou un com DOS. Ensuite, il ne dit rien sur la licence du logiciel. Si c'est un vieux jeux, il est possible que la société qui l'a produit n'existe même plus [LIST]
    (parce qu'en dehors de Microsoft, les boites ne font pas long-feux dans ce domaine... même borland s'est trouvé menacé... alors si c'était un petit éditeur de logiciel... aïe-aïe-aïe).

    Sinon, il peut faire comme faisaient certains anciens virus : concaténer du code au bout du fichier du programme, ajouter une instruction jump long au point d'entrée du programme vers ce code ajouté, en prennant soin de conserver les octets qu'il faudra alors restaurer. Le code ajouté fait sa petite bricole, restaure les octets du point d'entré, et resaute au point d'entré (il faudra bien sure aussi restaurer les registres à l'identique, et donc les avoir sauvegardé aprés l'instruction de saut... un call far/ret far serait d'ailleur plus approprié pour ça)

    Il faut savoir comment le jeu accède au clavier. Si le jeux accède au clavier par les fonctions standard du BIOS, alors il suffit d'installer un handler personnalisé...

    Mais le hic, c'est que beaucoup d'anciens jeux accedaient directement au port du clavier... et là, chocolat, ça va pas être du gateau... Si l'accés au clavier est localisé (factorisé) dans une seule fonction, il faudra determiner la position de cette fonction, en recherchant les code typiques (la signature) des instructions in/out sur les ports du clavier (il faudra faire un dump binaire). Si on trouve de tels codes, il faudra encore s'assurer qu'on est bien aligné sur le flux des instructions, en s'assurant de la pertinance des instructions précédentes et suivantes. Si on trouve un flux d'instruction qui se fini par un netoyage de pile bien propre (les anciens jeux avait une préférence pour la convention d'appel Pascal, par économie de mémoire) suivit d'un ret, alors on a de bonnes chances d'avoir trouvé.

    Je pense que l'accés au clavier, s'il ne se fait pas par des appels d'« interruptions » DOS ou BIOS, doit être quand même assez localisé, donc c'est jouable.

    Heuuu.... mais c'est vrai quand même qu'il faudra bien finir par se renseigner pour savoir s'il n'y a pas une licence qui court : qui est l'éditeur du logiciel ? ???
    ------------------------------------------------------------
    Sur le web, c'est la liberté qui est gratuite, mais bien évidement pas la consomation ... et encore moins la consomation à outrance
    ------------------------------------------------------------
    Language shapes the way we think, and determines what we can think about [ B. Lee Whorf ] ... mais ce n'est pas tout à fait vrai à 100%...
    ------------------------------------------------------------
    Pascal (FreePascal?) - Ada (Gnat-3.15p)
    XSLT (XSLTProc) - CGI binaires (Ada/C) [ Clavier Arabe ]
    ------------------------------------------------------------

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bon pour plus d'information : www.plasmapong.com
    c'est un jeu gratuit mais pas libre, c'est un executable WIN32
    je sais pour le batch mais moi je ne le fais pas pour jouer au jeu mais juste pour le faire , avec un batch je change le clavier en azety puis ej lance le jeu, mais c'est bidon je veut pouvoir personnaliser les touches et si j'arrive à obtenir le source (ce qui m'étonnerai) a rajouter l'option directement dans le jeu.

    bon ben mille merçi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int merci;
    for (merci = 1; merci <= 1000; merci++)
    printf ("merci");
    return 0;

  8. #8
    Membre éclairé Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Points : 770
    Points
    770
    Par défaut
    c'est un jeu gratuit mais pas libre, c'est un executable WIN32
    s'il n'est pas libre et non open-source, en effet, modifier quoique ce soit dans le code source et le recompiler est considéré comme du piratage étant donné que les sources ne sont pas divulguées.
    Par contre si il est open-source alors logiquement pas de problème mais seulement à titre personnel et aucun buts de revente ou meme de partage
    ★ Pascal/Java/C/xhtml,css/SQL/Mips
    ★ Linux/unix

  9. #9
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par stoff66
    bon ben mille merçi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int merci;
    for (merci = 1; merci <= 1000; merci++)
    printf ("merci");
    return 0;
    C'est joli-joli ça merci à toi aussi alors
    ------------------------------------------------------------
    Sur le web, c'est la liberté qui est gratuite, mais bien évidement pas la consomation ... et encore moins la consomation à outrance
    ------------------------------------------------------------
    Language shapes the way we think, and determines what we can think about [ B. Lee Whorf ] ... mais ce n'est pas tout à fait vrai à 100%...
    ------------------------------------------------------------
    Pascal (FreePascal?) - Ada (Gnat-3.15p)
    XSLT (XSLTProc) - CGI binaires (Ada/C) [ Clavier Arabe ]
    ------------------------------------------------------------

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 69
    Points : 89
    Points
    89
    Par défaut
    juste comme ça en passant ... si le jeux n'utilise pas directInput pour la réception des touches claviers, un hook sur le clavier devrait suffir à effectuer le changement de code clavier à renvoyer à l'application. Dans ce cas il n'y pas de modification du programme

Discussions similaires

  1. [débutant] besoin d'aide pour un programme
    Par acdchornet dans le forum C++
    Réponses: 12
    Dernier message: 26/10/2006, 22h32
  2. [Débutant]Besoin d'aide pour gestion d'exceptions
    Par H1B4K dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2006, 10h01
  3. [VB6]besoin d'aide pour modifier une application
    Par mister perfect dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 19/05/2006, 11h46
  4. [débutant].besoin d'aide pour servlet
    Par 2tsiris dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 30/03/2006, 14h36
  5. [Debutant] Besoin d'aide pour modifier un tableau...
    Par CyberTwister dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/03/2006, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo