Форум сайта python.su
13
Есть hex адрес переменной, заданной в C++ программе (работающей), размер - 3 байта.
Вопрос: есть какой-либо способ получить доступ к адресному пространству другого процесса (если надо, то с рут правами) и считать данные? (Слышал можно как-то через /dev/PID/maps)
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
857
DamMerculЭто виртуальное адресное пространство. При каждом запуске программы создаётся новое пространство адресов. То есть программе доступны только эти числа, а эти числа отображаются уже на реальные адреса памяти каким-то неизвестным образом.
Есть hex адрес переменной, заданной в C++ программе (работающей)
DamMerculИз одного процесса в другой процесс нельзя. Находясь за пределами процессов, можно.
есть какой-либо способ получить доступ к адресному пространству другого процесса
DamMerculРут-права - это уровень процессов.
если надо, то с рут правами
Офлайн
13
Как выбраться за пределы процессов, модуль писать? Блин
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
857
DamMerculДа процесс питона даже является процессом. За процессы отвечает ядро операционной системы. В лине после загрузки ядра оно запускает главный процесс и от него порождаются все остальные процессы как дочерние. Так что питон не может выйти за пределы процессов, так как он сам является процессом. Естественно, никакого доступа к реальной памяти он не имеет и точно так же пользуется виртуальной памятью, которую ему предоставило ядро операционной системы.
Как выбраться за пределы процессов
Отредактировано py.user.next (Окт. 21, 2018 02:57:36)
Офлайн
1
Офлайн