
Aplicativo dotnet Native AOT simples que usa LibObjectFile para converter shellcode em ELF
Aplicativo Native AOT simples em dotnet que usa [LibObjectFile] para converter shellcode em ELF.
Shellcode de 32 e 64 bits (x86, x64) é suportado -> resultando em ELF de 32 ou 64 bits.
As [Releases] são compiladas para linux-x64 e win-x64.
Ele é compilado para o formato Native AOT para demonstrar como isso é incrível (ainda assim, foi um saco, pois alguma dependência usa reflection que é removida se não a enganarmos :D). Os binários de [release] disponíveis para download são binários nativos sem nenhuma dependência do dotnet! (então é só executar e aproveitar)
Compilado com Native AOT, usando o dotnet SDK 8.0.100-preview.3.23178.7
O dotnet SDK 8+ foi escolhido por produzir binários muito menores.
A compilação Native AOT é suportada a partir da versão dotnet 7.
Se você quiser usar o dotnet 7 para compilar, modifique o arquivo do projeto para ter como alvo o net7.0 -> compilar é muito mais fácil com o dotnet 7.
Bem fácil:
-p, --path [Obrigatório. Caminho para o arquivo de shellcode]
-a, --architecture [Obrigatório. Arquitetura: 32 ou 64 (dependendo do shellcode)]
-o, --offset [Opcional. Offset inicial do shellcode (padrão 0)]
--help [Exibir esta tela de ajuda]
--version [Exibir informações de versão]
Converter shellcode para ELF de 32 bits (Offset inicial do shellcode definido no 66º byte):
sc2elf -a 32 -o 66 -p C:\shellcode.bin