Как сбросить физическую память в Linux?

22

Как создать дамп физической памяти (ОЗУ) в Linux?

Какое программное обеспечение, если таковое имеется, доступно для этой цели?

Я читал, что не следует писать на локальный диск, а отправлять данные по сети. Кто-нибудь знает особенности здесь? Будет ли Ethernet работать для этой цели, или есть какие-либо команды, которые минимизируют объем кэширования перед отправкой на диск?

WinHex на Windows имеет такую ​​функциональность:

введите описание изображения здесь

Я ищу что-то похожее на Linux.

анонимное
источник

Ответы:

22

Вот страница eHow о том, как сделать дамп памяти Linux

Linux предоставляет два виртуальных устройства для этой цели, ' /dev/mem' и ' /dev/kmem', хотя многие дистрибутивы по умолчанию отключают их по соображениям безопасности. ' /dev/mem' связан с физической системной памятью, тогда как ' /dev/kmem' отображается на все пространство виртуальной памяти, включая любой обмен. Оба устройства работают как обычные файлы и могут использоваться с dd или любым другим инструментом для работы с файлами.

Это приводит к появлению страницы ForensicsWiki, посвященной средствам визуализации памяти с разделом Linux / Unix ,

  1. dd В системах Unix программа dd может использоваться для захвата содержимого физической памяти с использованием файла устройства (например, / dev / mem и / dev / kmem). В последних ядрах Linux / dev / kmem больше не доступен. В еще более новых ядрах / dev / mem есть дополнительные ограничения. И в самой последней версии / dev / mem больше не доступен по умолчанию. На протяжении серии ядра 2.6 была тенденция к сокращению прямого доступа к памяти через файлы псевдоустройств. См., Например, сообщение, сопровождающее этот патч: http://lwn.net/Articles/267427/ . В системах Red Hat (и производных дистрибутивах, таких как CentOS), драйвер сбоя может быть загружен для создания псевдо-устройства для доступа к памяти («modprobe crash»).
  2. Второй взгляд Этот коммерческий продукт для анализа памяти имеет возможность извлекать память из систем Linux, либо локально, либо с удаленной цели через DMA или по сети. Он поставляется с предварительно скомпилированными модулями драйвера физической памяти (PMAD) для сотен ядер из наиболее часто используемых дистрибутивов Linux.
  3. Idetect (Linux)
  4. fmem (Linux)
    fmem - модуль ядра, который создает устройство / dev / fmem, похожее на / dev / mem, но без ограничений. Это устройство (физическое ОЗУ) можно скопировать с помощью dd или другого инструмента. Работает на ядрах Linux 2.6. Под GNU GPL.
  5. Золотая
    рыбка Золотая рыбка - это инструмент для судебной экспертизы Mac OS X, который используется только правоохранительными органами. Его основная цель - предоставить простой в использовании интерфейс для выгрузки оперативной памяти системы целевого компьютера через соединение Firewire. Затем он автоматически извлекает пароль для входа текущего пользователя и любые открытые фрагменты диалога AOL Instant Messenger, которые могут быть доступны. Правоохранительные органы могут связаться с goldfish.ae для загрузки информации.

Смотрите также: Анализ памяти Linux .
Существует также GDB, обычно доступный в большинстве Linux.
Кроме того, вам всегда рекомендуется избегать записи поверх неизвестной памяти - это может привести к повреждению системы.

Nik
источник
1
Кто-нибудь пробовал это в недавней системе Ubuntu?
1
нет / dev / mem или / dev / kmem в моей системе Debian.
Роб
Я только что сделал это на моей CentOS 7.x VM.
Slm
4

Волатильность, кажется, работает хорошо и совместима с Windows и Linux.

С их сайта:

Volatility поддерживает дампы памяти из всех основных 32- и 64-разрядных версий Windows и пакетов обновления, включая XP, 2003 Server, Vista, Server 2008, Server 2008 R2 и Seven. Независимо от того, используется ли дамп памяти в необработанном формате, аварийный дамп Microsoft, файл гибернации или снимок виртуальной машины, Volatility может с ним работать. Теперь мы также поддерживаем дампы памяти Linux в формате raw или LiME и включаем более 35 плагинов для анализа 32- и 64-разрядных ядер Linux версии 2.6.11– 3.5.x и таких дистрибутивов, как Debian, Ubuntu, OpenSuSE, Fedora, CentOS и Mandrake. Мы поддерживаем 38 версий дампов памяти Mac OSX от 10.5 до 10.8.3 Mountain Lion, как 32-, так и 64-битных. Android-телефоны с процессорами ARM также поддерживаются.

Patel95
источник
0

В качестве подтверждения я смог сбросить память моей виртуальной машины CentOS 7.x следующим образом:

$ head /dev/mem | hexdump -C
00000000  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
00000010  53 ff 00 f0 53 ff 00 f0  cc e9 00 f0 53 ff 00 f0  |S...S.......S...|
00000020  a5 fe 00 f0 87 e9 00 f0  53 ff 00 f0 46 e7 00 f0  |........S...F...|
00000030  46 e7 00 f0 46 e7 00 f0  57 ef 00 f0 53 ff 00 f0  |F...F...W...S...|
00000040  22 00 00 c0 4d f8 00 f0  41 f8 00 f0 fe e3 00 f0  |"...M...A.......|
00000050  39 e7 00 f0 59 f8 00 f0  2e e8 00 f0 d4 ef 00 f0  |9...Y...........|
00000060  a4 f0 00 f0 f2 e6 00 f0  6e fe 00 f0 53 ff 00 f0  |........n...S...|
00000070  ed ef 00 f0 53 ff 00 f0  c7 ef 00 f0 ed 57 00 c0  |....S........W..|
00000080  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000100  59 ec 00 f0 3d 00 c0 9f  53 ff 00 f0 ed 69 00 c0  |Y...=...S....i..|
00000110  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000afea0  00 00 00 00 00 00 00 00  aa aa aa 00 aa aa aa 00  |................|
000afeb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
...
...
000b0000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
000c0000  55 aa 40 e9 62 0a 00 00  00 00 00 00 00 00 00 00  |U.@.b...........|
000c0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 49 42  |..............IB|
000c0020  4d 00 9c 80 fc 0f 75 06  e8 4f 01 e9 bc 00 80 fc  |M.....u..O......|

Учитывая, что 55aah происходит в диапазоне c0000h-effffh, вероятно, это заголовок расширения PNP:

Справка: спецификация загрузки BIOS

3.3 Устройства с заголовками расширения PnP

Все устройства IPL с дополнительными ПЗУ должны содержать действительный заголовок дополнительного ПЗУ, который находится между адресами системной памяти C0000h и EFFFFh на границе 2К и начинается с 55AAh. Загрузка устройства может контролироваться только при наличии заголовка расширения PnP. Заголовок расширения, адрес которого находится в заголовке стандартного дополнительного ПЗУ со смещением + 1Ah, содержит важную информацию, используемую для настройки устройства. Он также содержит указатели на код в дополнительном ПЗУ устройства (BCV или BEV), которое BIOS будет вызывать для загрузки с устройства. См. Приложение A для структуры заголовка расширения PnP. Существует два способа загрузки устройства IPL с заголовком расширения PnP. Он должен содержать BCV или BEV.

Ссылки

ОДС
источник