
PoC использования вычислительного шейдера в качестве полезной нагрузки
Это пример того, как внедрить полезную нагрузку в вычислительный шейдер. Полезная нагрузка шифруется и расшифровывается на GPU.
Это ни в коем случае не полная реализация, в ней отсутствуют важные аспекты OPSEC.
Сгенерируйте полезную нагрузку предпочитаемым способом; я использовал классический calc.exe в качестве примера.
Затем используйте скрипт на Python polychrome.py для генерации кода шейдера.
python3 polychrome.py <path_to_payload> -t both --meta -n payload
После этого у вас должен появиться файл шейдера, например .hlsl.
Чтобы его использовать, сначала нужно скомпилировать его.
fxc /T cs_5_0 /E CSMain /O3 /Fo payload.cso payload.hlsl
Переместите файл payload.cso и файл payload.meta.json в директорию resources.
Затем скомпилируйте проект на Rust — полезная нагрузка встраивается в исполняемый файл:
cargo build --release
