Я использую ReadProcessMemory
для чтения памяти процесса.Кажется, что когда я читаю через конец модуля, остальные байты не читаются успешно.Я также получаю следующую ошибку ядра:
299: Only part of a ReadProcessMemory or WriteProcessMemory request was completed.
Если я перечислю все модули с EnumProcessModules
, ни один из них не будет содержать адрес, с которого я пытаюсь прочитать, но Cheat Engine
может показать все содержимое памяти просто отлично.Cheat Engine
говорит, что размер модуля равен 0xE000
, и это именно то количество байтов, которое я могу прочитать до его остановки, и помещает только 0x00
байтов в буфер, который является неправильным и не представляет фактическое содержимое памяти.
Не подходит ли следующий код для чтения через границы модуля (даже если они смежные)?
static Memory getOutputMemory(Pointer openedProcess, long baseAddress, int length)
{
val outputMemory = new Memory(length);
val intByReference = new IntByReference();
if (!MY_KERNEL_32.ReadProcessMemory(openedProcess, baseAddress,
outputMemory, (int) outputMemory.size(), intByReference))
{
checkForKernelError();
}
return outputMemory;
}