|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.03.2011, 23:27 | #1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
C++/Абсолютный адрес регистра Ebp
Возможно как-то средствами языка получить абсолютный адрес регистра ebp?
register DWORD *Abs_Ebp asm ("ebp"); // Такая запись не совсем у меня работает в Visual Studio, походу только на gcc. пс. Вообще такую запись используют чтобы записать в регистр что-то... Ну раз можно записать значит можно и извлечь. Поэтому я попытался сделать что вроде такого, но функция мне возвращает полный бред! Может это конечно, совсем не правильно то что я написал ниже, я просто никогда не сталкивался с таким, поэтому пытаюсь лопатить все возможные варианты. Код:
Последний раз редактировалось coNsept; 29.03.2011 в 03:45. |
29.03.2011, 04:10 | #2 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Проблема решена, я немного не правильно думал, а точнее даже не знал что регистр ebp не отдает так напрямую свой адрес. Нужно для начала залезть
в stack'овый сегмент и только тогда получать адрес. Вообщем может кому пригодиться. Код:
|
29.03.2011, 04:45 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
мдя, начнем с того что ebp это считается указателем на локальные переменные, а указатель стека это esp.
во вторых, в сегмент стека залазить не надо, так как все сегменты имеют единое адресное пространство(точнее единую настройку в нем) достаточно было Код:
изврат однако...прокоментирую самое не то Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 29.03.2011 в 04:55. |
29.03.2011, 08:21 | #4 | |||
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
А вот и нет, просто mov eax, ebp не возвращает адрес а какой-то бред.
Я тему не зря создал, потому я вчера так пробовал. Цитата:
Цитата:
Цитата:
Последний раз редактировалось coNsept; 29.03.2011 в 08:45. |
|||
29.03.2011, 09:48 | #5 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
просто не забывайте что в стеке хранятся и адреса возвратов и указатели на строки, да и все это хранится выше адреса который вернулся от mov eax,ebp Цитата:
в Делфи при старте проги указатель стека находится на 0x001FFF00 Цитата:
стек не обязан быть строго в одном месте у программ. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||||
29.03.2011, 12:55 | #6 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Пепел Феникса большое спасибо, уяснил для себя не понятные мне моменты.
|
29.03.2011, 12:56 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
всегда пожалуйста
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Содержимое регистра AL | Cpluser | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 21.01.2011 06:14 |
Абсолютный новичек. Выбор книги и среды программирования. | Absolutenewbie | Помощь студентам | 3 | 16.09.2010 04:00 |
WebBrowser Абсолютный и относительный адрес | nikmay | Общие вопросы Delphi | 1 | 01.10.2009 22:41 |
как узнать ip адрес зная mac адрес | Roman | Работа с сетью в Delphi | 9 | 25.06.2007 12:39 |
Запись регистра | xak2 | Общие вопросы Delphi | 4 | 07.05.2007 22:18 |