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

DWORD prevPtr;

LPVOID FreePtr = NULL;

//Ищем максимальный кусок свободного места в секции...

while ( pos >= ImportSecBeg )

{

if ( *(BYTE *)pos == 0x00 )

{

prevPtr = (DWORD)pos;

while (*(BYTE *)pos == 0x00)

(DWORD)pos -= 1;

if ( ((DWORD)prevPtr - (DWORD)pos) > maxFree )

{

maxFree = ((DWORD)prevPtr - (DWORD)pos);

(DWORD)FreePtr = (DWORD)pos + 1;

}

}

(DWORD)pos -= 1;

}

//Модифицируем полученный указатель на свободный блок, т.к.

//он может указывать на завершающий нулевой DWORD

//какой-либо структуры

(LPDWORD)FreePtr +=1;

maxFree -=4;

//Проверяем объем свободного места

if ( maxFree < NewImportTableSize )

{

Log->Lines->Add("Недостаточно свободного места в таблице импорта \

для занесения информации об дополнительной библиотеке.");

UnmapViewOfFile(fBeg);

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