hook code

Тема в разделе "WASM.BEGINNERS", создана пользователем who5, 7 мар 2008.

  1. who5

    who5 New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2008
    Сообщения:
    3
    Каким образом приложение может узнать о том, что кто-то перехватывает api вызовы? Для конкретизации, в пример: приложение на Delphi, работает с сокетами. А кто-то перехватывает все winsocket вызовы (send, recv, ...) через madCodeHook. Каким образом/способами приложение может определить наличие перехвата?

    madCodeHook — http://www.madshi.net/madCodeHookDescription.htm



    Спасибо.
     
  2. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    Все зависит от метода перехвата. Если сплайс - то загрузка файла с диска и определение правленных начальных байт, если правка IAT, то также загрузка с диска оригинальной копии и сравнение с оригинальными адресами и анализ переходов, для самого простого случая если есть переход в начале функции (push/ret, jmp/jxxx), то функция похучена. Для каждого метода перехвата свой способ отлова, который естественно зависит от метода, ведь "перехват" это понятние переносное, на самом то деле ставить просто переход на другую часть кода, либо правится какая-то таблица адресов функций.
     
  3. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    А как нужно перехватить что бы обойти указанную тобой проверку ???
     
  4. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    asmlamo
    Как один из вариантов - перехватить открытие оригинального файла и подсоввываение фекового.
     
  5. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Это понятно а есть еще варианты. К примеру SSDT или нечто подобное ???
     
  6. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    asmlamo
    Не понимаю о чем ты. Антихук методы базируются на самих методах хука. Антиантихук методы базируются на самих антихук методах.
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Смотрю многие активно юзают этот мадхук. Никогда не пользовался, ни понимаю отчего такая его популярность. К тому же SST хукают антивири и фаеры так что это ещё тот вопрос.
    Зы. Знаю методы на которых замучаются пыль глотать, чтобы определить перехват.
     
  8. who5

    who5 New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2008
    Сообщения:
    3
    Спасибо.

    А если подвести итог под всеми методами хука, то сколько их получается: сплайсинг, IAT, ... что ещё?
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    who5
    Фейковая dll, имхо самый простой и надёжный метод. Спрашивается как прога будет его мониторить? По сигнатурам что-ли, лольный метод -). В XP SP2 есть дополнительные методы, сплайсинг там узаконен. И ещё например если поковырять как функции переходят в ядро SP2, тоже интересный перехват можно сделать.
     
  10. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Ну можно еще всякие изварщения(хотя как сказать) int3 в начало функции, хардварный бряк, SEH + инструкция вызывающая экспешн в начало...
     
  11. who5

    who5 New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2008
    Сообщения:
    3
    Еще раз всем спасибо! Посмотрел статью "Перехват API функций в Windows NT (часть 1).", там все же говориться о двух основных методах - это: патчинг таблицы импорта и сплайсинг.

    Я посмотрел описание методик в madCodeHook, встретил интересное:

    Патчинг таблицы экспорта - Export Table Patching, что это такое?
    Simple Code Overwriting - это типа простой сплайсинг
    Extended Code Overwriting - это типа расширенный сплайсинг, ничего не понял, что это?
    Madshi's Code Overwriting - сплайсинг, заменяется 6 байт - в чем сила?
    Madshi's Mixture Mode - ?

    http://help.madshi.net/ApiHookingMethods.htm