Voltar à lista
Windows Win32Processos & threadskernel32.dll

CreateRemoteThread

Cria uma nova thread executando dentro do espaço de endereçamento de outro processo.

Descrição

Não tem equivalente direto no Linux — permite injetar execução em outro processo, o que a torna tanto uma ferramenta legítima (injeção de DLL para instrumentação/hooking) quanto uma técnica clássica de malware/injeção de código, amplamente monitorada por EDR/antivírus.

Header: processthreadsapi.hDLL: kernel32.dllNative API: NtCreateThreadEx

Assinatura

HANDLE CreateRemoteThread(
    HANDLE hProcess,
    LPSECURITY_ATTRIBUTES lpThreadAttributes,
    SIZE_T dwStackSize,
    LPTHREAD_START_ROUTINE lpStartAddress,
    LPVOID lpParameter,
    DWORD dwCreationFlags,
    LPDWORD lpThreadId
);

Parâmetros

ParâmetroTipoDescrição
hProcessHANDLEHandle do processo alvo, com direitos suficientes para criar threads e alocar/escrever memória nele.
lpThreadAttributesLPSECURITY_ATTRIBUTESAtributos de segurança, ou NULL.
dwStackSizeSIZE_TTamanho inicial da pilha, ou 0 para o padrão.
lpStartAddressLPTHREAD_START_ROUTINEEndereço da função inicial, válido no espaço de endereçamento do processo alvo.
lpParameterLPVOIDArgumento único passado à função da thread.
dwCreationFlagsDWORD0 ou CREATE_SUSPENDED.
lpThreadIdLPDWORDSe não for NULL, recebe o ID da nova thread.

Valor de retorno

Um handle para a nova thread remota em sucesso; NULL em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_ACCESS_DENIED(5)
Acesso negado.
ERROR_INVALID_HANDLE(6)
O identificador (handle) informado é inválido.

Relacionadas