Как можно прочитать память другого процесса? Есть программа снимающая показания с оборудования, написана на Delphi.
Нужно из нее достать текущие значения.
Как в python получить доступ к памяти программы и найти там нужные адреса?

21 Авг 2019 в 06:24
189 +1
0
Ответы
1

Для доступа к памяти другого процесса в Python можно использовать библиотеку pywin32 (для Windows) или ptrace (для Linux).

Прежде чем пытаться получить доступ к памяти другого процесса, необходимо убедиться, что у вас есть права на чтение памяти этого процесса (например, права администратора).

Вот пример кода на Python с использованием pywin32, который позволяет получить доступ к памяти другого процесса и прочитать значения из нее:

import win32api
# Получение дескриптора процесса
handle = win32api.OpenProcess(win32con.PROCESS_VM_READ, False, process_id)
# Адрес в памяти для чтения (можно найти в отладчике)
address = 0x12345678
# Чтение данных из памяти процесса
buffer = win32api.ReadProcessMemory(handle, address, 4, None)
# Преобразование буфера в число
value = int.from_bytes(buffer, byteorder='little')
print(value)
# Закрытие дескриптора процесса
win32api.CloseHandle(handle)

Если вы используете Linux, то вам необходимо использовать библиотеку ptrace. Помимо этого, для поиска адресов в памяти программы можно использовать отладчик (например, gdb).

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

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир