Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2011, 17:00   #1
wwe2012
Пользователь
 
Аватар для wwe2012
 
Регистрация: 17.01.2011
Сообщений: 51
Вопрос Хочу написать кейлогер

Слушайте я тут хочу написать кейлогер как сделать что
Код:

Код:
char s;
 int result;
/* следующий оператор проверяет, была ли нажата клавиша */
result = kbhit();
мне не понятна эта стока можеш рашифровать мне ее. Это с книги про функцию kbhit();
если результат result ненулевой, буфер ожидает нажатие
клавиши. Ее можно задать при помощи getch или getche. Если getch
или getche были вызваны функцией kbhit без проверки, программа
делает паузу и ожидает ввод символа.

Последний раз редактировалось Stilet; 30.03.2011 в 17:16.
wwe2012 вне форума Ответить с цитированием
Старый 30.03.2011, 17:02   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

kbhit не даст вам написать кейлогер.
только внутри своего приложения вы будете получать клавиши
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.03.2011, 17:11   #3
wwe2012
Пользователь
 
Аватар для wwe2012
 
Регистрация: 17.01.2011
Сообщений: 51
Вопрос

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
kbhit не даст вам написать кейлогер.
только внутри своего приложения вы будете получать клавиши
а как надо простоя на навичок можеш подсказать. я просто я думаю что все нажатые клавиши сохранять в текстовый документ.
wwe2012 вне форума Ответить с цитированием
Старый 30.03.2011, 17:16   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И по-моему даже kbhit() работает только в консольном приложении...
А надо пойти на MSDN и почитать про хуки http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.03.2011, 17:18   #5
wwe2012
Пользователь
 
Аватар для wwe2012
 
Регистрация: 17.01.2011
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
И по-моему даже kbhit() работает только в консольном приложении...
я знаю что работает только в консоли мне так и надо я сам смысл не пойму как сделать
wwe2012 вне форума Ответить с цитированием
Старый 30.03.2011, 17:18   #6
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Цитата:
а как надо
С помощью хуков.
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 30.03.2011, 17:19   #7
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

Можно сделать глобальный хук.
Подробности на мсдн.
Функция SetWindowsHookEx
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 30.03.2011, 17:21   #8
wwe2012
Пользователь
 
Аватар для wwe2012
 
Регистрация: 17.01.2011
Сообщений: 51
Вопрос

Цитата:
Сообщение от wyvern Посмотреть сообщение
Можно сделать глобальный хук.
Подробности на мсдн.
Функция SetWindowsHookEx
а поподробней как это сделать. спомошу хука. Ребя мне на С/С++ надо
wwe2012 вне форума Ответить с цитированием
Старый 30.03.2011, 17:24   #9
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

http://msdn.microsoft.com/en-us/libr...90(VS.85).aspx

HHOOK WINAPI SetWindowsHookEx(
__in int idHook,
__in HOOKPROC lpfn,
__in HINSTANCE hMod,
__in DWORD dwThreadId
);

Твой хук должен быть в дле, хинстанс которой надо передать в hMod, в таком случае в dwThreadId передаешь NULL.
idHook - WH_KEYBOARD.
lpfn - указатель на функцию из дли, полученный через GetProcAdress (кажется, точно название функции не помню).

Примеры тут: http://msdn.microsoft.com/en-us/libr...ling_releasing
wyvern@localhost:~$ sudo emerge --unmerge world

Последний раз редактировалось wyvern; 30.03.2011 в 17:32.
wyvern вне форума Ответить с цитированием
Старый 30.03.2011, 17:29   #10
wwe2012
Пользователь
 
Аватар для wwe2012
 
Регистрация: 17.01.2011
Сообщений: 51
Вопрос

Цитата:
Сообщение от wyvern Посмотреть сообщение
http://msdn.microsoft.com/en-us/libr...90(VS.85).aspx

HHOOK WINAPI SetWindowsHookEx(
__in int idHook,
__in HOOKPROC lpfn,
__in HINSTANCE hMod,
__in DWORD dwThreadId
);

Твой хук должен быть в дле, хинстанс которой надо передать в hMod, в таком случае в dwThreadId передаешь NULL.
idHook - WH_KEYBOARD.
lpfn - указатель на функцию из дли, полученный через GetProcAdress (кажется, тут не уверен).

Примеры тут: http://msdn.microsoft.com/en-us/libr...ling_releasing
если чесно то я не вига непонял протоя я еше учусь тока на первом курсе для меня это не знакомо.
wwe2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi, кейлогер Pactpo Помощь студентам 0 27.02.2011 17:21
Хочу написать 3D-движок qazar Помощь студентам 1 10.02.2011 15:51
Хочу написать Программу Letnab Помощь студентам 2 16.12.2009 12:24