Salut,
Bon, ça fait faire bientôt 10h que je cherche/tente/rage/réussi des trucs, mais rien de bien fructueux. Voilà mon "problème" :
Je cherche à modifier des valeurs binaire d'un exe, en l’occurrence l'exe d'un touhou pour y implémenter les mode Ultra. Ceux proposé par Nil via patch (Nice Cheat) ne me satisfont pas, d'ou ma volonté de faire mes propres mode Ultra. (double boulette, autobomb, pas de temps sur les boss..etc)
Je connais donc les adresses à modifier, les valeurs d'origines et les valeurs d'arrivées (Grace à Nil). Pas besoin de désassembleur pour tenter d'avoir des bouts de code donc, je sais déjà quoi modifier.
J'arrive à modifier les valeurs en direct via UsaMimi Hurricane et à jouer. Les modifications sont prise en compte, mais pas moyen de sauvegarder. Dès que le Touhou est clo, fin du mode ultra. C'est un peu embêtant. A noter que le logiciel est en full jap', donc il est fort probable que certaine fonction du logiciel m'échappe.
Ensuite, après quelques heures, j'ai tenter avec un éditeur hexadécimal (Hex Editor et OllyDbg en français cette fois). J'arrive à trouver les adresses ainsi que modifier les valeurs nécessaire, mais aucune idée de comment sauvegarder cela (en créant un nouvel exe) ou implémenter les nouvelles valeur dans l'exe d'origine.
D’où ma question (enfin !) : Comment faire pour ce dernier point ?
Tout du moins, es-ce seulement possible ?
Merci d'avance. Je vais continuer de chercher de mon coté en attendant.
(Bien sur si jamais je finis par enfin trouver comment que ce fesse, je mettrai à disposition les .exe Ultra pour ceux que ça intéresse.)
Touhou Ultra - Modification de l'exe (Résolu !)
- YannHuitNeuf
- Georges Brassin
- Messages : 8732
- Inscription : 05 avr. 2012, 12:07
- Page Facebook : https://www.facebook.com/profile.php?id=100010863858991
- Localisation : Près d'AUXERRE, à 40 bornes de Chablis !
- Contact :
Je ne comprends pas bien... Tu n'arrives pas à sauvegarder avec Hex Editor ?
Moi j'arrive à sauvegarder mes fichiers .EXE quand je les modifie.
Moi j'arrive à sauvegarder mes fichiers .EXE quand je les modifie.
Quand quarante personnes s'habillent comme un con c'est L'ACADÉMIE FRANÇAISE. Quand mille personnes s'habillent comme un con, c'est l'ARMÉE FRANÇAISE
Pierre Desproges
Pierre Desproges
- YannHuitNeuf
- Georges Brassin
- Messages : 8732
- Inscription : 05 avr. 2012, 12:07
- Page Facebook : https://www.facebook.com/profile.php?id=100010863858991
- Localisation : Près d'AUXERRE, à 40 bornes de Chablis !
- Contact :
je ne vois toujours pas le problème, tu fais un enregistrer sous avec un nom bidon, tu arrêtes l'appli que tu as modifié puis tu renomme ton fichier modifié.
Après, je ne vois pas pourquoi tu ouvres l'appli alors qu'elle tourne, mais tu dois avoir une bonne raison
Après, je ne vois pas pourquoi tu ouvres l'appli alors qu'elle tourne, mais tu dois avoir une bonne raison
Quand quarante personnes s'habillent comme un con c'est L'ACADÉMIE FRANÇAISE. Quand mille personnes s'habillent comme un con, c'est l'ARMÉE FRANÇAISE
Pierre Desproges
Pierre Desproges
-
- Dieu de la Borne
- Messages : 1983
- Inscription : 29 mai 2013, 16:04
Alors, alors, un peu plus d'explication :
La valeur à l'adresse 004289E3 définie le nombre de bombe utiliser lors d'une smart bombe. Valeur normalement à 01 -> Je la passe à 00 pour faire mes tests (facile à vérifier)
Sauf que je n'ai accès à cette valeur que si le processus est en cours. Dans le cas contraire, toutes mes valeurs sont à ??. :/
Après, faut dire que c'est la première fois que je touche à de la modification d'exe, d'ou ma galère.
La valeur à l'adresse 004289E3 définie le nombre de bombe utiliser lors d'une smart bombe. Valeur normalement à 01 -> Je la passe à 00 pour faire mes tests (facile à vérifier)
Sauf que je n'ai accès à cette valeur que si le processus est en cours. Dans le cas contraire, toutes mes valeurs sont à ??. :/
Après, faut dire que c'est la première fois que je touche à de la modification d'exe, d'ou ma galère.
- YannHuitNeuf
- Georges Brassin
- Messages : 8732
- Inscription : 05 avr. 2012, 12:07
- Page Facebook : https://www.facebook.com/profile.php?id=100010863858991
- Localisation : Près d'AUXERRE, à 40 bornes de Chablis !
- Contact :
Ok, je comprends.
Mais si tu la passe à 00 dans l'exe de base, elle se remet à 01 quand tu le lances ?
EDIT : j'imagine que oui. Il y a une initialisation de la variable au début. Cela veut dire que la valeur d'initialisation se trouve à une autre adresse.
Mais si tu la passe à 00 dans l'exe de base, elle se remet à 01 quand tu le lances ?
EDIT : j'imagine que oui. Il y a une initialisation de la variable au début. Cela veut dire que la valeur d'initialisation se trouve à une autre adresse.
Quand quarante personnes s'habillent comme un con c'est L'ACADÉMIE FRANÇAISE. Quand mille personnes s'habillent comme un con, c'est l'ARMÉE FRANÇAISE
Pierre Desproges
Pierre Desproges
- YannHuitNeuf
- Georges Brassin
- Messages : 8732
- Inscription : 05 avr. 2012, 12:07
- Page Facebook : https://www.facebook.com/profile.php?id=100010863858991
- Localisation : Près d'AUXERRE, à 40 bornes de Chablis !
- Contact :
T'es pas dans la mouise, il faut refaire la manip' à chaque coup.
C'est pénible, mais ça se fait.
En attendant de trouver la bonne adresse (si c'est faisable).
C'est pénible, mais ça se fait.
En attendant de trouver la bonne adresse (si c'est faisable).
Quand quarante personnes s'habillent comme un con c'est L'ACADÉMIE FRANÇAISE. Quand mille personnes s'habillent comme un con, c'est l'ARMÉE FRANÇAISE
Pierre Desproges
Pierre Desproges
-
- Dieu de la Borne
- Messages : 1983
- Inscription : 29 mai 2013, 16:04
Bon, ça me saoul. Ça fait maintenant plus de 14h que je penche sur ce problème, j'y reviendrai plus tard. C'est la deuxième fois que je me penche sur le problème, la première fois j'avais lâcher au bout de 8/10h sauf que je n'avais absolument rien tirer de concluant. Cette fois ci, ça été un peu plus fructueux, mais je ne possède pas encore assez de connaissance dans le domaine.
Pour le moment, ça sera modification du code en direct via UsaMimi Hurricane. C'est chiant, mais ça fonctionne.
Le topic reste bien sur ouvert pour toutes personnes souhaitant apporter son lot de conseils.
Pour le moment, ça sera modification du code en direct via UsaMimi Hurricane. C'est chiant, mais ça fonctionne.
Le topic reste bien sur ouvert pour toutes personnes souhaitant apporter son lot de conseils.
- Seïken
- Jeune Pad-awan
- Messages : 72
- Inscription : 21 mars 2014, 21:53
- Localisation : Dijon
Je n'y connais rien dans la modif d'.exe mais juste comme ça, j'ai eu une petite idée en lisant ceci :
Il y a pas un moyen de crée une Macro qui fait la manip' tout seul lors de son exécution ?YannHuitNeuf a écrit :T'es pas dans la mouise, il faut refaire la manip' à chaque coup.
- YannHuitNeuf
- Georges Brassin
- Messages : 8732
- Inscription : 05 avr. 2012, 12:07
- Page Facebook : https://www.facebook.com/profile.php?id=100010863858991
- Localisation : Près d'AUXERRE, à 40 bornes de Chablis !
- Contact :
Euhhh, non !Seïken a écrit :Je n'y connais rien dans la modif d'.exe mais juste comme ça, j'ai eu une petite idée en lisant ceci :Il y a pas un moyen de crée une Macro qui fait la manip' tout seul lors de son exécution ?YannHuitNeuf a écrit :T'es pas dans la mouise, il faut refaire la manip' à chaque coup.
Quand quarante personnes s'habillent comme un con c'est L'ACADÉMIE FRANÇAISE. Quand mille personnes s'habillent comme un con, c'est l'ARMÉE FRANÇAISE
Pierre Desproges
Pierre Desproges
-
- Dieu de la Borne
- Messages : 1983
- Inscription : 29 mai 2013, 16:04
C'est une (bonne) idée. Pas forcement une macro, mais si il y a moyen de redéfinir (automatiquement et directement dans l'exe) les valeurs après leurs initialisation, c'est une bonne idée.
Je m'explique.
Schématiquement (et très simplifié), l'exe ce comporte (vraisemblablement) ainsi :
-Lancement de l'exe
-Initialisation des adresses/variables/valeurs..etc
-Programme (Jeu)
Du coup, s'il y à moyen de rajouter des nouvelles lignes "Changement de valeur à l'adresse X" après la dernière ligne ça pourrai le faire, non ? Tout en évitant d'avoir à chercher l'adresse qui initialise tel ou tel composant.
Mais je ne chercherai pas à mettre ça en place pour le moment. Plus tard.
Je m'explique.
Schématiquement (et très simplifié), l'exe ce comporte (vraisemblablement) ainsi :
-Lancement de l'exe
-Initialisation des adresses/variables/valeurs..etc
-Programme (Jeu)
Du coup, s'il y à moyen de rajouter des nouvelles lignes "Changement de valeur à l'adresse X" après la dernière ligne ça pourrai le faire, non ? Tout en évitant d'avoir à chercher l'adresse qui initialise tel ou tel composant.
Mais je ne chercherai pas à mettre ça en place pour le moment. Plus tard.
-
- Dieu de la Borne
- Messages : 1983
- Inscription : 29 mai 2013, 16:04
Petit ré-up, juste pour noter une idée (et avant de la ré-oublier) que j'ai eu en cour de programmation y'a quelques semaines.
Tout simplement faire un .exe qui permettrai d’exécuter l'exe touhou, attendre que celui ci s'initialise (genre un timer de Xsec) puis modifier les adresses en question à la volé.
J'essayerai de voir avec mon prof si cela est seulement possible (modifier des adresses hexa d'un exe à la volé avec un autre exe), puis je me lancerai dans ça.
Sachant que j'ai ce qu'il me faut pour développer tout ça, à savoir VisualStudio2013.
Tout simplement faire un .exe qui permettrai d’exécuter l'exe touhou, attendre que celui ci s'initialise (genre un timer de Xsec) puis modifier les adresses en question à la volé.
J'essayerai de voir avec mon prof si cela est seulement possible (modifier des adresses hexa d'un exe à la volé avec un autre exe), puis je me lancerai dans ça.
Sachant que j'ai ce qu'il me faut pour développer tout ça, à savoir VisualStudio2013.
-
- Big Boss Killer
- Messages : 760
- Inscription : 22 avr. 2014, 19:43
Je n'ai fait que lire rapidement mais ça ne serait pas ça que t'essaies de faire?
http://fr.openclassrooms.com/forum/suje ... amme-57870
Y a surement un bout de code à reprendre de scanmem qui te serait utile.
Par contre, avec ce que tu cherches à faire, ça risque peut-être de gueuler niveau sécurité du PC (antivirus, etc..).
http://fr.openclassrooms.com/forum/suje ... amme-57870
Y a surement un bout de code à reprendre de scanmem qui te serait utile.
Par contre, avec ce que tu cherches à faire, ça risque peut-être de gueuler niveau sécurité du PC (antivirus, etc..).
-
- Dieu de la Borne
- Messages : 1983
- Inscription : 29 mai 2013, 16:04
En gros c'est ça, oui. La seule petite différence, est que lui à fait un programme qui permet de modifier manuellement les adresses via une interface graphique.
Vue que dans mon cas ce sont toujours les même adresses qui sont à modifier avec toujours les mêmes valeurs, je veux automatiser tout ça.
J'avais pas penser à l'utilisation du PID, mais c'est une bonne option à prendre en compte.
En tout cas merci pour le lien. Je verrai si je peut exploiter un bout de son code en C++. Par contre je pense coder ça en C#, Touhou tournant principalement sous Windows en plus d’être un langage sur lequel je travail en cours.
Et l'antivirus ira ce faire mettre, une p'tite exception et c'est mare.
Vue que dans mon cas ce sont toujours les même adresses qui sont à modifier avec toujours les mêmes valeurs, je veux automatiser tout ça.
J'avais pas penser à l'utilisation du PID, mais c'est une bonne option à prendre en compte.
En tout cas merci pour le lien. Je verrai si je peut exploiter un bout de son code en C++. Par contre je pense coder ça en C#, Touhou tournant principalement sous Windows en plus d’être un langage sur lequel je travail en cours.
Et l'antivirus ira ce faire mettre, une p'tite exception et c'est mare.
-
- Big Boss Killer
- Messages : 760
- Inscription : 22 avr. 2014, 19:43
Du coup ça, ça devrait te plaire
http://www.codeproject.com/Articles/670 ... ess-Memory
http://www.jarloo.com/reading-and-writing-to-memory/.
Y a aussi http://stackoverflow.com/ si tu ne connais pas ou tu pourras surement trouver ton bonheur.
http://www.codeproject.com/Articles/670 ... ess-Memory
http://www.jarloo.com/reading-and-writing-to-memory/.
Y a aussi http://stackoverflow.com/ si tu ne connais pas ou tu pourras surement trouver ton bonheur.
-
- Dieu de la Borne
- Messages : 1983
- Inscription : 29 mai 2013, 16:04
Bon, j'ai réussi à générer une solution qui permet de ne pas décrémenter les bombes à l'utilisation, histoire de test les lien du dessus (l'adresse 0x004289E3 avec une valeur de 00)
Par contre, dès que je tente une autre variable ou une autre valeur, le jeu crash. C'est pas opérationnel du tout, mais c'est un début et le projet avance petit à petit.
Faut dire que je n'ai repris le projet qu'il y à deux semaines à raison de 1h par semaine.. A la place de faire mes cours d'algo.
Par contre, dès que je tente une autre variable ou une autre valeur, le jeu crash. C'est pas opérationnel du tout, mais c'est un début et le projet avance petit à petit.
Faut dire que je n'ai repris le projet qu'il y à deux semaines à raison de 1h par semaine.. A la place de faire mes cours d'algo.
-
- Dieu de la Borne
- Messages : 1983
- Inscription : 29 mai 2013, 16:04
Comme quoi, les trajets en bagnole ça peut aider à réfléchir et trouver des solutions.
J'ai finalement réussi à faire ce que je voulais faire depuis le début : éditer directement l'exe !
En faites, j'arrivais à trouver les adresses à modifier et à les modifier à la volé avec Ollydbg.
Mais avec un éditeur d'hexa, pas moyen de trouver les adresses hexa en question.. A titre d'exemple, l'adresse 0x00428DDC ce trouve à la ligne 0x00028DD0
D’où ma réflexion d'aujourd'hui : Alors pourquoi ne pas chercher directement avec les valeurs des adresses ?
Et ça fonctionne parfaitement.. Je me sent un peu con et sale de ne pas avoir pensé à ça plus tôt..
J'ai finalement réussi à faire ce que je voulais faire depuis le début : éditer directement l'exe !
En faites, j'arrivais à trouver les adresses à modifier et à les modifier à la volé avec Ollydbg.
Mais avec un éditeur d'hexa, pas moyen de trouver les adresses hexa en question.. A titre d'exemple, l'adresse 0x00428DDC ce trouve à la ligne 0x00028DD0
D’où ma réflexion d'aujourd'hui : Alors pourquoi ne pas chercher directement avec les valeurs des adresses ?
Et ça fonctionne parfaitement.. Je me sent un peu con et sale de ne pas avoir pensé à ça plus tôt..