
Простое dotnet Native AOT приложение, использующее AsmResolver для преобразования shellcode в PE.
Простое dotnet Native AOT приложение, использующее [AsmResolver] для преобразования shellcode в PE.
Поддерживается 32-битный и 64-битный (x86, x64) shellcode -> в результате получается 32-битный или 64-битный PE.
[Релизы] скомпилированы для linux-x64 и win-x64.
Он скомпилирован в формат Native AOT, чтобы продемонстрировать, насколько это круто (всё же это было болезненно, так как некоторые зависимости используют рефлексию, которая обрезается, если не обхитрить её :D). Доступные для скачивания бинарники [релиза] являются нативными бинарниками без каких-либо зависимостей dotnet! (так что просто запускайте и наслаждайтесь)
Скомпилировано в Native AOT с использованием dotnet SDK 8.0.100-preview.3.23178.7
Dotnet SDK 8+ был выбран, потому что он создаёт гораздо меньшие бинарники.
Компиляция Native AOT поддерживается начиная с версии dotnet 7.
Если вы хотите использовать dotnet 7 для сборки, измените файл проекта на net7.0 -> сборка для dotnet 7 гораздо проще.
Довольно просто:
-p, --path [Обязательно. Путь к файлу shellcode]
-a, --architecture [Обязательно. Архитектура: 32 или 64 (в зависимости от shellcode)]
-o, --offset [Необязательно. Начальное смещение shellcode (по умолчанию 0)]
--help [Показать этот экран справки]
--version [Показать информацию о версии]
Преобразование shellcode в 32-битный PE (начальное смещение shellcode установлено на 66-й байт):
sc2pe -a 32 -o 66 -p C:\shellcode.bin