13

Есть ли способ увидеть содержимое оперативной памяти? От первого байта до последнего. Хотелось бы посмотреть, где в оперативной памяти находится ОС и все запущенные на ней процессы. Это возможно?

2 ответа2

8

В Windows к содержимому физической памяти можно получить доступ через объект \Device\PhysicalMemory в диспетчере объектов. Для этого требуется доступ к системе на уровне ядра, а это значит, что для доступа к этому объекту вам потребуется установить программу, скорее всего, драйвер режима ядра.

В Linux к содержимому физической памяти можно получить прямой доступ в виде двоичных данных, прочитав /dev/mem как root . Смотрите Что такое /dev /mem? и справочную страницу mem(4) для более подробной информации.

Я не уверен, почему вам нужно определить, где операционная система и процессы расположены в физической памяти, хотя ...

7

Вы могли бы использовать отладчик ядра, который позволял бы получать доступ к "сырой" памяти, как SoftICE для Windows. Вы также можете настроить GDB для работы в качестве отладчика для ядра Linux. Если виртуальная машина является опцией, некоторые программы виртуализации поддерживают сохранение состояния машины (включая ОЗУ) на диск, который затем можно проанализировать. Следует отметить, однако, что большинство "современных" операционных систем используют рандомизацию размещения адресного пространства (ASLR). Настоящая карта физической памяти системы специально фрагментирована, чтобы помочь смягчить различные проблемы безопасности и эксплойты (например , переполнение буфера стека/кучи ).

Однако для данной программы, работающей в современной операционной системе, вы можете получить логическую карту памяти для данного процесса / потока - при условии, что у вас есть соответствующие символы отладки и отладчик. Если вам нужен общий вид, если программное / аппаратное обеспечение использует виртуальную память, ситуация становится значительно более сложной. Опять же, хотя, если вы буквально хотите, что только в оперативной памяти, см. Первый абзац.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .