|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.03.2011, 21:35 | #1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Адресация к членам класса/структур
Доброго времени суток Уважаемые специалисты. Есть такой вопросик, как можно найти реальный адрес переменной, например как в примере кода LOCAL.1? MOV DWORD PTR SS:[EBP-4],ECX
То есть я правильно понимаю, отняв от указателя 4 и перейти по адресу в дампе, развернув адрес мы и получим реальной адрес нашей переменной так? Если так, какие методы еще существуют? Код:
Последний раз редактировалось coNsept; 08.03.2011 в 21:39. |
09.03.2011, 06:27 | #2 | |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Цитата:
Код:
|
|
09.03.2011, 13:28 | #3 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
Вопрос с первым ответом поражают своей жестокостью проявляющейся в наличии адресов в ВП и опкодов инструкций
В процедуре из вопроса происходит сравнение двух значений в неких структурах, адреса которых подаются в регистре есх и в аргументе функции в стеке. В обоих случаях из структур берутся значения двордов по смещению 08h от начала каждой структуры, значения эти и сравниваются. [Локал.1] это похоже на какой то плуг к олли, который посчитал что тут локальная переменная, когда здесь просто вершина стека очень хитро адресуется через ebp, а переменных нет вообще. Остальное по вопросу не понял
Нет, ну правда..
|
09.03.2011, 14:44 | #4 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Вообщем желание удовлетворено, теперь картина стала яснее, спасибо вам ребят
|
09.03.2011, 15:39 | #5 | |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
Цитата:
Код:
т.е. адрес right будет ECX+8, а само значение [ECX+8] что такое класс - это чисто высокоуровневое понятие, де-факто это та же структура. От структуры класс отличается только тем что в ней есть private-поля и protected-поля и защита доступа к ним реализуется чисто за счёт того что на этапе компиляции при попытке доступа к private-полю или protected-полю мы получим ошибку, на уровне ассемблера защита чисто формальная . Функция-член (метод) класса это такое же поле только поле содержит адрес искомой функции. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Адресация многомерных массивов | Valter | Общие вопросы C/C++ | 6 | 17.12.2010 12:59 |
mpi и адресация переменных | SkrudjMakdak | Общие вопросы C/C++ | 0 | 26.04.2010 16:53 |
адресация в формулах | andrewx | Microsoft Office Excel | 2 | 29.06.2009 17:44 |
LPT-порт адресация #378 | Dj_smart | Компьютерное железо | 0 | 08.06.2009 15:53 |
StringGrid:=адресация | Nemesisking | Компоненты Delphi | 12 | 02.03.2007 02:20 |