Une aventure palpitante : créer un programme C auto-modificateur

2025-05-25

Cet article détaille la création d’un programme C capable de modifier son propre code en cours d’exécution. L’auteur explique d’abord comment le code du programme est stocké en mémoire et comment utiliser la fonction `mprotect()` pour modifier les autorisations du segment de code afin de le rendre accessible en écriture. Ensuite, en modifiant la valeur immédiate d’une instruction `addl`, l’auteur montre comment modifier la sortie du programme. Enfin, l’auteur va plus loin, en utilisant `memcpy()` pour copier un shellcode dans le segment de code du programme, exécutant ainsi avec succès une commande shell en cours d’exécution. L’ensemble du processus est techniquement complexe et nécessite une solide compréhension du langage d’assemblage x86_64.

Lire plus