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

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

Раздел импорта


GrayFace ©   (2005-07-29 02:37:00) 

Такая задача: я хочу добавить в редактор карт Heroes 3 WOG монстров из WOG (их нельзя ставить в замки). Я нашел место, куда вставить свой код и хочу поставить туда вызов функции своей библиотеки.
Я добавил ее в раздел импорта, но не знаю, по какому адресу будет находиться ссылка на нее.

А заодно, близкий вопрос - зачем в Delphi для каждой импортируемой функции создаются маленькие заглушки с кодом call [$aabbccdd]? Почему этот код просто не всавляется в место вызова.


GrayFace   (2005-07-31 03:47:00) [1]

Я хочу добавить в одно место определенный код. Для этого я решил заменить там одну команду на вызов процедуры из моей dll. (процедура будет начинаться с замещаемой комманды)

Digitman ©   (30.07.05 14:17) [2]
каого вообще ляда ты полез править IAT вручную ?!

Ну, не совсем вручную - использовал LordPE.

PAVIA ©   (30.07.05 15:51) [4]
> Такая задача: я хочу добавить в редактор карт Heroes 3 WOG
> монстров из WOG (их нельзя ставить в замки).

Как, это связано со всем остальным не представляю.


Чтобы было ясно, что я не крякерством занимаюсь.


alpet   (2005-07-30 18:02:00) [2]

GrayFace ©   (29.07.05 02:37)
1. Какой толк от того, что разделе импорта exe-файла редактора вдруг обьявится твоя фукнция. Только что DLL будет подгружаться и все. Редактор сам никоим образом не возжелает вызвать эту функцию в необходимый тебе момент.
2. "Заглушки" кстати имеют вид:
mov eax,eax
jmp [_idata.func_pointer]
Можешь считать для успокоения, что вызовы функций у библиотеки подгружаемой run-time выполняются без таких заглушек.


GuAV   (2005-07-30 16:06:00) [3]


> Так-как DLL может быть загружена в "произвольное"
> место.


И что дальше ?


PAVIA   (2005-07-30 15:51:00) [4]

Я вобще не понимаю, что написал GrayFace.


> Почему этот код просто не всавляется в место вызова.

Не знаю почему у тебя он не вставляеться, у всех он вставляется.


> Не знаю, но предполагаю

Сделано это для того чтобы знать адресс функции. Так-как DLL может быть загружена в "произвольное" место.


> Я добавил ее в раздел импорта, но не знаю, по какому адресу
> будет находиться ссылка на нее.

Ну кто тебе сказал, что ссылка будет?


> Такая задача: я хочу добавить в редактор карт Heroes 3 WOG
> монстров из WOG (их нельзя ставить в замки).

Как, это связано со всем остальным не представляю.


GuAV   (2005-07-30 15:12:00) [5]


> А заодно, близкий вопрос - зачем в Delphi для каждой
> импортируемой функции создаются маленькие заглушки с
> кодом call [$aabbccdd]? Почему этот код просто не
> всавляется в место вызова.


Не знаю, но предполагаю, что это для возможности ставить breakpoint на вызов функции вне зависимости от места вызова (ставится на строку с external - и останавливается на вызове хоть из переменной).


Digitman   (2005-07-30 14:17:00) [6]


> хочу добавить в редактор карт Heroes 3 WOG монстров из WOG
>


галиматьища какая-то : "монстры" , "WOG", "Heroes", "замки" ..

КАКОЕ отношение вся этя тряхомудия имеет к таблице импорта pe-модуля ?

каого вообще ляда ты полез править IAT вручную ?!

какая тебе разница, что и куда там Делфи "всавляет" касаемо импорта ?!


n0name   (2005-07-30 08:39:00) [7]

>Я добавил ее в раздел импорта, но не знаю, по какому адресу будет находиться ссылка на нее.
Это как? То есть ты хочешь узнать по какому адресу она загружена?


Наверх

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