win32 Hook

Тема в разделе "LANGS.C", создана пользователем sasha2207, 27 мар 2007.

  1. sasha2207

    sasha2207 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2007
    Сообщения:
    7
    В общем кто может подскажет. Есть прога на Visual C++ и Web server Apache
    Мне нужно, чтобы моя прога постоянно слушала 80 порт и всё что в нее приходит кидала в текстовый файл или ещё куда нибудь. Надо поставить hook на 80 порт. Весь I-Net перерыл, нигде ничего нет. Про hook на window, клаву и мышь все понятно, а как быть с портом
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    наверное тебе стоит написать либо перехват сокетных функций для апача, либо драйвер фильтра для \device\tcp
     
  3. sasha2207

    sasha2207 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2007
    Сообщения:
    7
    Поподробнее по поводу перехвата, только для OS windows. Под Unix у меня получилось, а по винду никак не могу
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    сплайсинг. кроссплатформенно, кстати.
    как?
     
  5. sasha2207

    sasha2207 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2007
    Сообщения:
    7
    под unix есть netfilter.h, вот с него и начал всю работу

    сплайсинг. кроссплатформенно, кстати.

    как это сделать есть пример, хоть кусок кода
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    https://forum.antichat.ru/thread32176.html моя статья с примером
    А так же:
    http://www.wasm.ru/article.php?article=apihook_1
    http://www.wasm.ru/article.php?article=apihook_2
     
  7. sasha2207

    sasha2207 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2007
    Сообщения:
    7
    а попроще нельзя, в смысле не запуская сторонний процесс, которому разрешено работать с 80 портом и не делая иньекции
     
  8. sasha2207

    sasha2207 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2007
    Сообщения:
    7
    вот меня больше интересует фильтр
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
  10. sasha2207

    sasha2207 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2007
    Сообщения:
    7
    извините за неграмотность, а что такое LSP
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Почитай в MDSN'e. Там даже есть статья на эту тему и пример :)
    Но если для тебя сложен сплайсинг, то LSP тем более.
     
  12. scf37

    scf37 New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2007
    Сообщения:
    44
    можно проще
    Поставить апач на порт 8080 (например)
    Твоя прога самым обыкновенным образом слушает порт 80 и перенаправляет данные апачу на порт 8080 (что-то вроде примитивной разновидности HTTP-proxy)
    Дампинг/фильтрация бесплатно :)
     
  13. sasha2207

    sasha2207 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2007
    Сообщения:
    7
    В общем у меня получилось получить IP пакет (снифером).
    немного кода:

    BYTE Buffer[MAX_PACKET_SIZE];
    count = recv( s, Buffer, sizeof(Buffer), 0 );
    где MAX_PACKET_SIZE=64Кб

    Вся проблема в том что, как отфильтровать этот пакет по заданному порту и получить из него IP адреса и данные
     
  14. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    винкапом можно фильтр поставить
    на нужный протокол и фильтровать порты
     
  15. ShadOS

    ShadOS New Member

    Публикаций:
    0
    Регистрация:
    20 сен 2006
    Сообщения:
    39
    Адрес:
    0x48k
    Дык это называется не proxy, а datapipe или socketspy, он же portforwarder.