Afficher un message
Vieux 12/01/2016, 19h29   #4 (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

Bon tuto effectivement.

Juste une observation. Si l'on hexédite des images de disques plutôt que des EXEs, il faut garder à l'esprit qu'il y a des ECCs et adapter la longueur de la chaine hexadécimale à rechercher en conséquence. Plus elle est courte, mieux c'est. Mais bien entendu il faut aussi s'assurer que la chaine courte soit unique pour ne pas patcher une fonction non désirée.

Un exemple ici :
Code:
13 00 02 2A  BD 0C 62 28  02 00 40 10  BC 0C 05 24  21 28 60 00  13 00 02 2A  06 00 40 14  21 18 A0 00

En cherchant cette chaine complète dans une image disque de Actua Ice Hockey 2 (SLES-01226), on ne la trouvera pas. À cause des ECCs qui se foutent en travers du code (la portion surlignée sur la capture d'écran).


C'est un cas d'école. CUE2POPS échouait à patcher le VMODE en NTSC sur certains dumps, à cause de la longueur de la chaine :
Code original :
Code:
?? ?? 02 3C  ?? ?? 42 8C   ?? ?? 01 3C  08 00 E0 03   ?? ?? 24 AC  ?? ?? 02 3C   ?? ?? 42 8C  08 00 E0 03
Code modifié :
Code:
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 02 24  08 00 E0 03
Il m'avait fallu élaborer un système de saut d'ECC et le scan prenait beaucoup plus de temps.

Edit : Au fait, le bug de Zapper pour les valeurs inférieures à zéro, c'est qu'il interprète les valeurs en 16 bits comme il faut, mais ne patche que 8 bits. Exemples :
Si on lui donne la valeur 256, il patche 0x00 (0) au lieu de 0x0100 (256).
Si on lui donne la valeur -2, il patche 0xFE (254) au lieu de 0xFFFE (-2).
Peut être que quelqu'un pourra corriger ce bug en lui faisant écrire un half-word plutôt qu'un byte.

Dernière modification par krHACKen ; 12/01/2016 à 19h48.
krHACKen est déconnecté   Réponse avec citation
Cet utilisateur dit Merci à krHACKen pour ce poste utile:
Nocturne (12/01/2016)