Exécution de binaires en mémoire
Les développeurs doivent souvent exécuter des binaires dans le cadre de leurs applications. Cependant, l'approche traditionnelle consistant à sauvegarder le binaire sur le disque puis à appeler « exec » ou « fork » peut s'avérer inefficace. Cet article explore une méthode pour exécuter des binaires directement à partir de la mémoire, éliminant ainsi le besoin d'écritures sur disque.
Contexte
Dans l'extrait de code fourni, les données binaires sont stockées dans une variable nommée "myExec". Le but est d'exécuter ce binaire sans le réécrire dans le système de fichiers.
Solution en C et Linux
En C, l'appel système mprotect() vous permet pour modifier la protection d'une région mémoire. Cela signifie que vous pouvez convertir une région de données en région de code. Une fois cette conversion effectuée, vous pouvez exécuter la région mémoire en y accédant.
Voici un exemple de la façon dont cela pourrait être fait :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!