Hexxx

Forum Replies Created

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • in reply to: TDI_SET_EVENT_HANDLER #5779
    Hexxx
    Participant

      В TDIMON’e они вообще просто поступили: когда приходит IRP_MJ_CREATE они выделяют память для структуры хранящей инфу о соединении. И в этой же структуре они содержат все 12 контекстов для 12 event’ов. А когда закрывается соединение(IRP_MJ_CLOSE) они просто удаляют всю структуру вместе с контекстами.

      in reply to: TDI_SET_EVENT_HANDLER #5777
      Hexxx
      Participant

        В майкрософте сидят одни сволочи! В таблице соединений внутри tcpip есть инфа и о Source и о Destination ip/port . Только вот при запросе TDI_QUERY_ADDRESS_INFO копируется из нее только Source… 👿

        Пропатчить чтоли tcpip.sys… 😈

        Да, кстати об очистке памяти выделеной под контекст. Как же я буду очищать если нулевой хэндлер потом не ставится, как я узнаю что уже можно удалять контекст? Наверно, система шлет ноль только когда собирается переустановить хэндлер. А очищать память надо при закрытии соединения… блин опять же придется делать таблицу соединений…

        in reply to: TDI_SET_EVENT_HANDLER #5775
        Hexxx
        Participant

          Gen, ты меня не понял. У меня есть драйвер который хучит мажорные функции TcpIp.sys. В хэндлере IRP_MJ_INTERNAL_DEVICEIO_CONTROL. Я ловлю TDI_SEND и мне надо по полученому IRP получить информацию о destination port и ip. Очень не хочется следить за всеми Connect и Disconnect событиями. Есть ли способ получить такую информацию тут же, не используя собственных таблиц соединений? Потому что проблем с получением локального айпи и порта нет.

          in reply to: TDI_SET_EVENT_HANDLER #5773
          Hexxx
          Participant

            Вот жеж прикольно, в TCPIP.sys реально заимплеменчено только:
            #define TDI_QUERY_BROADCAST_ADDRESS 0x00000001
            #define TDI_QUERY_PROVIDER_INFORMATION 0x00000002
            #define TDI_QUERY_PROVIDER_INFO 0x00000002
            #define TDI_QUERY_ADDRESS_INFO 0x00000003
            #define TDI_QUERY_CONNECTION_INFO 0x00000004
            #define TDI_QUERY_PROVIDER_STATISTICS 0x00000005

            P.S. Дохлый какой-то форум или никто не знает ответов на мои вопросы?

            in reply to: TDI_SET_EVENT_HANDLER #5772
            Hexxx
            Participant

              И еще вопрос, как по соединению получить remote address? Потому что в TDI_REQUEST_KERNEL_SEND нету RemoteAddress.

              Пробовал слать TDI_QUERY_INFORMATION/ TDI_QUERY_DATA_LINK_ADDRESS на file object. Но в отличии от TDI_QUERY_INFORMATION, TDI_QUERY_DATA_LINK_ADDRESS говорит STATUS_NOT_IMPLEMENTED. Неужели единственный путь – это как в TdiMon’e хранить весь набор соединений?

            Viewing 5 posts - 1 through 5 (of 5 total)