Очень , очень простой сниффер

Тема в разделе "WASM.UNIX", создана пользователем featurelles, 7 дек 2009.

  1. stmia

    stmia New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2009
    Сообщения:
    35
    хм, ну тогда буду традиционна - неплохо бы предоставить код ибо вряд ли число телепатов тут радикально
    увеличилось с момента окончания последнего отпуска :)
     
  2. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    stmia
    Ща будет)
     
  3. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Хотя нет, не будет..
    Чтоб этот код из своей проги вытянуть, надо почти все части переписывать на форум.

    stmia
    Если не сложно, просто Ответьте на вот это.
    Правильно ли начало данных высчитываю? unsigned char *data = (unsigned char *)tcphdr_ptr + (tcphdr_ptr->doff)*4;
    и когда регистрируем хук на исходящие пакеты, NF_INET_LOCAL_OUT или NF_INET_POST_ROUTING , при проходе хука NF_INET_LOCAL_OUT данные в буфере сокета уже содержатся? или будут дописаны чуть позже...скажем до или после прохода хука NF_INET_POST_ROUTING ?
    ( хотя что, один, что другой хук регистрировал.. никак исходящих данных не видит)
     
  4. stmia

    stmia New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2009
    Сообщения:
    35
    по идее все что проходит NF_INET_* уже почти готово для отправки в сеть (почти - может быть
    не определен выходной интерфейс например), и уж точно содержит все данные. я совершенно уверена
    что TCP модуль не будет вдруг дописывать что-то в skb после того как она передана IP :)
     
  5. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    stmia
    Оки, спасибо огромное! буду щас дальше ошибки искать.
     
  6. stmia

    stmia New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2009
    Сообщения:
    35
    что касается
    Код (Text):
    1. unsigned char *data = (unsigned char *)tcphdr_ptr + (tcphdr_ptr->doff)*4;
    -
    то все зависит от того правильно ли вы нашли значение tcphdr_ptr :)
     
  7. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Да было не особо сложно
    tcphdr_ptr = skb->transport_header;
    =)