· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.VIROLOGY —› Помогите разобратся с DelayImportTable ОЧЕНЬ нужно

Посл.отвђт Сообщенiе


Дата: Июл 28, 2004 15:18:48

Ктонибуть может помоч со структурой рограмм а именно с DelayImportTable а главное размеры полей описфнных в DelayImportTable вот, напремер, второй элемент имя (LPSTR: чтобы узнать размер надо найти ноль в строке) а об остольных элементах в MSDN-е только краткое описание КАК БЫТЬ? ГДЕ УЗНАТЬ РАЗМЕРЫ?


Дата: Июл 29, 2004 04:40:54

antoskail
Что-то ни гугл, ни яндекс ни msdn не знают слова DelayImportTable, где ты его нашел?


Дата: Июл 29, 2004 07:08:57

q_q
Я нашел нечто похожее =) В индексе MSDN - delayimp.h. Если это то, что имел ввиду antoskail, тогда вот парочка структур:
typedef struct DelayLoadProc {
    BOOL                fImportByName;
    union {
        LPCSTR          szProcName;
        DWORD           dwOrdinal;
        };
    } DelayLoadProc;

typedef struct DelayLoadInfo {
    DWORD               cb;         // size of structure
    PCImgDelayDescr     pidd;       // raw form of data (everything is there)
    FARPROC *           ppfn;       // points to address of function to load
    LPCSTR              szDll;      // name of dll
    DelayLoadProc       dlp;        // name or ordinal of procedure
    HMODULE             hmodCur;    // the hInstance of the library we have loaded
    FARPROC             pfnCur;     // the actual function that will be called
    DWORD               dwLastError;// error received (if an error notification)
    } DelayLoadInfo, * PDelayLoadInfo;



Дата: Июл 29, 2004 07:57:51

jekyll
Если это ТО, то какие могут быть вопросы?
Автор не знает sizeof?
Жду автора ветки.


Дата: Июл 29, 2004 11:32:33

Вот эта структура (а интересуют меня - всё кроме первых двух полей и последнего поля):

offset size name description
0 4 Attributes Must be zero.
4 4 Name Relative virtual address
of the name of the DLL to
be loaded. The name
resides in the read-only
data section of the image.
8 4 Module Handle Relative virtual address
of the module handle (in
the data section of the
image) of the DLL to be
delay-loaded. Used for
storage by the routine
supplied to manage delay-
loading.
12 4 Delay Import Address Table
Relative virtual address
of the delay-load import
address table. See below
for further details.
16 4 Delay Import Name Table
Relative virtual address
of the delay-load name
table, which contains the
names of the imports that
may need to be loaded.
Matches the layout of the
Import Name Table,
Section 6.4.3. Hint/Name
Table.
20 4 Bound Delay Import Table
Relative virtual address
of the bound delay-load
address table, if it
exists.
24 4 Unload Delay Import Table
Relative virtual address
of the unload delay-load
address table, if it
exists. This is an exact
copy of the Delay Import
Address Table. In the
event that the caller
unloads the DLL, this
table should be copied
back over the Delay IAT
such that subsequent
calls to the DLL continue
to use the thunking
mechanism correctly.
28 4 Time Stamp Time stamp of DLL to
which this image has been
bound.


Дата: Июл 29, 2004 11:38:38

(нда все таб-ы полетели к чертям)
Вот эта структура (а интересуют меня - всё кроме первых двух полей и последнего поля):

offset size name description
0 4 Attributes Must be zero.
4 4 Name Relative virtual address of the name of the DLL to be loaded. The name resides in the read-only data section of the image.
8 4 Module Handle Relative virtual address of the module handle (in the data section of the
image) of the DLL to be delay-loaded. Used for storage by the routine supplied to manage delay- loading.
12 4 Delay Import Address Table Relative virtual address of the delay-load import address table. See below for further details.
16 4 Delay Import Name Table Relative virtual address of the delay-load name table, which contains the names of the imports that may need to be loaded. Matches the layout of the Import Name Table, Section 6.4.3. Hint/Name Table.
20 4 Bound Delay Import Table Relative virtual address of the bound delay-load address table, if it exists.
24 4 Unload Delay Import Table Relative virtual address of the unload delay-load address table, if it exists. This is an exact copy of the Delay Import Address Table. In the event that the caller unloads the DLL, this table should be copied back over the Delay IAT
such that subsequent calls to the DLL continue to use the thunking mechanism correctly.
28 4 Time Stamp Time stamp of DLL to which this image has been bound.


Дата: Июл 29, 2004 14:01:00

antoskail
Imho размеры указаны в твоем же сообщении у каждого поля 4 байта - dword, Чтобы получить представление о назначении каждого поля надо читать Microsoft Portable Executable and Common Object File Format Specification c самого начала.

PS в сети полно pecoff.pdf (294'879 байт)


Дата: Авг 5, 2004 10:13:19

Чтобы получить представление о назначении каждого поля надо читать Microsoft Portable Executable and Common Object File Format Specification c самого начала

Если имеется в виду следующая строка:

The layout of the tables matches that of the traditional import tables (see Section “6.4. The .idata Section“ for details), so only a few details will be discussed here.

То структуры имеющиеся в разделе "6.4 не подходят под реальные данные находящиеся под сылками DelayImportTable


Дата: Авг 5, 2004 11:22:35

antoskail
Я имел ввиду, что читать надо с начала документа.

структуры ... не подходят под реальные данные
Сначала ты оперируешь новым словом DelayImportTable, теперь ты ссылаешься на некие данные, я не телепат.


Дата: Авг 5, 2004 11:58:16

если посмотреть на Дамп ЕХЕ/DLL файла (имеющего структуру: Delay-Load Import Tables) то данные в дампе не сходятся со структурами в разделе "6.4 (или по кайней мере не все) ! по ссылкам описанным в структуре "Delay-Load Import Tables" "ходил" с учётом что программа загружена в RAM а значит Секции могут иметь адреса отличающиеся от адресов в Дампе ЕХЕ/DLL файла.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.119