Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
#1

Доступ к памяти другого процесса - C++

28.09.2011, 15:28. Просмотров 5964. Ответов 20
Метки нет (Все метки)

Требуется получить доступ к памяти других процессов. Для этого, как я полагаю, нужно писать определенный драйвер для доступа к виртуальной памяти, но, честно говоря, не понятно, как его реализовывать. Гугл мне ясного ответа не дал (какие-то общие слова, никакой конкретики, быть может, не так искал). Нет ли у кого ссылок на сайты или статьи соответствующей тематики или названий печатных изданий, где можно вычитать что-нибудь полезное по данному вопросу? Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2011, 15:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Доступ к памяти другого процесса (C++):

Доступ к области памяти из другого класса - C++
Есть класс в котором создаётся область в памяти, как получить из другого класса доступ к этой облпсти в возможностью перезаписи? В примере...

Загрузить процесс из другого процесса - C++
Штурм google ничего не дал. Но я помню что что то было такое в книге Рихтера. Пока ищу книгу и нужную страницу, решил оформить все таки...

Как прочитать данные из потока вывода другого процесса - C++
Как получить то, что выводит командная строка (прочитать выводной поток другого процесса)

Как установить брейкпоинт (int3) на инструкции другого процесса? - C++
Собственно, вопрос в названии темы. Есть процесс name.exe, есть инструкция в этом процессе name.exe+1234 mov ,, нужно прочесть регистр...

как передать строку в адресное пространство другого процесса? - C++
Мне необходимо передать строку другому процессу, из ДЛЛ (Hook)... т.к. длл линкуется к каждому процессу чьи события она перехватывает, то...

Измененить значение в памяти процесса - C++
Привет, есть процесс, я хочу в нем изменить значение в по адресу в памяти, как это можно сделать ? Указатель на адрес имеет такой вид:...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nxnx
Формучанин
362 / 293 / 16
Регистрация: 02.11.2010
Сообщений: 1,234
28.09.2011, 15:44 #2
если под венду то:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
0
DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
28.09.2011, 16:03  [ТС] #3
Немножко не понятно, как определяется разрешение на доступ к памяти. Например, я хочу залезть в кучу какого-нибудь стороннего процесса. Неужели система возьмет и разрешит мне все это дело ни с того ни с сего? Конечно, нет...
0
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,370
28.09.2011, 16:48 #4
Если ты имеешь права - то разрешит. О требуемых правах доступа написано все в тех же статьях.
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
28.09.2011, 17:02 #5
Вот тебе три архива, писал для себя давно, разбирайся. Коряво, но с комментами. КАк получить дамп участка памяти процесса, как прописать нечто в адресном пространстве процесса и как получить привилегии отладчика.
Последний проект был сделан недавно, он более качественный. Там есть крутые ссылки на англоязычный сайт. То есть я так понимаю, если не удаётся просто так взять и получить доступ к памяти стороннего процесса, то привилегии отладчика помогут в этом.

Антивирь будет ругаться на экзешники.
Если чё, спрашивай.
1
DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
28.09.2011, 17:19  [ТС] #6
kravam, огромное спасибо. Увидел ясные примеры использования и все сразу стало на свои места.
0
xDigitechx
-110 / 2 / 1
Регистрация: 13.08.2011
Сообщений: 28
06.02.2012, 10:19 #7
Всегда был рад существованию енного форума :-)
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
25.06.2013, 11:47 #8
вот похожая тема, еще бы тоже самое только под линукс?
0
мажор
0 / 0 / 0
Регистрация: 26.09.2015
Сообщений: 34
08.01.2017, 00:05 #9
А без вин АПИ?
0
Renji
1916 / 1314 / 298
Регистрация: 05.06.2014
Сообщений: 3,757
08.01.2017, 01:22 #10
Цитата Сообщение от мажор Посмотреть сообщение
А без вин АПИ?
А без АПИ не положено, так что система будет запрещать и не пущать.
0
мажор
0 / 0 / 0
Регистрация: 26.09.2015
Сообщений: 34
08.01.2017, 10:15 #11
Без win API,а не всех API.
0
GbaLog-
Любитель чаепитий
2772 / 1294 / 311
Регистрация: 24.08.2014
Сообщений: 4,589
Записей в блоге: 1
Завершенные тесты: 2
08.01.2017, 10:32 #12
Цитата Сообщение от мажор Посмотреть сообщение
Без win API,а не всех API.
WinAPI - "подкласс" API, так что то, что невозможно без WinAPI, невозможно и без API. Так что тут всё верно.
0
Убежденный
Системный программист
Эксперт С++
15550 / 7058 / 1114
Регистрация: 02.05.2013
Сообщений: 11,468
Завершенные тесты: 1
08.01.2017, 11:00 #13
Цитата Сообщение от мажор Посмотреть сообщение
А без вин АПИ?
NtOpenProcess, NtAllocateVirtualMemory, NtReadVirtualMemory, NtWriteVirtualMemory, NtClose
Без Win32 API, как и просили.
0
Evg
Эксперт CАвтор FAQ
17809 / 6019 / 388
Регистрация: 30.03.2009
Сообщений: 16,535
Записей в блоге: 26
08.01.2017, 12:41 #14
Цитата Сообщение от programina Посмотреть сообщение
вот похожая тема, еще бы тоже самое только под линукс?
Данному посту почти 4 года, но если вдруг ещё актуально, то http://man7.org/linux/man-pages/man2/ptrace.2.html
0
мажор
0 / 0 / 0
Регистрация: 26.09.2015
Сообщений: 34
08.01.2017, 22:43 #15
Как получить права отладчика для программы на C?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2017, 22:43
Привет! Вот еще темы с ответами:

Чтение строки из памяти стороннего процесса - C++
Никогда не думал, что будут проблемы с чтением строки из памяти, но они есть :D Пишу так: cout << Proc.Read<PCHAR>(dwAddr) << endl; ...

Поиск строки в памяти запущенного процесса и её изменение - C++
Подскажи пожалуйста, что я делаю не так. Вот мой код. #include "windows.h" #include <iostream> using namespace std; int...

Освобождает ли память процесса менеджер памяти Windows? - C++
Если моя программа допускает кучу memory leaks - ов, то после закрытия процесса программы утерянная (утёкшая) память будет так же...

Доступ к переменной из другого файла - C++
Не подскажете как получить доступ к переменной "a"? // Header.h namespace x1 { /* Объявление функций */ }


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.01.2017, 22:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru