Господа, такой вопрос: У меня есть драйвер из которого нужно передать данные в веб. Послать их нужно скрипту на таргет-сервере. Тоесть, получится что-то типа: Код (Text): POST /getdata.php HTTP/1.1 Host: serfant.net --binary data-- EOF Проблема в том что этот пакет(ы) не должен обнаружить файрвол. Тоесть слать нужно через NDIS (о "файрволах" которые работают на TDI уровне речь конечно не идет). Вопрос к осведомленым в даной теме людям: как это сделать, есть ли что-то написаное? Спасибо.
Это возможно, и такие вещи существуют, но никто их тебе не даст, и даже не продаст. Сделать это весьма сложно, и долго. Так что лучше забудь, всеравно ничего не найдешь. Ну а если уж очень сильно охото, то пару годиков поизучай реверсинг и kernel coding, авось и сам потом напишешь.
В этом случае тебе придется хоть в какой-то степени реализовать протокол TCP/IP При этом Виндовый TCP/IP тоже будет работать - судя по словам про firewall . Вряд ли кто-то такое писал. =================== Хотя в соседнем топике говорят про пакет winpcap.
Возьми на www.eeye.com их детище - BootRoot и заюзай. Там код, который ставит себя как хук на NDIS и ждет особым образом сформированного пакета. Получив его, передает управление на данные, находящиеся в пакете. Используя метод установки (хук int13 при старте) можешь сделать аналогичное действие. Чтобы хукнуть int13 можешь перезаписать код BootLoader на сетевой карте (если она есть) а предыдущий оригинальный код оттуда можно сжать apLib например и положеть в конец своего кода - а при получении управления в ходе загрузки биоса поставить хук на int13, распаковать оригинальный код, передать на него управление, а затем вернуть управление биосу. В хуке Int13 ждешь загрузки ядра, снимаешь хук с int13 и ставишь хуки на NDIS, в котором ставишь свою сигнатуру. Затем ищешь свою сигнатуру из своего драйвера и ставишь джампы ан свой код в драйвере. При нормальном раскладе тебе и Patch protection не помешает (ибо до первичной проверки все будет установлено).
Как писать в PCI ROM - смотри в даташитах Realtek, например. Дополнительно, при первичной установке тебе надо поднять флаг биоса, отвечающий за загрузку по сети (теоретически можно каждый раз его поднимать, сохранив в своем коде оригинальное значение - если оригинальное не предполагает загрузки, можешь не разжимать оригинальный BootLoader и сразу возвращать управление биосу)