1- 首先,我们需要设置并初始化一些结构体 / 并运行我们的 ve 处理器。
2- 第二,我们运行 stageless(无阶段)载荷,我们必须使用 stageless,以便知道反射会落在哪里
(我用的是 cobalt strike,它使用 dll 反射加载器),我们只关心 2nd stage,因为那才是真正的
载荷。此步骤我没有添加任何技巧,只是一个 virtualalloc 和一个 rwx 段。
3- 现在,当载荷进入睡眠时,我们把载荷复制到 GPU 内存中,并清除真实内存中的载荷。
4- 当睡眠结束时,veh 会通过重新设置内存权限为 PAGE_EXECUTE_READWRITE 来处理异常(EXCEPTION_ACCESS_VIOLATION),并将载荷从 GPU 放回原位。
