Le programme permet d'ajouter des données (des messages textuels, ou des certifications de provenance) en modifiant simplement quelques instructions, en les remplaçant par d'autres intructions equivalentes.
L'exemple utilisé était le remplacement d'un sub #nombre par add #-nombre.
J'ai cherché les instructions du 68k qui pourrait être remplacées par des équivalents exacts en résulats, taille, et nombre de cycles :
add - sub - addi - subi avec le truc de ci-dessus.
addq.w #imm,an <-> addq.l #imm,an . Pareil pour subq.
move.l an,-(a7) <-> pea (an)
lea $xxxxxxxx,an <-> move.l #$xxxxxxxx,an
exg dx,dy <-> exg dy,dx - Pareil pour exg ax,ay.
bclr - bset - bchg : Pour une destination en mémoire, le numéro du bit est utilisé modulo 8, donc les 13 bits restants des 2 octets codant le numero du bit peuvent être utilisé a souhait. Pour un destination en registre, le numéro est utilisé modulo 32. Il reste 11 bits inutilisés.
move #imm,ccr : l'octet de poids fort du mot imm n'est pas utilisé, il peut etre modifié sans problèmes.
D'autres idées ?
De toute façon c'est plutôt impossible à mettre en place, il faudrait pouvoir distinguer instructions et données, et il faudrait mettre en place tout un système de désassemblage. En plus c'est pas vraiment utile
