
Chargeur manuel de PE Windows basé sur Rust qui mappe et exécute des exécutables x86/x64 depuis la mémoire, démontrant le comportement interne du chargeur et la structure PE pour la recherche éducative.
Implémentation de chargeur PE / mappage manuel en Rust
IronPE est un chargeur manuel minimal de PE Windows écrit en Rust pour les fichiers PE x86 et x64.
Ce projet est une réimplémentation en Rust de mon précédent projet dotNetPELoader, qui implémentait un chargeur manuel de PE en C#.
L'objectif d'IronPE est d'explorer comment Windows charge les exécutables portables en interne et de montrer comment ce processus peut être implémenté en Rust.
Waaaahhhhhhh!
Si vous trouvez ce projet utile ou instructif, un ⭐ serait apprécié !
Ce projet est destiné uniquement à des fins éducatives et de recherche.
Il est conçu pour aider à comprendre :
Ce projet s'inspire de ma précédente implémentation :
Dans ce projet, j'ai implémenté un chargeur PE en utilisant .NET et WinAPI.
IronPE réécrit le même concept en Rust, qui offre une meilleure sécurité mémoire tout en permettant l'accès aux API Windows de bas niveau.
Le but de ce projet est éducatif, pour mieux comprendre :
IronPE effectue les étapes suivantes pour exécuter un fichier PE depuis la mémoire :
VirtualAllocLoadLibrary et GetProcAddressCe processus imite le comportement du chargeur PE Windows.
Un PE x64 ne peut pas être chargé par un chargeur x86, et vice versa.
Prérequis :
cargo, rustc)Compiler le projet :
cd IronPE
build.bat
IronPE.exe --coffee
IronPE.exe --x86 <x86_pe_file>
IronPE.exe --x64 <x64_pe_file>
Exemple :
IronPE.exe --x86 Win32\mimikatz.exe
IronPE.exe --x64 x64\mimikatz.exe