Как прочитать адрес памяти по размеру оперативной памяти в Python - PullRequest
0 голосов
/ 11 мая 2018

Я хочу прочитать регистр из / dev / mem, а вот пример кода

import os, sys
fd = os.open("/dev/mem",os.O_RDWR)

#0xFED01004 = 4275048452
os.lseek(fd, 4275048452, os.SEEK_SET)

ret = os.read(fd,2)
print ret

os.close(fd)
print "close"

Но мой размер оперативной памяти составляет 2 ГБ (0x7FFFFFFF), и это меньше, чем 4275048452. После выполнения этого кода будет получена ошибка неверного адреса.

Обычно я использую инструмент memhack (напишите в c), чтобы выполнить эту работу, он использует nmap для преобразования физического адреса в виртуальный адрес в пространстве пользователя, чтобы инструмент мог правильно прочитать 0xFED01004. Но теперь я хочу использовать Python для этой работы.

Может ли Python добиться этого?

Если я добавлю RAM к 4 ГБ, тогда этот код работает, но это не то, что я хочу.

...