
CUDA APIs के माध्यम से GPU मेमोरी में रिफ्लेक्टिव पेलोड छुपाता है, स्लीप के दौरान होस्ट मेमोरी को मिटाता है और निष्पादन योग्य मेमोरी को पुनर्स्थापित करने के लिए VEH हैंडलर का उपयोग करता है, जिससे मेमोरी फोरेंसिक से बचा जा सकता है।
1- सबसे पहले, हमें कुछ structs सेटअप और इनिशियलाइज़ करने होंगे / और अपना ve handler चलाना होगा।
2- दूसरे, हम stageless पेलोड चलाते हैं, हमें जरूर stageless का उपयोग करना चाहिए, यह जानने के लिए कि
रिफ्लेक्शन कहां लैंड होगा (मैं cobalt strike का उपयोग कर रहा हूं और यह dll reflective loader का उपयोग करता है), हमें केवल 2nd stage की परवाह है क्योंकि यही असली
पेलोड है। मैंने इस चरण में कोई ट्रिक्स नहीं जोड़ी, बस एक virtualalloc और एक rwx section
3- अब जब पेलोड स्लीप में जाता है, हम पेलोड को gpu मेमोरी में कॉपी करते हैं, और वास्तविक मेमोरी में पेलोड को साफ कर देते हैं।
4- जब स्लीप पूरी हो जाती है, तो veh एक्सेप्शन (EXCEPTION_ACCESS_VIOLATION) को हैंडल करेगा, मेमोरी अनुमतियों को PAGE_EXECUTE_READWRITE पर फिर से सेट करके, और पेलोड को gpu से वापस अपनी जगह पर रख देगा।
