On 9/19/23 14:40, ptilou wrote:
Slt,
Je me demande si il existe des lectures pour savoir comment manipuler des
binaires et puis de les patchers ?
Je sais qu'il y a des personnes qui sont capable de lire le binnaire ( en plus
de programmes qui font du reverse et modifie les fichiers encapsules !), et
donc j'aimerai apprendre les fondements de la technique a optimiser le binaire,
que dois je lire (?) , je n'ai pas vue de question a ce sujet, je l'ai vue en
action a la St Olivetti (optimiser le binaire) ...
Je me demande si seulement vous ne savez pas le faire, et que le patche kernel
ou autre ce fait par script et comparaison du binaires sortie de compile avec
diff ?
Je comprends qu'il s'agit de patcher des executables binaires (au format
ELF).
Si le binaire est propriétaire, il y a des cas où c'est illégal. A voir
avec son employeur ou avocat et la licence logicielle du binaire.
Si modifier un binaire est légal, c'est en pratique très compliqué. Si
on peut lancer le binaire (sous gdb) c'est mieux. Car en pratique un
binaire a des dépendances (utiliser /usr/bin/ldd pour les découvrir,
voir aussi les greffons chargés par
https://man7.org/linux/man-pages/man3/dlopen.3.html ...).
Si on peut arrêter un processus exécutant ce binaire, voir aussi
https://man7.org/linux/man-pages/man5/proc.5.html
Un binaire sous Linux peut aussi et légitimement modifier son propre
code .... https://asmjit.com/ et https://gcc.gnu.org/onlinedocs/jit/ et
https://en.wikipedia.org/wiki/Self-modifying_code etc
(un exemple réaliste est https://sbcl.org/ ou http://refpersys.org/ ....)
Des outils comme
https://sourceware.org/binutils/docs/binutils/readelf.html et
https://binsec.github.io/ et https://www.sourceware.org/gdb/ peuvent aider.
Ma préférence est pour le logiciel libre, et dans ce cas là, il est plus
simple de recompiler le code source après l'avoir modifié.
--
Basile Starynkevitch<bas...@starynkevitch.net>
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/