Supprimer un octet d'un exécutable ?

Supprimer un octet d'un exécutable ? - Divers - Programmation

Marsh Posté le 15-04-2007 à 22:41:54    

Bonjour,
 
Je viens d'acquérir un nouvel ordinateur avec Windows Vista.  
 
Je constate que ce dernier ne reconnait plus les "erreurs" de saisie dans la barre d'adresses. Ainsi C:\\program files renvoie une erreur (avec deux \)
Cette spécificité fait planter certains vieux jeux de Cryo, qui admettons le étaient trés mal programmés. En effet, les jeux tentent de se sauvegarder dans le répertoire \\data\save , écrit par erreur dans le programme exécutable du jeu avec deux anti-slash .
 
Ainsi dans le fichier exécutable du jeu "Jerusalem", on trouve les lignes suivantes à plusieurs reprises :
 
%s\data\save
 
Je suppose que %s inclut déjà un \, d'où l'erreur.
 
Avec un éditeur hexadécimal, on peut bien sûr modifier , mais en enlevant le 5C hexadécimal qui correspond au \ en ASCII, on fait planter le programme, qui n'est plus considéré comme une application Windows valide.
 
Ma question est simple :
- comment supprimer un octet d'un programme tout en le conservant fonctionnel ?
 
Je ne sais pas en quel langage le programme est fait. J'ai mis l'exécutable ici au cas ou : http://myfreefilehosting.com/f/9a6b6ac1c4_0.28MB
 
Merci
 
PS : je sais que la modification d'un fichier exécutable n'est pas légale, mais Cryo, la société éditrice a disparu, son repreneur (Dreamcatcher) m'a informé qu'il ne supportait plus ce programme, et m'ont dit que si je voulais "bidouiller" l'exécutable pour tenter de corriger le problème, ça ne les dérangeait pas.

Reply

Marsh Posté le 15-04-2007 à 22:41:54   

Reply

Marsh Posté le 15-04-2007 à 22:49:56    

Question probablement stupide mais pourquoi ne pas enlever le \ dans le path du jeu plutôt que de bidouiller l'exec ?

Reply

Marsh Posté le 15-04-2007 à 22:51:58    

Salut,
 
Il faut voir un fichier exécutable comme une structure qui répond à des règles précises. C'est un format de fichier comme BMP ou MP3. Donc si tu supprimes un octet, évidemment, ça ne fonctionne plus car les données suivantes ne sont plus alignées.
Il suffit de décaler les caractères pour effacer l'octet qui te gêne. Exemple :
 

25 73 5C 64 61 74 61 5C 73 61 76 65 00
%  s  \  d  a  t  a  \  s  a  v  e
 
25 73 64 61 74 61 5C 73 61 76 65 00 00
%  s  d  a  t  a  \  s  a  v  e


 
En résumé, si tu supprimes un caractère, il faut rajouter un caractère nul à la fin de la chaîne. Normalement, ça devrait fonctionner, en admettant que ton problème de sauvegarde vienne de cette chaîne. :)

Reply

Marsh Posté le 15-04-2007 à 23:14:55    

Merci, je vais essayer
 
esox_ch -> je ne peux pas faire ça, il n'y a pas de patch, tout ceci se trouve en "dur" dans le fichier exécutable

Reply

Marsh Posté le 15-04-2007 à 23:23:55    

pourquoi ne pas prendre un editeur hexa et lui demander de remplacer tou les %s\data\save  par %sdata\save par exemple.
 
Je dis sa mais bon je sais pas trop ^^

Message cité 1 fois
Message édité par gaswigue2003 le 15-04-2007 à 23:31:21
Reply

Marsh Posté le 16-04-2007 à 07:41:23    

gaswigue2003 a écrit :

pourquoi ne pas prendre un editeur hexa et lui demander de remplacer tou les %s\data\save  par %sdata\save par exemple.
 
Je dis sa mais bon je sais pas trop ^^


En effet tu ne sais pas trop, c'est precisemment le truc a ne pas faire!
Toutes les donnees qui se trouvent apres la chaine que tu as remplacee vont etre decalees d'un octet, bonjour la catastrophe si tu appliques ce procede plusieurs fois.
Ce qu'il faut faire, c'est ce qu'a dit Anordem, a savoir remplacer la chaine hexa par une chaine hexa de meme longueur, quitte a remplir avec un zero le trou cree par la suppression d'un caractere.

Reply

Marsh Posté le 16-04-2007 à 18:28:11    

c se a quoi je pensais aussi (pour le espace a rajoute) mais Anordem l'avais deja precisé

Reply

Marsh Posté le 16-04-2007 à 20:07:00    

et si y'a un checksum ?


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 16-04-2007 à 20:51:39    

Tamahome a écrit :

et si y'a un checksum ?


 
Pour répondre, il faudrait savoir qui calcule le checksum et pourquoi. Mais de toutes façons, le checksum sera évidemment différent, hors collisions éventuelles, puisque le fichier a été modifié.
 
Enfin, je ne saisis pas vraiment le but de ta question...

Reply

Marsh Posté le 16-04-2007 à 21:00:23    

Ethan_carter a écrit :

Merci, je vais essayer
 
esox_ch -> je ne peux pas faire ça, il n'y a pas de patch, tout ceci se trouve en "dur" dans le fichier exécutable


ce que veut dire esox_ch, c'est que le "path" en question est très certainement écrit quelque part dans un fichier généré durant l'installation du jeu.
 
genre t'as demandé à installer dans le répertoire : "c:\program files\truc_muche\" au lieu de "c:\program files\truc_muche" et il a gardé le \ dans le fichier de config.

Reply

Marsh Posté le 16-04-2007 à 21:00:23   

Reply

Marsh Posté le 16-04-2007 à 21:00:56    

Tamahome a écrit :

et si y'a un checksum ?


suffit de chercher la valeur de référence et la modifier :D (t pas joueur toi :o)

Message cité 1 fois
Message édité par MagicBuzz le 16-04-2007 à 21:01:14
Reply

Marsh Posté le 16-04-2007 à 21:10:33    

MagicBuzz a écrit :

suffit de chercher la valeur de référence et la modifier :D (t pas joueur toi :o)


 
Si le prog qui checksum c'est l'exec lui même (faut être limite parano mais bon on sait jamais) il va s'amuser :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 16-04-2007 à 21:53:02    

Reply

Marsh Posté le 16-04-2007 à 23:49:16    

Taz a écrit :

pas légal


 :hello:  
Si c'est pour venir recracher les préjugés grossiers de "on", t'es pas obligé de poster, hein. Même les bots savent écrire des phrases complètes. On ne sait même pas de quoi tu parles... :spamafote:
 
Si ça te plait de vivre avec des oeillères, c'est ton problème mais évite de venir en foutre sur la tronche de toutes les personnes que tu croises. Ou alors, renseigne toi un minimum avant de venir jouer le mec qui sait tout.

Reply

Marsh Posté le 17-04-2007 à 00:00:16    

Je ne vois la différence avec du cracking. En plus tu redistribues des fichiers ...

Reply

Marsh Posté le 17-04-2007 à 00:25:14    

Effectivement, diffuser les fichiers est illégal.
 
Mais il s'agit ici de modifier un programme dans le but de le faire fonctionner sous Vista. Cette action est prévue par la loi sous le terme "intéropérabilité". Cependant, la loi est encore floue sur le sens de "intéropérabilité".
http://www.legifrance.gouv.fr/WAsp [...] t=L122-6-1
http://www.assemblee-nationale.fr/ [...] 600341.asp
 
Et en plus, l'autorisation de l'auteur n'est même pas nécessaire, la seule condition étant de posséder une licence d'utilisation. Et Ethan_carter a également eu l'autorisation de la part de l'éditeur actuel. Donc il n'y a vraiment rien d'illégal dans cette démarche si ce n'est effectivement le lien vers l'exécutable.
 
Donc il faut arrêter d'être scandalisé à chaque fois qu'on parle de modifier un exécutable. Le cracking, c'est casser des protections dans le but d'utiliser un programme sans licence, ça n'a rien à voir ! :)
 
 


Message édité par anordem le 17-04-2007 à 00:28:08
Reply

Marsh Posté le 17-04-2007 à 07:58:51    

[:brice]


---------------
Hobby eien /人◕ ‿‿ ◕人\
Reply

Marsh Posté le 17-04-2007 à 09:58:47    

euh tu peux citer les passages de ces textes ou de la licence de ton logiciel qui t'autorise à modifier le programme ?

Reply

Marsh Posté le 17-04-2007 à 11:10:45    

Taz a écrit :

euh tu peux citer les passages de ces textes ou de la licence de ton logiciel qui t'autorise à modifier le programme ?


Euh, oui.
 
Extrait de l'article L122-6-1

Citation :

La reproduction du code du logiciel ou la traduction de la forme de ce code n'est pas soumise à l'autorisation de l'auteur lorsque la reproduction ou la traduction au sens du 1º ou du 2º de l'article L. 122-6 est indispensable pour obtenir les informations nécessaires à l'interopérabilité d'un logiciel créé de façon indépendante avec d'autres logiciels (...)


Définition de "intéropérabilité" selon l'amendement N° 341 :

Citation :

On entend par interopérabilité la capacité à rendre compatibles deux systèmes quelconques.


Cela correspond bien à notre cas : rendre compatible le jeu Jerusalem avec le système Vista. Les restrictions étant de ne pas commercialiser le résultat et de posséder une licence d'utilisation.
 
Alors après tu peux toujours renchérir sachant que :
- je ne suis pas juriste
- la loi est encore floue
 
Mais bon, il ne s'agit ici que de rendre compatible un jeu avec un système et en plus Ethan_carter a reçu l'autorisation des ayants droit. Et si on suit ton raisonnement, des programmes comme Samba ou Wine serait illégaux. Sans parler que ce genre de pratique est courante avec des jeux qui ne sont plus supportés.

Reply

Marsh Posté le 17-04-2007 à 12:33:17    

1) pas applicable. Tu ne crées rien. Tu modifies une oeuvre originale.
2) et alors ? cette définition n'autorise rien.

Reply

Marsh Posté le 17-04-2007 à 13:12:49    

Que veux-tu que je te dise...  
 
La loi est encore floue et pas forcément adaptée à chaque cas. Encore une fois, je ne suis pas juriste et je ne sais pas du tout comment pourrait finir cette situation devant un tribunal.  
 
Pour moi, le texte de loi couvre cette situation. Une autre interprétation serait de parler de maintenance du logiciel auquel cas ce serait illégal, mais ce serait au juge de trancher, si plainte il y a.
 
Ces textes sont là dans le cas où l'autorisation de désassemblage est refusée par l'éditeur. Et ça fait juste 3 fois que je répète que l'éditeur a donné son accord.  
 

Reply

Marsh Posté le 17-04-2007 à 13:47:22    

Non, le texte te permet de concevoir une couche logicielle permettant de pallier au problème de compatibilité entre ton jeu et Vista.
Pour ce faire, la lois t'autorise uniquement à décompiler le code de l'un comme de l'autre afin de comprendre le fonctionnement des parties avec lesquelles tu dois inter-agir.
 
De toute façon, comme suggéré par esox_ch et moi-même, tu as toutes les chances de résoudre ton problème simplement en corrigeant le fichier de configuration.

Reply

Marsh Posté le 17-04-2007 à 14:47:43    

Quelqu'un m'aide à modifier le binaire de C&C3 ? (l'éditeur m'a donné son accord).

Reply

Marsh Posté le 17-04-2007 à 15:11:01    

(Si c'est pour faire tourner un vieux jeu, pourquoi ne pas mettre une Virtual Box avec Windows XP ou plus vieux dedans ?)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 17-04-2007 à 15:21:55    

ok on t'aide tu veux faire quoi? Une armée d'enculeur de mouches?

Reply

Marsh Posté le 17-04-2007 à 15:45:29    

anordem a écrit :

Que veux-tu que je te dise...  
 
La loi est encore floue et pas forcément adaptée à chaque cas. Encore une fois, je ne suis pas juriste et je ne sais pas du tout comment pourrait finir cette situation devant un tribunal.  
 
Pour moi, le texte de loi couvre cette situation. Une autre interprétation serait de parler de maintenance du logiciel auquel cas ce serait illégal, mais ce serait au juge de trancher, si plainte il y a.
 
Ces textes sont là dans le cas où l'autorisation de désassemblage est refusée par l'éditeur. Et ça fait juste 3 fois que je répète que l'éditeur a donné son accord.


 
tof


---------------
Töp of the plöp
Reply

Marsh Posté le 18-04-2007 à 07:06:20    

Taz a écrit :

Quelqu'un m'aide à modifier le binaire de C&C3 ? (l'éditeur m'a donné son accord).


 
Super ... Vraisemblablement tu penses que le gugus qui a créé le sujet ment à propos de l'autorisation ... Sur quelle base ? Le bon sens ? Et la présomption d'innocence tu connais ?  
Franchement même si l'éditeur n'avait pas donné son accord ... Qu'est-ce que ça te change? À mon avis la mauvaise foi sur ce coups n'est pas beaucoup plus grande que celle dont font preuve tous les types qui viennent sur le topic de sécurité du Wifi (dans OSA) en disant qu'ils testent la sécurité de leur wifi mais que aircrack bug ... Et pourtant on leur répond ... Donc si tu veux des guerres pleines de moulins à vent, va faire un tour laba


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-04-2007 à 08:23:25    

Super ... Vraisemblablement tu penses que le gugus qui a créé le sujet ment à propos de l'autorisation ... Sur quelle base ? Le bon sens ? Et la présomption d'innocence tu connais ?  
Franchement même si l'éditeur n'avait pas donné son accord ... Qu'est-ce que ça te change? À mon avis la mauvaise foi sur ce coups n'est pas beaucoup plus grande que celle dont font preuve tous les types qui viennent sur le topic de sécurité du Wifi (dans OSA) en disant qu'ils testent la sécurité de leur wifi mais que aircrack bug ... Et pourtant on leur répond ... Donc si tu veux des guerres pleines de moulins à vent, va faire un tour laba

Reply

Marsh Posté le 18-04-2007 à 09:21:15    

pkoi taz y répète ce que lui à dit esox_ch ? :pt1cable:

Reply

Marsh Posté le 18-04-2007 à 09:23:05    

parce que la même réponse s'applique exactement a son cas ?

Reply

Marsh Posté le 18-04-2007 à 09:47:15    

(enfin... en tout cas, j'aimerais savoir pourquoi y'a débat, puisque de toute façon depuis le début on lui a dit comment faire :spamafote:)
 
pis il a qu'à pirater un jeu plus récent, et il marchera tant qu'à faire :o

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed