Полный дамп оперативной памяти Python ⇐ Python
-
Anonymous
Полный дамп оперативной памяти Python
Я пытаюсь добавить некоторые функциональные возможности к написанной мной программе Python. Новая функция предназначена для сохранения содержимого оперативной памяти компьютера в двоичный файл на диске. Могу ли я сделать это с помощью Python?
Я провел небольшое исследование различных доступных методов, в основном относящихся к библиотеке ctypes. Используя эту библиотеку, я могу выгрузить адрес переменной в памяти и значение этого адреса памяти, используя такой код:
импортировать типы а = 178 ctypes.cast(id(a),ctypes.py_object).value Насколько я понимаю, это печатает значение «a», ссылаясь на адрес памяти, в которой хранится «a».
Но мне бы хотелось указать начальный и конечный адреса памяти, а затем отправить данные, хранящиеся в этом диапазоне памяти, в виде потока байтов в файл на диске.
Основная цель этой программы — облегчить получение цифровой криминалистической информации из оперативной памяти работающей системы. Учитывая это, начальное и конечное значения всегда будут представлены как:
start = 0 конец = длина (ОЗУ) Любая помощь приветствуется. Я знаю, что Python — не лучший язык для приложений такого типа, но именно он мне наиболее удобен.
Я пробовал:
импортировать типы а = 178 ctypes.cast(id(a),ctypes.py_object).value Который печатает значение переменной «a» из памяти. Это тип данных, которые я хочу вернуть, но я не знаю, как ссылаться на прямой диапазон памяти, учитывая начальный адрес и длину или конечный адрес памяти. Код, подобный представлению того, что я ищу, выглядит следующим образом:
start_address = 0 end_address=17179869184#16Гб памяти ram_content_as_binary = get_binary_value(start_address, end_address) # не обязательно должно быть двоичным представлением данных печать (ram_content_as_binary) Как только я смогу это сделать, я смогу преобразовать код для потоковой передачи данных в файл на диске.
Я пытаюсь добавить некоторые функциональные возможности к написанной мной программе Python. Новая функция предназначена для сохранения содержимого оперативной памяти компьютера в двоичный файл на диске. Могу ли я сделать это с помощью Python?
Я провел небольшое исследование различных доступных методов, в основном относящихся к библиотеке ctypes. Используя эту библиотеку, я могу выгрузить адрес переменной в памяти и значение этого адреса памяти, используя такой код:
импортировать типы а = 178 ctypes.cast(id(a),ctypes.py_object).value Насколько я понимаю, это печатает значение «a», ссылаясь на адрес памяти, в которой хранится «a».
Но мне бы хотелось указать начальный и конечный адреса памяти, а затем отправить данные, хранящиеся в этом диапазоне памяти, в виде потока байтов в файл на диске.
Основная цель этой программы — облегчить получение цифровой криминалистической информации из оперативной памяти работающей системы. Учитывая это, начальное и конечное значения всегда будут представлены как:
start = 0 конец = длина (ОЗУ) Любая помощь приветствуется. Я знаю, что Python — не лучший язык для приложений такого типа, но именно он мне наиболее удобен.
Я пробовал:
импортировать типы а = 178 ctypes.cast(id(a),ctypes.py_object).value Который печатает значение переменной «a» из памяти. Это тип данных, которые я хочу вернуть, но я не знаю, как ссылаться на прямой диапазон памяти, учитывая начальный адрес и длину или конечный адрес памяти. Код, подобный представлению того, что я ищу, выглядит следующим образом:
start_address = 0 end_address=17179869184#16Гб памяти ram_content_as_binary = get_binary_value(start_address, end_address) # не обязательно должно быть двоичным представлением данных печать (ram_content_as_binary) Как только я смогу это сделать, я смогу преобразовать код для потоковой передачи данных в файл на диске.