Это системная DLL, которую Windows
return ( FALSE);
}
if ( ( NULL != pdwHooked) &&
( TRUE == IsBadWritePtr ( pdwHooked, sizeof ( UINT))) )
{
SetLastErrorEx ( ERROR_INVALID_PARAMETER, SLE_ERROR);
return ( FALSE);
}
// Это системная DLL, которую Windows 98 не
// разрешает загружать (из-за того, что адрес загрузки >2 Гбайт)?
if ( ( FALSE == IsNT .()) && ( (DWORD)hModule >= 0x80000000))
{
SetLastErrorEx ( ERROR_INVALID_HANDLE, SLE_ERROR);
return ( FALSE);
}
// Должен ли каждьй элемент массива подключений проверяться .
//в выпускных построениях?
if ( NULL != paOrigFuncs)
{
// Установить все значения paOrigFuncs в NULL.
memset ( paOrigFuncs, NULL, sizeof ( PROC) * uiCount);
}
if ( NULL != pdwHooked)
{
// Установить число функций, подключенных к 0.
*pdwHooked = 0;
}
// Получить специальный дескриптор импорта.
PIMAGE_IMPORT_DESCRIPTOR plmportDesc =
GetNamedlmportDescriptor ( hModule, szImportMod);
if ( NULL == plmportDesc)
{
// Затребованный модуль не был импортирован.
// Ошибку не возвращать.
return ( TRUE);
}
// Получить информацию об исходных переходниках для этого DLL.
// Невозможно использовать информацию переходников, хранящуюся в
// p!mportDesc->FirstThunk, т. к. загрузчик уже изменил этот массив
// при установке всех импортов. Исходный переходник обеспечивает
// доступ к именам функций.
PIMAGE_THUNK_DATA pOrigThunk =
MakePtr ( PIMAGE_THUNK_DATA
hModule ,
plmportDesc-XDriginalFirstThunk );
// Получить массив p!mportDesc->FirstThunk, в котором я буду
// выполнять подключения и всю черную работу.
PIMAGE_THUNK_DATA pRealThunk = MakePtr { PIMAGE_THUNK_DATA
hModule , pImportDesc->FirstThunk );
// Цикл поиска подключаемых функций,
while ( NULL != pOrigThunk->ul.Function)
{
// Искать только функции, которые импортируются по имени,
// а не те, что импортируются по порядковому номеру.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий