Как вы читаете прямо из физической памяти?
В C или C ++ (Windows), как вы читаете RAM, давая физический (не виртуальный) адрес? Это означает, что не нужно проходить через систему виртуальной памяти (таблицы MMU) и быть специфичным для одного процесса.
Я уже знаю APIReadProcessMemory
, который читает из оперативной памяти (используется большинством тренеров), но это только для определенного процесса.
Я искал на MSDN и обнаружил, чтоDevice \ PhysicalMemory кажется, дает такую возможность, но я не нашел практического примера, и эта функция, кажется, была отключена пакетами обновления Windows (чтобы исправить некоторые уязвимости).
Я знаю, что это можно сделать, потому что WinHex делает это (если вы выбираете «tools»> «open ram»> «физической памяти»). Затем он будет отображать содержимое оперативной памяти от 0x00000000 до your_ram_size, как при открытии традиционного файла. Это требует прав администратора, но нет драйвера для установки (что означает, что WinHex делает это из пользовательского режима).
РЕДАКТИРОВАТЬ: добавлена информация о ОС.