Здравствуйте, друзья! У меня вопрос, как заполнить таблицу импорта PE программы при её загрузке адресами "заглушек"? Ситуация такая: 1. я загрузился с диска 2. я загрузил PE программу в память 3. перевёл проц с защищённый режим 4. переташил прогу по адресу 100000h 5. Запускаю её - ноль результата)
Покапался в проге дебаггером, и увидел что она сразу после запуска обращается к kernel32.dll и так как таблица импорта не заполнена она передаёт управление в никуда... Вот такие дела)
Код который я использую - изменённый код от сюда: brokenthorn.com/Resources/OSDevMSVC.html - тут используется загрузка с дискетки и запуск PE проги которая скомпилена таким образом, что не использует внешних импортируемых функций а сразу передаёт управление на полезный код. Я же хочу запустить прогу скомпиленную в Delphi, которая всегда импортирует функции из kernel32.dll перед тем как передать управление на полезный код.
Оооооооочень надо, третий день бьюсь...
Большое всем спасибо! :)
p.s.: прога на делфи ничего не делает пока, просто: begin [вставка на ассемблере для проверки] end.
|