Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ProcAddress [D7, WinXP]


ASSERT ©   (2007-07-14 14:47:00) 

вот GetProcAddress из библиотеки берет адрес процедуры, например
t:procedure .........

@t:=GetProcAddress(...)
а как мне можно задать адрес этой проц-ры, числом напримет так:
@t:=3434456656;

пожалййста помогите.


Инс   (2007-07-16 11:18:00) [1]


> Игорь Шевченко ©   (16.07.07 11:05) [5]


Так ведь Однокамушкин [2] уже ответил! :)


Игорь Шевченко   (2007-07-16 11:05:00) [2]


> а как мне можно задать адрес этой проц-ры, числом напримет
> так:
> @t:=3434456656;


@t:=Pointer(3434456656);


Инс   (2007-07-15 00:18:00) [3]

Да, еще. А если на другой машине стоит другая версия этой библиотеки, то вообще ничего работать не будет.


Инс   (2007-07-15 00:15:00) [4]


> [2] Однокамушкин   (14.07.07 21:51)


Зря. Нужно было действительно дождаться ответа. Насколько я понял, автор таким трюком хочет выполнить какую-то неэкспортируемую функцию, смещение от начала файла которой он где-то подглядел. А для этого нужно не забывать, что когда модуль будет загружен в адресное пространство процесса, к нему (смещению) нужно будет еще добавить значение, по которому загружена сама библиотека. А это значение возвращает GetModuleHandle. Если же автор подглядел адрес функции уже загруженной DLL, то полагаться на него нельзя, ибо в другой раз в общем случае библиотека может быть загружена по другому адресу.
Хотя возможно автору нужно совсем другое...


Однокамушкин   (2007-07-14 21:51:00) [5]

@t:=Pointer(3434456656);

> Инс ©   (14.07.07 14:49) [1]
> А зачем?

+1


Инс   (2007-07-14 14:49:00) [6]

А зачем?


Наверх

Титульная страница Поиск, карта сайта Написать письмо