Добрый день, уважаемые форумчане.
Мне нужно реализовать на С программу, которая могла бы читать/писать в память любого другого процесса в системе для Win/Linux при условии, что права доступа имеются.
В программировании я новичок, но под Win мне удалось быстро решить эту задачу с помощью следующих АПИ - ReadProcessMemory/WriteProcessMemory/VirtualQuery.
Как подобное реализовать под Linux?
Заранее спасибо.
Решено: Запись/Чтение памяти другого процесса
Модератор: Модераторы разделов
-
d_n_k
- Сообщения: 636
- ОС: Gentoo GNU/Linux
Re: Решено: Запись/Чтение памяти другого процесса
все сказанное есть имхо...
-
theuseronline
- Сообщения: 3
Re: Решено: Запись/Чтение памяти другого процесса
Как я понял, в статье идет речь о разделяемой памяти. Но мне нужно читать ВСЮ память процесса, т.е. другой процесс не знает о том что я буду читать/писать даные из его адресного пространства. Поправьте меня, если я не прав
Я где-то краем уха слышал, что в юникс системах нельзя влазить в память процесса, без его согласия, но я не думаю, что такая развитая система, как линукс, избавлена столь удобного механизма
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Решено: Запись/Чтение памяти другого процесса
/proc/[pid]/mem
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: Решено: Запись/Чтение памяти другого процесса
Ну, положим, в /proc/pid/mem много не прочитать...
А вот в /proc/pid/maps и в /proc/pid/smaps можно найти адреса используемой памяти.
Далее, можно почитать пятнадцатую главу вот этой книги http://lwn.net/Kernel/LDD3/
или посмотреть сырцы какой-нибудь программы, DUMP, например.
Вообще-то, POSIX запрещает процессам лазить в память друг другу. Есть стандартные механизмы, которыми и следует пользоваться. Но в принципе, все возможно...
-
theuseronline
- Сообщения: 3
Re: Решено: Запись/Чтение памяти другого процесса
Спасибо всем за ответы. Тему можно считать исчерпанной - заказчику софтины хватило ума отправить линукс на помойку.