Как я могу прочитать память другого процесса в Python в Windows?

Я пытаюсь написать сценарий Python, который читает серию мест памяти определенного процесса.

Как я могу это сделать в Python?

Я буду использовать Windows, если это имеет значение. У меня есть процессы PID, которые я пытаюсь читать / редактировать.

Должен ли я вернуться к вызову ReadProcessMemory () и использованию ctypes?

3 Solutions collect form web for “Как я могу прочитать память другого процесса в Python в Windows?”

Я не видел ничего в стандартных библиотеках python, но я нашел пример с использованием ctypes, как вы предлагали на другом сайте:

from ctypes import * from ctypes.wintypes import * OpenProcess = windll.kernel32.OpenProcess ReadProcessMemory = windll.kernel32.ReadProcessMemory CloseHandle = windll.kernel32.CloseHandle PROCESS_ALL_ACCESS = 0x1F0FFF pid = 4044 # I assume you have this from somewhere. address = 0x1000000 # Likewise; for illustration I'll get the .exe header. buffer = c_char_p("The data goes here") bufferSize = len(buffer.value) bytesRead = c_ulong(0) processHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid) if ReadProcessMemory(processHandle, address, buffer, bufferSize, byref(bytesRead)): print "Success:", buffer else: print "Failed." CloseHandle(processHandle) 

Да, ctypes (или win32all ) и ReadProcessMemory – это именно то, что нужно. Вы искали что-то дополнительное / другое? Что, в частности?

См. http://www.windowsreference.com/windows-xp/dos-commands-and-equivalent-linux-commands/

Вы можете использовать tasklist.exe для перечисления процессов, а затем очистить результаты. Затем используйте taskkill.exe (или tstskill.exe), чтобы закончить их.

Но ctypes и kernal32, вероятно, безопаснее.

  • Автоответчик Google App Engine.
  • Как проверить, имеет ли строка одну из строк в списке?
  • Использование профилирующей памяти в App Engine
  • Ошибка пропуска при установке упаковки с использованием PIP
  • что такое быстрый способ удалить все элементы из списка, которые не удовлетворяют ограничениям?
  • sys.argv , IndexError: индекс индекса вне диапазона
  • Как связать постоянный параметр в Python?
  • Использование memcache.add () вместо set ()
  • Python - лучший язык программирования в мире.