This is a multi-part message in MIME format.
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<
basile@starynkevitch.net>
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><br>
</p>
<div class="moz-cite-prefix">On 9/19/23 14:40, ptilou wrote:<br>
</div>
<blockquote type="cite"
cite="mid:
a9646116-f848-432f-80b7-d7ffe1947430n@googlegroups.com">
<pre class="moz-quote-pre" wrap="">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 ?</pre>
</blockquote>
<p><br>
</p>
<p>Je comprends qu'il s'agit de patcher des executables binaires (au
format ELF).</p>
<p>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.</p>
<p>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 <a class="moz-txt-link-freetext" href="
https://man7.org/linux/man-pages/man3/dlopen.3.html">https://man7.org/linux/man-pages/man3/dlopen.3.html</a> ...).</p>
<p>Si on peut arrêter un processus exécutant ce binaire, voir aussi
<a class="moz-txt-link-freetext" href="
https://man7.org/linux/man-pages/man5/proc.5.html">https://man7.org/linux/man-pages/man5/proc.5.html</a></p>
<p><br>
</p>
<p>Un binaire sous Linux peut aussi et légitimement modifier son
propre code .... <a class="moz-txt-link-freetext" href="
https://asmjit.com/">https://asmjit.com/</a> et
<a class="moz-txt-link-freetext" href="
https://gcc.gnu.org/onlinedocs/jit/">https://gcc.gnu.org/onlinedocs/jit/</a> et
<a class="moz-txt-link-freetext" href="
https://en.wikipedia.org/wiki/Self-modifying_code">https://en.wikipedia.org/wiki/Self-modifying_code</a> etc</p>
<p>(un exemple réaliste est <a class="moz-txt-link-freetext" href="
https://sbcl.org/">https://sbcl.org/</a> ou
<a class="moz-txt-link-freetext" href="
http://refpersys.org/">http://refpersys.org/</a> ....)<br>
</p>
<p>Des outils comme
<a class="moz-txt-link-freetext" href="
https://sourceware.org/binutils/docs/binutils/readelf.html">https://sourceware.org/binutils/docs/binutils/readelf.html</a> et
<a class="moz-txt-link-freetext" href="
https://binsec.github.io/">https://binsec.github.io/</a> et <a class="moz-txt-link-freetext" href="
https://www.sourceware.org/gdb/">https://www.sourceware.org/gdb/</a>
peuvent aider.</p>
<p>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é.<span style="white-space: pre-wrap">
</span></p>
<pre class="moz-signature" cols="72">--
Basile Starynkevitch <a class="moz-txt-link-rfc2396E" href="mailto:
basile@starynkevitch.net"><
basile@starynkevitch.net></a>
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/
</pre>
</body>
</html>
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)