Установка хуков на перехват нажатия клавишь

Тема в разделе "WASM.BEGINNERS", создана пользователем YR, 6 апр 2007.

  1. YR

    YR New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2007
    Сообщения:
    6
    Делать нечего в селе
    Мы сидим на веселе...

    Пишу на Delphi прогу - keylogger.
    Хуки на перехват установил вроде.
    SetWindowsHookEx(WH_KEYBOARD, @MyProc, HInstance, 0);

    Но никак не могу понять где касячу!
    Вроде соответствующая библиотека перехватывает все нажатия с клавиатуры (абсолютно).
    Но как ни странно фиксирует и отождествляет передаваемый код с соответствующей клавишей только в том случае, если приложение, запустившее библиотеку, находится в активном состоянии.

    Как вы понимаете такой вариант меня не устраивает...
    Приложение запустившее библиотеку у меня скрыто.
    Подскажите где и что я делаю не так!
     
  2. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    YR
    Ты "делаешь не так" самое главное - дурью маешься. Достали уже, ничего писать еще не умеют, даже читают с трудом (если пользоваться справкой и т.д. не умеют), а туда же - малвары писать.
    Модеры, закройте, пожалуйста тему!
     
  3. YR

    YR New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2007
    Сообщения:
    6
    Могу только поблагодарить за подобный комментарий :). НО хочу сказать, что и МОСКВА не сразу строилась!
     
  4. click_and_die

    click_and_die New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    192
    В те времена кроме DELPHI ни на чем е писали.

    если бы тогда была Java или C++ - Москва бы построилась сразу
     
  5. OioVologda

    OioVologda New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    91
    Хватит дурью маятся YR
    Напиши че-нибудь стоящее, а то щас очень много людей только прогать научились и давай мутить дурь типа кейлоггеров.
    Для начала научись читать хелп, а уже потом пиши гадость типа руткитов, если очень охота спереть пароль от инета своего соседа по сети.
     
  6. YR

    YR New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2007
    Сообщения:
    6
    И что я в хелпе не видел? Знаю - латинские буквы :). А если серьезно, то конечно спасибо за коммент, но думаю у всех были моменты, когда "приперло"!?!?
     
  7. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    YR
    Что такое HInstance?
     
  8. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    q_q
    Есть такой ДелфиВорлд
    Это оттуда.
    Человек скопировал-вставил и не понимает, почему не работает.
     
  9. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    nitrotoluol
    Есть такой ДелфиВорлд
    Т.е. автор темы задавал это же вопрос где-то еще? Знаешь точную ссылку?

    Человек скопировал-вставил
    Помогать можно по разному. Можно стебаться, можно дать готовое решение, можно подсказывать направления поиска, можно задавать вопросы так (imho это уже высший пилотаж), что автор, отвечая на них, "сам" найдет решение, что безусловно добавит ему уверенности в себе и, возможно, подвигнет на решение более сложных задач.
     
  10. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    q_q
    Нет. Есть различные миры , к примеру мир асм, мир си и мир делфи - DelphiWorld, C++ world и пр.
    Т.е. сборник статей простыми словами. Вот в сборнике статей делфи есть и о хуках. Автор не нагрузив себя умственной работой, просто скопировал код со статьи, вставил, ткунл, а оно не заработало.

    hinstance - это просто хэндл.
     
  11. YR

    YR New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2007
    Сообщения:
    6
    Да, здесь идет реально стеб, хотя спасибо за подсказку по мирам (delphiworld наверно подойдет :)). И если уж совсем о птичках-прога работает, и я ждал по большей части комментов с линками на какой нить ман или статью, что кстати частично оправдалось :)
     
  12. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    nitrotoluol
    Есть различные миры ...
    Использование в них Win API сильно разнится?

    Автор не нагрузив себя умственной работой, просто скопировал код со статьи ...
    Наверное, ты хорошо знаком с автором темы.

    hinstance - это просто хэндл.
    Например, Рихтер пишет, что для глобального хука его обработчик должен быть размещен в dll'ке и третий параметр SetWindowsHookEx должен быть ее дескриптором, а это уже не "просто хэндл".
     
  13. nkie

    nkie New Member

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    1
    линкуй с секцией разделяемых данных, типа:
    \masm32\bin\link /section:.bss,S /DLL /DEF:keyhook.def /SUBSYSTEM:WINDOWS /OPT:NOREF keyhook.obj
    Особо обрати внимание на :
    /section:.bss,S
    Это должно помочь
     
  14. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Вместо хука юзай GetAsyncKeyState. Тут кажись есть исодники Simples Key Logger by marazm, правда на Fasm-е.
    Немножко подправить и получается то, что нужно.
    На его базе написал себе маленькую утиль, работает хорошо. Удачи.
     
  15. Marazm

    Marazm Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    95
    GetAsyncKeyState не рулит, палится всем чем только можно. Через DirectInput надежнее (по крайней мере было :) И опять же не нужно библиотек..