
컴퓨트 셰이더를 페이로드로 사용하는 방법에 대한 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
