
Application dotnet Native AOT simple qui utilise LibObjectFile pour convertir du shellcode en ELF
Application dotnet Native AOT simple qui utilise [LibObjectFile] pour convertir du shellcode en ELF.
Le shellcode 32 bits et 64 bits (x86, x64) est pris en charge -> le résultat est un ELF 32 bits ou 64 bits.
Les [versions] sont compilées pour linux-x64 et win-x64.
Il est compilé au format Native AOT pour démontrer à quel point c'est génial (même si c'était une galère car certaines dépendances utilisent la réflexion, qui est éliminée si on ne la contourne pas :D). Les binaires de la [version] téléchargeables sont des binaires natifs sans aucune dépendance dotnet ! (il suffit donc de lancer et d'apprécier)
Compilé en Native AOT, avec dotnet SDK 8.0.100-preview.3.23178.7
Le SDK dotnet 8+ a été choisi car il produit des binaires beaucoup plus petits.
La compilation Native AOT est prise en charge à partir de dotnet 7.
Si vous souhaitez utiliser dotnet 7 pour la génération, modifiez le fichier projet pour cibler net7.0 -> la génération est beaucoup plus facile avec dotnet 7.
Assez simple :
-p, --path [Requis. Chemin vers le fichier shellcode]
-a, --architecture [Requis. Architecture : 32 ou 64 (selon le shellcode)]
-o, --offset [Optionnel. Décalage de début du shellcode (défaut 0)]
--help [Affiche cet écran d'aide]
--version [Affiche les informations de version]
Convertir du shellcode en ELF 32 bits (décalage de début du shellcode défini au 66e octet) :
sc2elf -a 32 -o 66 -p C:\shellcode.bin