Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по С++ (Переменные в памяти процесса)
 
 автор: EvgenLog   (14.08.2005 в 21:43)   письмо автору
 
 

Насколько я помню, cheops мне говорил, что хорошо разбирается в С++... Поэтому вопрос в большей степени адресован именно ему, но если ещё кто-то отзовётся, буду очень благодарен...

Вопрос:
Все, наверно, знакомы с программой Art Money... Когда-то она мне была очень полезна, но теперь это уже в прошлом, пришло время написать самому что-то подобное, для своих целей.
А целью моей является подключение к процессу и слежка за его памятью, теми переменными, которые в ней гуляют... А именно, нужно получить возможность считывать значение определённой переменной через определённый промежуток времени.
Как найти переменную в памяти я тоже почти разобрался, я так считаю, но на определённом этапе есть загвоздка, с неё и начнём...
Итак, насколько я знаю, чтобы найти в памяти определённую переменную (её значение) нужно: во-первых знать её текущее значение, во-вторых иметь возможность изменить это значение (я думаю, это не всегда обязательно). Затем, если вышеперечисленное возможно, то следует сделать дамп памяти процесса, затем изменить значение искомой переменной и сделать ещё раз дамп памяти. Потом нужно каким-то образом сравнить эти два дампа... И так пока не вычислишь эту самую переменную... Но вот здесь-то и проблема... Чтобы вычислить переменную, нужно ,видимо, проводить какие-то операции с "offset", а я ни как не могу разобраться... Что же нужно, всётаки, чтобы довести дело до конца и вычислить одновременно и адрес переменной и её значение?

   
 
 автор: Boss   (14.08.2005 в 23:00)   письмо автору
 
   для: EvgenLog   (14.08.2005 в 21:43)
 

Вопрос:
Что за Art Money?
Ответ:
>Что же нужно, всётаки, чтобы довести дело до конца и вычислить одновременно >и адрес переменной и её значение?

Получаем адрес переменных(var1,2,3):
int main ()
{
//Определяем 3 переменных и присвоим им значения
int var = 11;
int var2 = 22;
int var3 = 33;
//печатаем адреса этих переменных
cout << $var1 << endl
       << $var2 << endl
       << $var3 <<endl;
//печатаем значение переменной var1
cout << var1;
return 0;
}

Думаю с кодом все понятно......

P.S. Если сказал не то что надо, то извеняйте ...

   
 
 автор: EvgenLog   (14.08.2005 в 23:34)   письмо автору
 
   для: Boss   (14.08.2005 в 23:00)
 

А что за адрес печатается таким образом?

$var1

Это не то что нужно... Нужно сначала значения переменных найти... В программе, а затем уже их печатать...

   
 
 автор: Boss   (14.08.2005 в 23:40)   письмо автору
 
   для: EvgenLog   (14.08.2005 в 23:34)
 

Тьфу.... писал торопился....
Вообще можно получить адрес переменной, используя операцию получения адреса &
замени символ & на $.....

   
 
 автор: cheops   (14.08.2005 в 23:37)   письмо автору
 
   для: EvgenLog   (14.08.2005 в 21:43)
 

Вряд ли смогу помочь, чтобы сейчас влазить мне нужно много времени, а его нет :(((

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования