
Convertit PE en un shellcode
Convertit un PE afin qu'il puisse ensuite être injecté comme un shellcode normal.
(En même temps, le fichier de sortie reste un PE valide).
Prend en charge les PE 32 et 64 bits
Auteurs : @hasherezade & @hh86
Le but de ce projet est de fournir la possibilité de générer des fichiers PE qui peuvent être injectés avec un effort minimal. Il est inspiré du ReflectiveDLLInjection de Stephen Fewer - mais la différence est qu'avec pe2shc, vous pouvez ajouter le stub de chargement réfléchissant après la compilation. De plus, l'en-tête du fichier PE est modifié de telle manière que vous pouvez commencer à exécuter le buffer injecté depuis le tout début - comme vous le feriez avec un shellcode. Il trouvera automatiquement le stub et continuera à charger le PE complet.
🟢 Le stub ne prend en charge que les structures de base du format PE, telles que :
Veuillez garder à l'esprit que, bien que cela soit suffisant pour la majorité des fichiers PE, certains exécutables que vous pourriez rencontrer utilisent d'autres aspects plus complexes du format PE. Cela signifie que tous les PE ne peuvent pas être convertis avec succès en shellcode.
🚫 Exemples d'éléments actuellement non pris en charge :
📦 ⚙️ Téléchargez la dernière version.
Utilisez un clone récursif pour obtenir le dépôt avec tous les sous-modules :
git clone --recursive https://github.com/hasherezade/pe_to_shellcode.git
pe2shc.exe <chemin vers votre PE> [chemin de sortie*]
* - optionnel
Si le PE a été converti avec succès, pe2shc vous indiquera où la sortie a été sauvegardée :
[+] Sauvegardé dans le fichier : <fichier converti>
Exemple :
[+] Sauvegardé dans le fichier : test_file.shc.exe
runshc.exe <fichier converti>
(*)Attention : n'oubliez pas d'utiliser la version de runshc avec la bitness appropriée à votre application convertie (32 ou 64 bits) - sinon l'application plantera !