Afficher un message
Vieux 27/02/2018, 13h28   #101 (permalink)
Profil
krHACKen
Membre
Ancienneté  20%
Ancienneté 20%
 
Avatar de krHACKen
 
Date d'inscription: juillet 2013
Pays :
Messages: 764
Téléchargements: 0
Uploads: 0
Merci: 215
Remercié 699 fois dans 441 Posts
Par défaut

C'est possible de fabriquer ça. Mais ça ne parviendra pas à patcher les trucs qui sont en dehors de l'EXE.

En fait faudrait coder un mini cheat engine qui s'injecte dans les EXEs pour que tout soit patché même en dehors de l'EXE. Mais sur PS1 on ne peut pas rendre ce type de hack universel. C'est possible sur PS2 parce que la taille de l'en-tête du ELF est modifiable. La plupart des ELFs sont compilés avec une en-tête qui laisse grosso merdo 4096 octets pour une injection de code. Et pour attacher le cheat engine, on utilise une fonction générique du jeu, comme scePadRead ou memcpy.
Sur PS1, la taille de l'en-tête est de 2048 octets. On ne peut ni modifier sa taille, ni injecter du code exécutable dedans.


EDIT : Les conditions pour convertir un code en patch sont les suivantes :
- La cible doit être dans l'EXE
- La cible doit être une valeur fixe (comme une fonction), pas un truc variable (comme la valeur de l'énergie d'un personnage)

Si les deux critères sont remplis, voilà le calcul à faire :

Adresse du code - adresse de chargement de l'exe + taille de l'en-tête = offset à patcher

Exemple avec le code 30092535 0000 et l'exe du screenshot :
92535h - 10000h + 800h = à l'offset 82D35h du fichier EXE, écrire 00h

Dernière modification par krHACKen ; 27/02/2018 à 13h43.
krHACKen est déconnecté   Réponse avec citation
Ces 3 utilisateurs disent Merci à krHACKen pour ce poste utile:
Allan58 (04/03/2018), ShaoliAss (27/02/2018), Squaresoft74 (27/02/2018)