
Nasconde payload riflessivi nella memoria GPU tramite API CUDA, cancellando la memoria host durante lo sleep e utilizzando un handler VEH per ripristinare la memoria eseguibile, eludendo l'analisi forense della memoria.
1- primo, dobbiamo impostare e inizializzare alcune struct / e avviare il nostro ve handler.
2- secondo, eseguiamo il payload stageless, dobbiamo usare stageless, per sapere dove atterrerà la reflection (sto usando cobalt strike e usa un reflective loader dll), ci interessa solo il perché è quello il payload vero e proprio. non ho aggiunto trucchi a questo passaggio, solo una virtualalloc e una sezione rwx
2nd stage3- ora quando il payload va in sleep, copiamo il payload nella memoria gpu e ripuliamo il payload nella memoria reale.
4- quando il sleep è terminato, il veh gestirà l'eccezione (EXCEPTION_ACCESS_VIOLATION) re-impostando i permessi di memoria a PAGE_EXECUTE_READWRITE e rimettendo il payload al suo posto dalla gpu.
