4

Я знаю, что это неопределенный вопрос. Пожалуйста, примите мои извинения, но я пытаюсь получить ответ на этот вопрос.

Я хотел знать, есть ли способ получения текущих данных из оперативной памяти? Например:- У меня запущено приложение In-Memory, и я хотел узнать, какой набор данных он содержит. Любые указатели на это были бы отличной помощью.

Заранее спасибо.

5 ответов5

2

Установите компьютер в режим гибернации и загрузите его с помощью livecd или liveusb. На самом деле pagefile.sys и hiberfil.sys созданы из страниц 4k и будут содержать память, используемую вашими приложениями и окнами. Вы можете посмотреть как на бинволк, так и на волатильность. Я не могу сказать вам, что и где, и почему. Это всегда казалось очень случайным. Я могу найти только те кусочки памяти, которые мне нужны, поместив что-то вроде longuniquestring в память программы (но я уверен, что это не правильный путь). В качестве альтернативы вы можете просто прикрепить отладчик к вашей программе (ida), но я использовал только gdb. Ищите несколько гидов по иде. Надеюсь, поможет.

1

В современных операционных системах доступ к ОЗУ разделен между процессами. Поэтому вы не можете создать простое приложение для просмотра данных другой запущенной программы. Для этого вам придется программировать в режиме ядра или использовать функции отладки конкретной операционной системы.

1

Вы пометили Windows, да, это возможно (по крайней мере, в общем случае пользователя на своем компьютере с правами администратора).

Множество игровых чит-движков (я не буду ссылаться ни на один, так как я не уверен на 100%, какие из них безопасны, но я использовал один для исследований) позволит вам искать в памяти запущенного процесса заданное значение или просматривать через это. Затем эти значения можно изменить или «заблокировать», что, я думаю, просто делается, если программа многократно записывает необходимое значение очень быстро, чтобы отменить любые изменения.

0

В старых Windows раньше программа могла читать, копировать или искать в ОЗУ (возможно, исключая специальные ядра, помеченные как "секретные" области).

Однажды я использовал такую программу в WinXP (возможно, даже более старую), чтобы найти часы работы, которые были почти потеряны при сбое программы перед сохранением на диск. Был в состоянии искать через оперативную память, найти неписаные данные, все еще ожидающие там, скопировать их и пообещать ВСЕГДА СОХРАНИТЬ, ЧТОБЫ ДИСКАТЬ ЧАСТО В будущем.

Я не уверен в текущих версиях Windows, я думаю, что это как-то возможно, особенно если не смотреть в защищенный / защищенный ram, если вы суперпользователь / root. Там все еще должна быть программа, доступная для поиска оперативной памяти, где-то.


[FYI, просто прочитайте об опрятной функции linux в /dev/mem которая, кажется, является прямой ссылкой на легко читаемый ram, но, похоже, это не то, на что она похожа; не очень легко ищет слова / строки, и приводит к тому, что записи в журнале выглядят как "` Строки программы пытались получить доступ к / dev / mem между 100000-> 101000. "]

0

Вы используете отладчик, как в Microsoft Visual Studio. Вы можете присоединиться к процессу и просмотреть его память, какие потоки он выполняет, и инструкции по сборке, которые они выполняют.

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