Обход стандартной очереди сообщений или защита от SetWindowHook

Тема в разделе "WASM.WIN32", создана пользователем coocky, 21 янв 2009.

  1. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Здравствуйте..Вот пытаюсь как-то научится противостоять стандартным SetWindowHook кейлоггерам..Возникла идея-путем обхода очереди сообщений,т.е. имитация нажатия клавиши, путем отправки WM_KEYDOWN, WM_CHAR ,WM_KEYUP окну через SendMessage из внедренной длл. Вроде как работает.Но лишь в части приложений, аточнее сказать 100% во всех стандартных едитах. Однако такие приложения,как Word, Excel, и прочие упорно делать ввод символов данным методом..По непонятным причинам. Вот и хотелось бы узнать- почему, даже теоритически-нет возможности ввода символов в некоторые приложения данным путем. Ведь в итоге все попадает из цикла сообщений в оконную процедуру... и второе-может все же копаю я не в том направлении, может другими способами есть обход SetWindowHook кеулоггеров?
     
  2. hawk

    hawk New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    155
    А почему не WH_KEYBOARD?
    Я например через это делал.
    И почему бы не перехватить SetWindowHook и SetWindowsHookEx ?
    Просто перехватите данные API и смотрите какие процессы пытаються воспользоваться данной функцией.
    Подробно о перехвате API написано на www.wasm.ru
     
  3. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    У меня был проект антикилогера который пускал клавиши в обход всего (в дровере слалось по лпс напрямую а с юзер-мода сендмесаджем). Если нарою его - выложу сорцы, там вроде как все пахало.

    П.С. Проект заблочили, потому что я сказал что щифровать клавиши 128битным ключем - бред.
     
  4. hawk

    hawk New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    155
    tylerdurden я не могу понять-зачем отлавливать прерывания всех клавишь????Это же напряг для компа.
    Не проще ли отловить функции.К тому же пустить клавиши на прямую можно, кейлогер не попалит, но он останеться сидеть в вашей системе. Зачем ему оставлять шансы на жизнь?
     
  5. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    coocky
    Тут нужно увчитывать, что есть два типа юзермодный кейлоггеров основывающихся на SetWindowHook. Это хук на кейборд и хук на гетмессаж. Причем, юзать хук на гетмессаж в этом плане гораздо удобнее (есть некоторые преимущества). Насколько я понял твоя защита этого не учитывает.

    hawk
    +1 По поводу перехвата АПИ.
    [add] единственный минус - легко обнаружить и легко снять. Опять же, требования определяют метод.
     
  6. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Вот и я пытаюсь слать SendMessagем..Однако в Worde Excel Фотошопе не пашет. Вообщем принцип работы реализовал так-внедряю свою длл через хук,нахожу активное окно,сабкласю его процедуру. Отправляю себе же (в свою сабкласс процедуру) три левых свои сообщения через сенд, внутри преобразую их в правильные-WM_KEYDOWN, WM_CHAR ,WM_KEYUP и передаю оригинальной процедуре CallWindowProc,таким образом получается еще избежать хуков на SendMessage WH_CALLWNDPROC и WH_CALLWNDPROCRET. Но..Увы.. Проблема остается.
    Не могу понять причину. Даже пробывал вызывать напрямую дефолтную оконную процедуру окна-получив ее для данного класса окна,ну мало ли, мож какие проблемы там с сабклассингом в приложении-все те же грабли...
    Немного не понял вопроса..
    И восприпятсвовать их выполнению? Я так понял? Но так же нельзя..Ведь хуки ставятся и "правильными приложениями"
    Честно сказать ОЧЕНь даже знаком и делал не раз..Просто не вижу смысла в этом, если честно..
     
  7. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Из МСДН
    WH_GETMESSAGE
    Installs a hook procedure that monitors messages posted to a message queue
    Все будет ок.. Надо лишь научится посылать это все..Опять же повторяюсь-НЕ ПОНИМАЮ почему моя метода не дает 100% работоспособности в плане ввода текста..
    Ребята-мыговорим о юзермодных кеулогерах :)
     
  8. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Ну если это действительно +1, тогда обьясните мне смысл перехвата SetWindowHook и SetWindowsHookEx.Хоть убейте-не вижу смысла.. Не дать поставить хук? Уже ж выше говорил-ЭТО НЕ ПРАВИЛЬНО.. Нельзя не дать поставить хук..Ибо хук-этоне есть 100% кейлогер :)
     
  9. hawk

    hawk New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    155
    coocky вы хотите сказать , что не только кейлоггеры перехватывают WM_KEYDOWN, WM_CHAR ,WM_KEYUP?
     
  10. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Я хочу сказать, что НЕ ТОЛЬКО кейлогеры ставят хуки. Например фотошоп ставит. Вообщем снимать хуки ни есть хорошо..Лучше по честному обмануть..Но пока не получается..Главное-причину понять не могу..Вроде ж логика работы ОСОБО не нарушается,обходя очередь сообщений
     
  11. hawk

    hawk New Member

    Публикаций:
    0
    Регистрация:
    9 ноя 2007
    Сообщения:
    155
    Фотошоп ставит хуки на WM_KEYDOWN, WM_CHAR ,WM_KEYUP?
     
  12. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    http://wasm.ru/forum/viewtopic.php?pid=288215
    http://www.wasm.ru/article.php?article=hooks_inside

    Должно помочь. Не отправить сообщение в обход хука, а защититься от хука в своем приложении.
     
  13. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Хук на клаву ,если не ошибаюсь и на мышь.
    Да какая разница? Он просто ставит хуки, а вы мне предлагаете их снимать.. Я правильно понял?
    Посмотрите хотя бы сообщения Twister, какие есть хуки и кто ставит.. Очень много вполне приличных приложений..
    Twister
    Я посмотрю ваш вариант..Спасибо..Но думаю будут вопросы.
    Плохо,что асм и паскаль..Я на с++ пишу :)
    И еще-одно дело не ДАТЬ поставить, другое дело, что делать с УЖЕ поставленным.Вот и хотелось бы найти механизм обхода..Ничего не ломаешь, никого не килишь.. Проблем нет с работоспособностью.
     
  14. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    Twister
    Опять драйвер..Мне без драйвера надо :)
     
  15. coocky

    coocky New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    195
    tylerdurden хотелось бы увидеть ваш вариант из юзермоде..Или хотя бы в двух словах-принцип работы..Может помните..? :)