Windows Win32Memóriakernel32.dll
ReadProcessMemory
Lê memória do espaço de endereçamento de outro processo.
Descrição
Equivalente funcional ao `process_vm_readv` do Linux — base de depuradores e ferramentas de análise de memória.
Header:
memoryapi.hDLL: kernel32.dllNative API: NtReadVirtualMemoryAssinatura
BOOL ReadProcessMemory(
HANDLE hProcess,
LPCVOID lpBaseAddress,
LPVOID lpBuffer,
SIZE_T nSize,
SIZE_T * lpNumberOfBytesRead
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| hProcess | HANDLE | Handle do processo alvo, com direito PROCESS_VM_READ. |
| lpBaseAddress | LPCVOID | Endereço inicial a ler, no espaço do processo alvo. |
| lpBuffer | LPVOID | Buffer local que recebe os dados. |
| nSize | SIZE_T | Número de bytes a ler. |
| lpNumberOfBytesRead | SIZE_T * | Se não for NULL, recebe o número de bytes efetivamente lidos. |
Valor de retorno
Diferente de zero em sucesso; 0 em erro (consulte GetLastError).
Códigos de erro (GetLastError)
- ERROR_ACCESS_DENIED(5)
- Acesso negado.
- ERROR_PARTIAL_COPY(299)
- Apenas parte de uma solicitação de leitura/gravação de memória de processo foi concluída.
- ERROR_NOACCESS(998)
- Tentativa inválida de acesso a memória.
Relacionadas
Equivalente em Linux x86_64