Re[2]: Проблема с перехватом CreateFile
От: Аноним  
Дата: 29.07.02 09:33
Оценка:
V>Код покажи, хукать по разному можно.

typedef HANDLE(*PFNCREATEFILE)(LPCSTR, DWORD, DWORD,
            LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
//..................
// Подменная функция:
HANDLE WINAPI CreateFileMyA(LPCSTR lpFileName, DWORD dwDesiredAccess,
    DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes,
    DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes,
    HANDLE hTemplateFile) {
    PFNCREATEFILE pfn = ((PFNCREATEFILE)(PROC)g_createFileHook); // вынесено для проверки, чтобы убедиться, что  
                                                                     // адрес тот
        // g_createFileHook - глобальный объект внедряемой DLL, класса, занимающегося поиском и заменой адресов функций в IAT.
        // для простоты, можно представить, что это класс CAPIHook Рихтера. Его пробовал тоже, хотя и мой класс
        // работает с аналогичным результатом.
    HANDLE hHandle = pfn(lpFileName, dwDesiredAccess,
                                dwShareMode, lpSecurityAttributes,
                                dwCreationDisposition, dwFlagsAndAttributes,
                                hTemplateFile); // вот на этом вызове ругается, что
                                                                // вроде как параметры функции не очень...

    return hHandle;
}


Собственно, замена адреса в IAT происходит нормально, адрес исходной функции сохраняется верный, я все тщательно проверил.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.