Описание тега readprocessmemory

ReadProcessMemory - это функция Windows API, которая может считывать память внешнего процесса в локальный буфер. Используйте этот тег, если ваш вопрос касается ошибок при использовании этой функции или ее общего использования.

ReadProcessMemory() - это часто используемая функция Windows API при взаимодействии с памятью другого процесса, запущенного в той же системе.

BOOL ReadProcessMemory(
  HANDLE  hProcess,
  LPCVOID lpBaseAddress,
  LPVOID  lpBuffer,
  SIZE_T  nSize,
  SIZE_T  *lpNumberOfBytesRead
);

Аргументы функции

  • hProcess - это дескриптор целевого процесса, обычно возвращаемое значение из вызова OpenProcess()

  • lpBaseAddress - это указатель на адрес, с которого вы хотите читать

  • lpBuffer - это указатель на ваш локальный буфер, в котором хранится считываемая память.

  • nSize - сколько байтов вы хотите прочитать

  • lpNumberOfBytesRead - указатель на SIZE_T, который будет хранить количество байтов, которые функция успешно прочитала.

Возвращаемое значение

  • Если функция завершается успешно, возвращается ненулевое значение, в случае сбоя возвращается ноль.

Замечания

  • nSize должен быть того же размера, что и буфер, на который указывает lpBuffer.

  • lpNumberOfBytesRead является необязательным, вы можете передать ноль, но эта выходная переменная хороша для проверки ошибок

  • Запустите свою программу от имени администратора, чтобы убедиться, что у вас есть разрешения

  • Ваш дескриптор процесса должен иметь необходимые права доступа к процессу, в данном случае PROCESS_VM_READ

  • Используйте возвращаемое значение lpNumberofBytesRead и GetLastError(), чтобы помочь отладить ваши проблемы.