1
mirror of https://github.com/rapid7/metasploit-payloads synced 2025-03-24 18:16:24 +01:00

Land , Removed GetThreadId and replaced with optional CLIENTID argument

This commit is contained in:
dledda-r7 2024-09-20 11:15:19 -04:00
commit a6da6ddac6
No known key found for this signature in database
GPG Key ID: 4D4EC504A1F02FFF

@ -39,7 +39,8 @@ HANDLE create_remote_thread(HANDLE hProcess, SIZE_T sStackSize, LPVOID pvStartAd
BOOL bCreateSuspended; BOOL bCreateSuspended;
DWORD dwThreadId; DWORD dwThreadId;
HANDLE hThread; HANDLE hThread;
CLIENTID ClientId;
if (pdwThreadId == NULL) if (pdwThreadId == NULL)
{ {
pdwThreadId = &dwThreadId; pdwThreadId = &dwThreadId;
@ -74,12 +75,12 @@ HANDLE create_remote_thread(HANDLE hProcess, SIZE_T sStackSize, LPVOID pvStartAd
{ {
dprintf("[REMOTETHREAD] Attempting thread creation with RtlCreateUserThread"); dprintf("[REMOTETHREAD] Attempting thread creation with RtlCreateUserThread");
bCreateSuspended = (dwCreateFlags & CREATE_SUSPENDED) == CREATE_SUSPENDED; bCreateSuspended = (dwCreateFlags & CREATE_SUSPENDED) == CREATE_SUSPENDED;
ntResult = pRtlCreateUserThread(hProcess, NULL, bCreateSuspended, 0, 0, 0, (PTHREAD_START_ROUTINE)pvStartAddress, pvStartParam, &hThread, NULL); ntResult = pRtlCreateUserThread(hProcess, NULL, bCreateSuspended, 0, 0, 0, (PTHREAD_START_ROUTINE)pvStartAddress, pvStartParam, &hThread, &ClientId);
SetLastError(ntResult); SetLastError(ntResult);
if (ntResult == 0 && pdwThreadId) if (ntResult == 0 && pdwThreadId)
{ {
*pdwThreadId = GetThreadId(hThread); *pdwThreadId = PtrToUint(ClientId.UniqueThread);
} }
} }
else else