Реферат: Жесткое внедрение DLL в Windows-программы

memcpy(zeroPtr, &myName, sizeof(IMAGE_IMPORT_BY_NAME) );

//2.3. Заполняем структуру IMAGE_IMPORT_DESCRIPTOR данными об нашей DLL

IMAGE_IMPORT_DESCRIPTOR myDLL;

//Вычисляем указатель на нашу структуру IMAGE_IMPORT_BY_NAME:

//это адрес начала старой таблицы импорта + длинна строки с именем

//нашей DLL + нулевой DWORD

IIBN_Table = ImportRVA + strlen( OUR_DLL_NAME ) + sizeof(DWORD);

//Указатель на таблицу Characteristics

myDLL.Characteristics = IIBN_Table;

myDLL.TimeDateStamp = NULL;

myDLL.ForwarderChain = NULL;

//Записываем адрес строки с именем файла нашей DLL

myDLL.Name = ImportRVA;

//Указатель на таблицу FirstThunk

myDLL.FirstThunk = IIBN_Table;

//Записываем в новую таблицу импорта запись о нашей DLL

LPVOID OldFreePtr = FreePtr;

(DWORD)FreePtr +=sizeof(IMAGE_IMPORT_DESCRIPTOR)*DLLCounter;

memcpy(FreePtr, &myDLL, sizeof(IMAGE_IMPORT_DESCRIPTOR));

//Создаем "финальную" нулевую запись со всеми полями равными нулю

myDLL.Characteristics = NULL;

myDLL.TimeDateStamp = NULL;

myDLL.ForwarderChain = NULL;

myDLL.Name = NULL;

myDLL.FirstThunk = NULL;

//И записываем её в конец новой таблицы импорта.

(DWORD)FreePtr +=sizeof(IMAGE_IMPORT_DESCRIPTOR)*DLLCounter;

memcpy(FreePtr, &myDLL, sizeof(IMAGE_IMPORT_DESCRIPTOR));

//3. Устанавливаем указатель на нашу таблицу импорта.

К-во Просмотров: 2268
Бесплатно скачать Реферат: Жесткое внедрение DLL в Windows-программы