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

Адресация и поиск переменной/функции - C++

Восстановить пароль Регистрация
 
spyeye
31 / 31 / 1
Регистрация: 06.08.2012
Сообщений: 155
05.03.2013, 15:35     Адресация и поиск переменной/функции #1
Здравствуйте!
Возникла такая задача.
Есть какой-то .exe файл (х64).
В иде я нашел переменную и её значение.
Через артмани я нашел адрес этой переменной.
Я читаю её через ReadProcessMemory().
Однако, если перезапустить этот .exe файл, то все адреса меняются и я не могу снова прочитать значение переменной.

---

Какое может быть решение?
Один мой знакомый высказал идею через .dll находить в процессе адрес переменной и там же с ней оперировать(изменять, вызывать и тому подобное).
Однако опять вопрос - а как мне обратиться к этой переменной, не зная точного адреса? (имеется название, точное).

P.S. Работаю в vs 2012.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.03.2013, 15:53     Адресация и поиск переменной/функции #2
Цитата Сообщение от spyeye Посмотреть сообщение
Какое может быть решение?
Искать указатель на эту переменную.
spyeye
31 / 31 / 1
Регистрация: 06.08.2012
Сообщений: 155
05.03.2013, 15:55  [ТС]     Адресация и поиск переменной/функции #3
Цитата Сообщение от kazak Посмотреть сообщение
Искать указатель на эту переменную.
Как искать указатель?

Переменная вида:
C++
1
char buf[] = "...";
Откуда тут возьмется указатель?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.03.2013, 16:05     Адресация и поиск переменной/функции #4
buf фактически будет указателем.
spyeye
31 / 31 / 1
Регистрация: 06.08.2012
Сообщений: 155
05.03.2013, 16:07  [ТС]     Адресация и поиск переменной/функции #5
Цитата Сообщение от kazak Посмотреть сообщение
buf фактически будет указателем.
Ну допустим это указатель. Только я все-равно не понимаю, как к нему обращаться внутри процесса.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.03.2013, 16:23     Адресация и поиск переменной/функции #6
С начала определиться где buf находиться, buf уже будет содержать адрес данных.
spyeye
31 / 31 / 1
Регистрация: 06.08.2012
Сообщений: 155
05.03.2013, 16:25  [ТС]     Адресация и поиск переменной/функции #7
Цитата Сообщение от kazak Посмотреть сообщение
С начала определиться где buf находиться, buf уже будет содержать адрес данных.
хе-хе, мой вопрос как бы и заключается в том, что я не знаю как найти, где находится buf в процессе.

Ида выдает один адрес, при запуске он меняется на какой-то другой.

Собственно как отловить переменную в процессе, зная её имя, но не зная адрес?
WhiteP
605 / 203 / 23
Регистрация: 20.11.2012
Сообщений: 419
05.03.2013, 16:45     Адресация и поиск переменной/функции #8
Цитата Сообщение от spyeye Посмотреть сообщение
Собственно как отловить переменную в процессе, зная её имя, но не зная адрес?
Имя? Программа с отладочными символами чтоль?
Ищи функцию, которая эту память buf выделяет. Если выделяется на стеке, то нужно знать адрес вершины стека в момент захода в функцию и смещение от начала кадра - это и есть адрес. Если память выделяется динамически, то искать функции new, malloc, heapalloc, virtualalloc и т.п. и перехватывать возвращаемый указатель.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 19:19     Адресация и поиск переменной/функции
Еще ссылки по теме:

C++ Поиск значения переменной в текстовом файле на сервере
Изменить значение переменной в функции C++
Передача переменной из функции в функцию C++

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

Или воспользуйтесь поиском по форуму:
spyeye
31 / 31 / 1
Регистрация: 06.08.2012
Сообщений: 155
05.03.2013, 19:19  [ТС]     Адресация и поиск переменной/функции #9
Цитата Сообщение от WhiteP Посмотреть сообщение
Имя? Программа с отладочными символами чтоль?
Именно так. Других вариантов нету?
Yandex
Объявления
05.03.2013, 19:19     Адресация и поиск переменной/функции
Ответ Создать тему
Опции темы

Текущее время: 01:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru