Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210

Не работает Hook

01.05.2015, 23:39. Показов 1595. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажите,что я делаю неправильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <Windows.h>
 
HHOOK hook;
HINSTANCE hIns;
 
LRESULT CALLBACK KeyBrdProc(int nCode, WPARAM wParam, LPARAM lParam){
    if (nCode == WH_KEYBOARD){
        MessageBox(NULL, L"Нажата клавиша", L"Сообщение", NULL);
    }
    return CallNextHookEx(hook, nCode, wParam, lParam);
}
DWORD APIENTRY DllMain(HMODULE hModule, DWORD ul, LPVOID lpReserved){
    switch (ul){
    case DLL_PROCESS_ATTACH:
        hIns = (HINSTANCE)hModule;
        hook = SetWindowsHookEx(WH_KEYBOARD, KeyBrdProc, hIns, NULL);
        break;
    }
    return true;
}
Где можно найти примеры работающих hook'ов?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.05.2015, 23:39
Ответы с готовыми решениями:

В чем преимущество trampoline hook над обычным hook?
Объясните пожалуйста в чем преимущество trampoline hook и hook? Никак не могу понять

Hook клавиатуры не работает
Всем доброй ночи, возникла такая проблема: дано задание написать аудит клавиатуры, еще проще обычный кейлоггер. Вот код hooks.h ...

Hook в DLL работает некорректно
Ситуация такая: я инжектирую в свою пустую форму dll, которая должна там обрабатывать сообщения окна. код : HHOOK KBHook;...

7
46 / 31 / 12
Регистрация: 21.04.2015
Сообщений: 82
01.05.2015, 23:50
Ээээ SetWindowsHookEx вроде надо вызывать не в DLL_PROCESS_ATTACH а один раз в программе, которая делает инжект длл

Вот пример http://resources.infosecinstit... n-windows/
1
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
02.05.2015, 00:45  [ТС]
The next thing that we need to do is create the program.exe as was demonstrated on the first picture of the article. This is the program that will do the actual injection of our DLL into the process’s address space. Let’s not waste any more words and present the code of the program straight away. We can see the code below:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "stdafx.h"
#include <Windows.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
 
/*
* Load library in which we'll be hooking our functions.
*/
HMODULE dll = LoadLibrary(L"C:\\drivers\\dllinject.dll");
if(dll == NULL) {
printf("The DLL could not be found.\n");
getchar();
return -1;
}
 
/*
* Get the address of the function inside the DLL.
*/
HOOKPROC addr = (HOOKPROC)GetProcAddress(dll, "meconnect");
if(addr == NULL) {
printf("The function was not found.\n");
getchar();
return -1;
}
 
/*
* Hook the function.
*/
HHOOK handle = SetWindowsHookEx(WH_KEYBOARD, addr, dll, 0);
if(handle == NULL) {
printf("The KEYBOARD could not be hooked.\n");
}
 
/*
* Unhook the function.
*/
printf("Program successfully hooked.\nPress enter to unhook the function and stop the program.\n");
getchar();
UnhookWindowsHookEx(handle);
 
return 0;
}
Чего-то я не понял, а где в этой программе DLL "инжектится" в процесс?
0
46 / 31 / 12
Регистрация: 21.04.2015
Сообщений: 82
02.05.2015, 01:16
0x0152,
Цитата Сообщение от 0x0152 Посмотреть сообщение
Чего-то я не понял, а где в этой программе DLL "инжектится" в процесс?
Строчка 30:
C++
1
HHOOK handle = SetWindowsHookEx(WH_KEYBOARD, addr, dll, 0);
Функция SetWindowsHookEx сама инжектит длл.
1
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
02.05.2015, 01:20  [ТС]
zenden2k, В какой процесс она инжектится???
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
02.05.2015, 02:36
0x0152, во все на этом десктопе.
1
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
02.05.2015, 09:23  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
extern "C" __declspec(dllexport)  int qwe(int nCode, WPARAM wParam, LPARAM lParam)
{
    switch (nCode)
    {
    case HC_ACTION:
        MessageBox(NULL, "Нажата клавиша ", "Сообщение ", NULL);
                 break;
    }
        return CallNextHookEx(NULL, nCode, wParam, lParam);
}
Почему кода я закрываю MessageBox хук перестает работать?
0
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
01.09.2015, 22:10  [ТС]
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2015, 22:10
Помогаю со студенческими работами здесь

Не работает пример Hook'a с MSDN
Решил попробовать хукать эвенты. Вот код, практически полностью идентичный примеру к функции SetWinEventHook с MSDN: #include...

Hook не работает
Привет. Решил разобраться с хуками и немного с dll. Вот чего набодяжил: #include &lt;Windows.h&gt; #include &lt;cstdio&gt; int...

Простой dll hook не работает
Доброго времени суток! Идея: прога вставляет строку меню в открытый Notepad и по выбору этого пункта меню появляется MessageBox. ...

Hook в myCRED работает наполовину -_-
всем привет. я здесь пока новенький и очень рад тому что позволяете новеньким писать) у меня проблема вот такая: если знаете, myCRED...

Hook клавиатуры не работает на windows 7
Не знаю народ в чём ошибка помогите, под xp работает, а на windows 7 не хочет, пробовал ставить права админа на exe всё равно не пашет . ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru