Решено: Запись/Чтение памяти другого процесса

Модератор: Модераторы разделов

theuseronline
Сообщения: 3

Решено: Запись/Чтение памяти другого процесса

Сообщение theuseronline »

Добрый день, уважаемые форумчане.
Мне нужно реализовать на С программу, которая могла бы читать/писать в память любого другого процесса в системе для Win/Linux при условии, что права доступа имеются.
В программировании я новичок, но под Win мне удалось быстро решить эту задачу с помощью следующих АПИ - ReadProcessMemory/WriteProcessMemory/VirtualQuery.
Как подобное реализовать под Linux?

Заранее спасибо.
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: Решено: Запись/Чтение памяти другого процесса

Сообщение d_n_k »

все сказанное есть имхо...
Спасибо сказали:
theuseronline
Сообщения: 3

Re: Решено: Запись/Чтение памяти другого процесса

Сообщение theuseronline »

d_n_k писал(а):
13.06.2007 19:05
http://fscked.org/writings/SHM/shm.html


Как я понял, в статье идет речь о разделяемой памяти. Но мне нужно читать ВСЮ память процесса, т.е. другой процесс не знает о том что я буду читать/писать даные из его адресного пространства. Поправьте меня, если я не прав


Я где-то краем уха слышал, что в юникс системах нельзя влазить в память процесса, без его согласия, но я не думаю, что такая развитая система, как линукс, избавлена столь удобного механизма
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: Решено: Запись/Чтение памяти другого процесса

Сообщение v04bvs »

/proc/[pid]/mem
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Решено: Запись/Чтение памяти другого процесса

Сообщение Uncle_Theodore »

v04bvs писал(а):
13.06.2007 20:38
/proc/[pid]/mem

Ну, положим, в /proc/pid/mem много не прочитать... :)
А вот в /proc/pid/maps и в /proc/pid/smaps можно найти адреса используемой памяти.
Далее, можно почитать пятнадцатую главу вот этой книги http://lwn.net/Kernel/LDD3/
или посмотреть сырцы какой-нибудь программы, DUMP, например.

Вообще-то, POSIX запрещает процессам лазить в память друг другу. Есть стандартные механизмы, которыми и следует пользоваться. Но в принципе, все возможно... ;)
Спасибо сказали:
theuseronline
Сообщения: 3

Re: Решено: Запись/Чтение памяти другого процесса

Сообщение theuseronline »

Спасибо всем за ответы. Тему можно считать исчерпанной - заказчику софтины хватило ума отправить линукс на помойку.
Спасибо сказали: