
Sencilla aplicación dotnet Native AOT que utiliza LibObjectFile para convertir shellcode a ELF
Aplicación .NET Native AOT sencilla que utiliza [LibObjectFile] para convertir shellcode a ELF.
Se admiten shellcode tanto de 32 bits como de 64 bits (x86, x64) -> el resultado es un ELF de 32 o 64 bits.
Los [Releases] están compilados para linux-x64 y win-x64.
Está compilado en formato Native AOT para demostrar lo increíble que es (aunque fue un dolor porque algunas dependencias usan reflexión que se recorta si no lo engañamos :D). Los binarios de [release] disponibles para descargar son binarios nativos sin ninguna dependencia de dotnet. (así que solo ejecuta y disfruta)
Compilado con Native AOT, usando dotnet SDK 8.0.100-preview.3.23178.7
Se eligió dotnet SDK 8+ porque produce binarios mucho más pequeños.
La compilación Native AOT es compatible desde la versión dotnet 7.
Si quieres usar dotnet 7 para compilar, modifica el archivo del proyecto para apuntar a net7.0 -> compilar es mucho más fácil para dotnet 7.
Bastante fácil:
-p, --path [Requerido. Ruta al archivo de shellcode]
-a, --architecture [Requerido. Arquitectura: 32 o 64 (según el shellcode)]
-o, --offset [Opcional. Offset inicial del shellcode (por defecto 0)]
--help [Muestra esta pantalla de ayuda]
--version [Muestra información de versión]
Convertir shellcode a ELF de 32 bits (Offset inicial del shellcode establecido en el byte 66):
sc2elf -a 32 -o 66 -p C:\shellcode.bin