Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1439 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Supprimer un octet d'un exécutable ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer un octet d'un exécutable ?

n°1543129
Ethan_cart​er
Posté le 15-04-2007 à 22:41:54  profilanswer
 

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.

mood
Publicité
Posté le 15-04-2007 à 22:41:54  profilanswer
 

n°1543132
esox_ch
Posté le 15-04-2007 à 22:49:56  profilanswer
 

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

n°1543136
anordem
Posté le 15-04-2007 à 22:51:58  profilanswer
 

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. :)

n°1543144
Ethan_cart​er
Posté le 15-04-2007 à 23:14:55  profilanswer
 

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

n°1543146
gaswigue20​03
Posté le 15-04-2007 à 23:23:55  profilanswer
 

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
n°1543167
Ace17
Posté le 16-04-2007 à 07:41:23  profilanswer
 

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.

n°1543448
gaswigue20​03
Posté le 16-04-2007 à 18:28:11  profilanswer
 

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

n°1543494
Tamahome
⭐⭐⭐⭐⭐
Posté le 16-04-2007 à 20:07:00  profilanswer
 

et si y'a un checksum ?


---------------
Hobby eien /人◕ ‿‿ ◕人\
n°1543507
anordem
Posté le 16-04-2007 à 20:51:39  profilanswer
 

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...

n°1543515
MagicBuzz
Posté le 16-04-2007 à 21:00:23  profilanswer
 

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.

mood
Publicité
Posté le 16-04-2007 à 21:00:23  profilanswer
 

n°1543516
MagicBuzz
Posté le 16-04-2007 à 21:00:56  profilanswer
 

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
n°1543522
esox_ch
Posté le 16-04-2007 à 21:10:33  profilanswer
 

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
n°1543531
Taz
bisounours-codeur
Posté le 16-04-2007 à 21:53:02  profilanswer
 
n°1543552
anordem
Posté le 16-04-2007 à 23:49:16  profilanswer
 

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.

n°1543557
Taz
bisounours-codeur
Posté le 17-04-2007 à 00:00:16  profilanswer
 

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

n°1543559
anordem
Posté le 17-04-2007 à 00:25:14  profilanswer
 

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
n°1543593
Tamahome
⭐⭐⭐⭐⭐
Posté le 17-04-2007 à 07:58:51  profilanswer
 

[:brice]


---------------
Hobby eien /人◕ ‿‿ ◕人\
n°1543620
Taz
bisounours-codeur
Posté le 17-04-2007 à 09:58:47  profilanswer
 

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

n°1543661
anordem
Posté le 17-04-2007 à 11:10:45  profilanswer
 

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.

n°1543730
Taz
bisounours-codeur
Posté le 17-04-2007 à 12:33:17  profilanswer
 

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

n°1543746
anordem
Posté le 17-04-2007 à 13:12:49  profilanswer
 

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.  
 

n°1543760
MagicBuzz
Posté le 17-04-2007 à 13:47:22  profilanswer
 

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.

n°1543807
Taz
bisounours-codeur
Posté le 17-04-2007 à 14:47:43  profilanswer
 

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

n°1543827
zapan666
Tout est relatif
Posté le 17-04-2007 à 15:11:01  profilanswer
 

(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 !
n°1543837
Pablo Escr​obarbe
Retour d'exil
Posté le 17-04-2007 à 15:21:55  profilanswer
 

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

n°1543846
_darkalt3_
Proctopathe
Posté le 17-04-2007 à 15:45:29  profilanswer
 

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
n°1544088
esox_ch
Posté le 18-04-2007 à 07:06:20  profilanswer
 

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
n°1544096
Taz
bisounours-codeur
Posté le 18-04-2007 à 08:23:25  profilanswer
 

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

n°1544107
MagicBuzz
Posté le 18-04-2007 à 09:21:15  profilanswer
 

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

n°1544108
lorill
Posté le 18-04-2007 à 09:23:05  profilanswer
 

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

n°1544116
MagicBuzz
Posté le 18-04-2007 à 09:47:15  profilanswer
 

(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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Supprimer un octet d'un exécutable ?

 

Sujets relatifs
Rendre une interface MATLAB executable[C] ecrire un entier en octet (avec n octets donnes)
supprimer photo chekboxSupprimer des caracteres dans un fichier texte
supprimer des sos-dossiers[SQL] Supprimer les tuples en doubles dans une table
[PHP] Supprimer les 5 denrières lignes d'un fichier[PHP] supprimer contenu d'une table mysql
Supprimer les dernières lignes d'un fichier.[VBS] supprimer les 2 premiere ligne d'un fichier
Plus de sujets relatifs à : Supprimer un octet d'un exécutable ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR