Чи є спосіб побачити вміст оперативної пам'яті? Від першого байта до останнього. Я хотів би побачити, де в оперативній пам’яті знаходяться ОС та всі процеси, що працюють на ній. Чи можливо це?
Чи є спосіб побачити вміст оперативної пам'яті? Від першого байта до останнього. Я хотів би побачити, де в оперативній пам’яті знаходяться ОС та всі процеси, що працюють на ній. Чи можливо це?
Відповіді:
Ви можете використовувати налагоджувач ядра, який дозволив би отримати "необроблений" доступ до пам'яті, як SoftICE для Windows . Ви також можете налаштувати GDB як відладчик для ядра Linux . Якщо віртуальна машина є опцією, деяке програмне забезпечення для віртуалізації підтримує збереження стану машини (включаючи оперативну пам’ять) на диску, який потім може бути проаналізований далі . Слід зазначити, що більшість "сучасних" операційних систем використовують рандомізацію макетів адресного простору (ASLR). Справжня карта фізичної пам'яті системи цілеспрямовано фрагментована, щоб допомогти пом'якшити різні проблеми безпеки та використання (тобто переповнення буфера стека / купи ).
Для даної програми, що працює в сучасній операційній системі, ви можете отримати логічну карту пам'яті для заданого процесу / потоку - доки у вас є відповідні символи налагодження та відладчик. Якщо ви хочете загального перегляду, якщо програмне забезпечення / обладнання використовує віртуальну пам'ять , ситуація стає значно складнішою. Знову ж таки, якщо ви буквально хочете того, що просто на оперативній пам’яті, дивіться перший абзац.
У Windows вміст фізичної пам'яті можна отримати через \Device\PhysicalMemory
об’єкт у Менеджері об'єктів . Для цього потрібен доступ до системи на рівні ядра, а це означає, що вам потрібно буде встановити програму, швидше за все, драйвер режиму ядра, щоб отримати доступ до цього об’єкта.
В Linux до вмісту фізичної пам'яті можна отримати прямий доступ як бінарні дані, прочитавши /dev/mem
як root
. Див. Що таке / dev / mem? і mem(4)
довідкову сторінку для отримання більш детальної інформації.
Я не впевнений, чому вам потрібно визначити, де операційна система та процеси знаходяться у фізичній пам'яті, хоча ...
\DevicePhysicalMemory
об'єкт не можна відкрити з користувальницького режиму. RAMmap та більшість інших інструментів sysinternals включають драйвер режиму ядра, щоб виконати цю частину своєї роботи.