|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.08.2014, 16:56 | #1 |
Пользователь
Регистрация: 31.07.2014
Сообщений: 48
|
Адресация в C++, изменение адреса другой программы
Здравствуйте.
Сразу к делу. Есть программа #1: Код:
Код:
1) Почему когда я запускаю программу #1 два или более раз, адрес переменной zeta_prime всегда одинаков у всех трех экземпляров? Подозреваю что потому, что адреса в памяти относительны, только не пойму относительно чего и как они выстраиваются. 2) Запускаю программу #1, там у переменной zeta_prime адрес памяти такой 0x29feb0, затем запускаю программу #2 и создаю указатель на этот самый адрес, после пытаюсь из программы #2 сменить значение, которое хранит этот адрес. Но, не получается. Подозреваю что опять-таки потому, то адреса относительны.(отсылка к вопросу 1) 3) Как реализовать то, что я хотел в вопросе 2 и что бы это работало? Заранее спасибо за ответы/разъяснения. |
26.08.2014, 19:22 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
1) Процессы грузятся на разное место в памяти
2) У каждого процесса свое адресное пространство - т.е. адрес 0х1234 в каждом процессе будет иметь свои данные. 3) Используя WriteProcessMemory() |
26.08.2014, 19:26 | #3 | |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
1 на сколько я знаю адреса абсолютны. А вот по чему адреса всегда одинаковы сам бы хотел знать.
Цитата:
|
|
26.08.2014, 19:38 | #4 | |
Пользователь
Регистрация: 31.07.2014
Сообщений: 48
|
Цитата:
2) Как узнать адресное пространство текущего процесса? |
|
26.08.2014, 20:06 | #5 |
Форумчанин
Регистрация: 14.12.2012
Сообщений: 668
|
Можно почитать "Windows via c++" Рихтера, для формирования общего представления.
Для межпроцессового общения ОС предоставляет различные механизмы. Можно воспользоваться библиотеками, например этой http://www.boost.org/doc/libs/1_56_0...erprocess.html |
26.08.2014, 20:09 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
WriteProcessMemory принимает хендл процесса. А далее уже относительные координаты.
I'm learning to live...
|
|
26.08.2014, 20:26 | #7 |
Пользователь
Регистрация: 31.07.2014
Сообщений: 48
|
|
26.08.2014, 20:35 | #8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
функцию вам назвали.
Цитата:
ибо компилятор не мудрит, а по умолчанию базы обычно одни и те же. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
26.08.2014, 21:19 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Он относительный. Относительно процесса.
I'm learning to live...
|
|
26.08.2014, 21:55 | #10 |
Пользователь
Регистрация: 31.07.2014
Сообщений: 48
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прочитать значение адреса из памяти другой программы | Xo66um | Общие вопросы Delphi | 3 | 23.09.2013 16:27 |
из адреса сайта взять id и подставить в код этой же страницы к другой ссылке | ellada1 | Помощь студентам | 0 | 23.06.2012 12:21 |
Изменение адреса в iframe | Lohmatiyy | JavaScript, Ajax | 1 | 03.06.2012 03:25 |
изменение ip адреса | jeki0 | Работа с сетью в Delphi | 3 | 25.12.2011 22:21 |
Конфликт ip-адреса с другой системой в сети. Что это? | spamer | Свободное общение | 4 | 04.10.2009 09:53 |