Текущий архив: 2005.10.09;
Скачать: CL | DM;
Вниз
Раздел импорта ехе-файла Найти похожие ветки
← →
Ботвин Дмитрий (2005-08-11 10:58) [0]Всем привет! Подскажите, кто знает, как можно для ехе-файла прочитать раздел импорта и получить список всех dll-модулей, котрые он использует. Даже если он в какой-то момент времени и
не загружает их. Спасибо!
← →
Digitman © (2005-08-11 11:18) [1]
> Даже если он в какой-то момент времени и
> не загружает их
если не загружает, значит в разделе импорта нет соотв.сведений
раздел импорта используется сист.загрузчиком на этапе иниц-ции исп.модуля, еще ДО передачи управления на точку входа .. явный LoadLibrary в ходе выполнения программы (если ты об этом) не использует таблицу импорта
← →
Ботвин Дмитрий (2005-08-11 11:26) [2]Digitman © (11.08.05 11:18) [1]
Про явный способ загрузки Dll я понял, а как получить хотя бы
те, которые загружаются неявным способом и прописаны в таблице
импорта?
← →
Digitman © (2005-08-11 11:36) [3]например, так :
pOptHdr := PImageOptionalHeader(hImporter + PImageDosHeader(hImporter)._lfanew + SIZE_OF_NT_SIGNATURE + IMAGE_SIZEOF_FILE_HEADER);
if pOptHdr^.NumberOfRvaAndSizes = 16 then
begin
dwDirSize := pOptHdr^.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size;
if dwDirSize > 0 then
begin
pImpDir := PImageImportDescriptor(hImporter + pOptHdr^.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
результат - в pImpDir ты получаешь указатель на первый эл-т таблицы импорта модуля hImporter
← →
Ботвин Дмитрий (2005-08-11 11:42) [4]Digitman © (11.08.05 11:36) [3]
Огромное спасибо! С таблицей импорта ты меня жутко выручил!!!
Я так понял, что список тех модулей, которые загружаются явно, получить не получиться?
← →
wal © (2005-08-11 11:46) [5]
> Я так понял, что список тех модулей, которые загружаются
> явно, получить не получиться?
В принципе, запустив программу из под делфи, можно получить список модулей, используемых В ДАННЫЙ МОМЕНТ. А если программно, без запуска исследуемого процесса, в общем случае, видимо, никак.
С уважением.
← →
Digitman © (2005-08-11 12:01) [6]
> Я так понял, что список тех модулей, которые загружаются
> явно, получить не получиться?
хоть явно хоть неявно, но получить список загруженных pe-модулей можно в любой момент времени работы процесса приложения:
- под НТ : EnumProcessModules() (psapi.pas)
- под Маздаем : Module32First/Next (tlhelp32.pas)
← →
Ботвин Дмитрий (2005-08-11 12:44) [7]Понял, всем спасибо!!!
Страницы: 1 вся ветка
Текущий архив: 2005.10.09;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.032 c