Здравствуйте, Аноним, Вы писали:
O>>TarasCo был прав. O>>От LSP в конце концов отказались, угрохав кучу времени, сил, денег и нервов. O>>Если интересно, могу написать более подробно.
А>Конечно интересно, я думаю не только мне
LSP — тяжелая штуковина.
И по ней практически отсутствует документация, руководства.
В гугле нарыл несколько примеров, но они все, без исключения,
были глючными, либо работали с ограничениями. Популярный сэмпл от
Comodia вообще завелся только на Vista, а на XP работать отказался.
При этом технология реально используется, вроде бы даже в Dr.Web и
NOD32, хотя за эти данные ручаться не могу.
Плюсы LSP заключаются в том, что фильтрация происходит в user mode, и
для запуска на Vista 64 и выше не требуется цифровая подпись.
Ну а минусы в его сложности и глючности. Лично мне в одиночку осилить
LSP дальше тривиальных примеров не удалось. Масса сложностей и
непонимания посыпалась еще на этапе построения каркаса — а это порядка
двадцати тысяч строк. Цифры, кстати, говорят сами за себя.
Примерно полгода бился, а потом плюнул окончательно.
Благо, заказчики системы отнеслись с пониманием и профинансировали.
И еще. Тут где-то проскакивала информация, что некоторая часть
трафика все-таки идет мимо LSP. Ключевые слова — http.sys.
Теперь я один из тех, кто никому не советует брать LSP за основу
фильтра или security-продукта.
Если копать глубже, есть два других пути для фильтрации
трафика на транспортном и прикладном уровне — это WFP и TDI.
В первом случае, правда, придется забыть про Windows XP, но этот
час уже не так и далек. Думаю, еще годика четыре и вопрос поддержки
приложениями этой версии Windows не будет стоять (так остро).
Во втором случае начинается довольно скользкая территория, где
масса недокументированных нюансов, начиная от корректной установки
драйвера и поддержки PnP/питания до обработки ситуаций с задержкой
IRP и присутствием выше в стеке других фильтров — а всякие антивирусы
тоже любят TDI и, быть может, поэтому Microsoft до сих пор не
смогла до конца удалить эту "нечисть" из системы (см. tdx.sys).
Ну а если копнуть еще глубже, то вопрос технологий второстепенный.
Какой бы способ не выбрать, настоящие сложности встают тогда,
когда нужно работать непосредственно с трафиком.
Предположим, стоит задача — фильтровать HTTP-контент и "запикивать"
или вообще вырезать запрещенные слова. И сразу масса вопросов,
которые предстоит решить.
1. Как определить, что поток данных относится к HTTP ?
Была такая
тема, кстати.
По порту 80 — слишком грубо, HTTP может пойти через другой порт на
каком-нибудь прокси-сервере. Также и через порт 80 может пойти
другой трафик (теоретически). Значит, нужен HTTP-парсер.
И парсер не просто теоретически корректный, а такой, который бы
умел отрабатывать ситуации, не специфицированные в протоколах HTTP,
но встречающиеся в настоящих реализациях.
2. Что делать, если ответ сервера приходит в gzip/compress/deflate ?
"Рубить" Accept-Encoding не вариант, хотя бы потому, что некоторые
серверы могут, опять же вопреки спецификациям, возвращать
компрессированный ответ, руководствуясь заголовком User-Agent
(встречал на практике). Следовательно, нужна либа для декомпресси
"на лету". Но тогда как быть с Content-Length ответа ? Вывод один —
преобразовывать ответ в chunked. Справимся, если соединений будет
пятьсот или шестьсот (это не редкость) ? А если у пользователя
медленное соединение, а нам нужно задержать несколько первых килобайт,
чтобы определить и подправить нужные заголовки ? А если сервер
поддерживает только HTTP/1.0, где Transfer-Encoding вообще не
определен ? А еще есть всякие Content-MD5 и т.д.
В общем, работы немерено, гораздо серъезнее, чем написание
"какого-то" там TDI-фильтра.
3. Больной вопрос — кодировка содержимого. С этим аспектом даже
лучшие браузеры не всегда справляются. Что, если нужно резать
слово "х*й", а кодировка ответа неизвестна ? Подключать еще и
HTML-парсинг, чтобы заглянуть в <META http-equiv> ?
Если у пользователя одна страница в кодировке Windows-1251, а
другая в UTF-8, то и слова-образцы нужно перекодировать для
каждой страницы по своему. Соответственно, даже если иметь
словарную базу на 200-300 слов, то для каждого соединения
придется держать ее перекодированную надлежащим образом копию.
Мрак.
4. Как поступать с шифрованными соединениями ?
Все, что приходит на ум — махинации с подменой сертификата на уровне
TCP, как это делает тот же Fiddler. При этом не факт, что все
браузеры "примут" такой сертификат, если он будет установлен в
корневое хранилище, а не в их собственные и предназначенные для
этого локации.
5. Производительность.
Да, хорошо все это дело гонять на четырехъядерном Intel-е с несколькими
гигами ОЗУ и быстрой сетью. А вот снесите-ка свою поделку на старенький
комп с Celeron-ом или Sempron-ом, где Dial-Up и RAM 256 Mb.
Почувствуй, как говорится, разницу.
6. Совместимость со сторонним ПО.
Тут, откровенно говоря, начинается цирк.
Если взять список из двадцати-тридцати наиболее популярных продуктов
безопасности, то наверняка хотя бы с двумя-тремя из них можно поиметь
проблемы совершенно идиотического характера. Стопроцентного решения
этой проблемы, на мой взгляд, не существует — антивирусы обычно
устанавливают эксклюзивный контроль над системой, и могут делать это в
очень агрессивном ключе.
7. Проблемы с пользователями.
А таковые непременно вылезут, и непременно в уродливой форме.
Я о проблемах, а не о пользователях, конечно.
Если заблаговременно не позаботиться об обратной связи, можно
потом месяцами гонять программу на разных машинах и виртуалках,
но так ничего и не выяснить. Приведу пример — у одного нашего
пользователя программа вызвала падение системы и "синий экран",
а произошло это в самом конце удаления программы.
Собрать ничего не удалось — все модули на тот момент уже были
удалены деинсталлятором, никаких полезных данных на "синем экране"
тоже не было. Ничего подобного не происходило ни до, ни после.
Проблемное место вроде нашли, но определить, оно ли было
причиной падения, уже не удалось.
Короче говоря, разработка продуктов такого уровня — дело далеко не
из простых и за нее, даже имея опыт и знания, нужно сразу торговаться
штук на пятнадцать, как минимум, чтобы комфортно провести два-три
месяца за вдумчивым чтением RFC и отладкой в kernel-mode.
А>Исходники именно TDI драйвера? Не поделитесь?
я уже писал, с чего можно начать.
Не смейтесь, это реальный путь, который значительно прибавляет скиллов и
ограждает от попадания в распостраненные, но плохо освещенные ловушки.
Хорошие исходники есть у PCAUSA, Rootkit.com. Человек по имени Thomas F. Divine написал
по теме TDI много интересного. Гуглить обязательно. Некоторые исходники давно уже
платные, но находятся на всяких китайских сайтах. Все, что в WDK хоть каким-то боком
относится к фильтрам, также подлежит прочтению (детальнейшему). И, еще раз
повторю, очень многое по TDI можно узнать здесь, на RSDN, просто задействовав поиск.
Кто хочет, тот, как говорится, найдет
.
А>Я вот тоже начал писать фильтр, задача похожая на вашу (разве что я максимально перемещаю все в юзермод, чтоб исключить ошибки допущенные по неопытности. А>Вроде работает. Но как всегда с начинающими бывает, боюсь что упустил какой-то момент, что может привести к краху системы в ситемах с конфигурациями отличными от тех, где мне удалось его протестировать. Иметь именно правильно написанный образец перед глазами очень бы не помешало
Правильно написанных драйверов данного типа не существует.
Все они работают с определенными "предположениями" по отношению к окружающей обстановке.
Триста шестьдесят четыре дня в году драйвер может нормально работать, а на триста
шестьдесят пятый вдруг откажется, ибо кто-то сверху в стеке задержал TDI_CONNECT, или
детектировал подмену данных в TDI_REQUEST_KERNEL, или завернул соединение на
свой локальный прокси-сервер, или отправил IRP напрямую драйверу tcpip.sys.
Тестировать надо будет очень тщательно.
И обязательно читайте комменты и вообще документацию к найденным в сети примерам.
Тут как в договоре — все, что написано маленькими буквами, бывает важнее всего остального.
Здравствуйте, Michaels1, Вы писали:
M>Как у Вас успехи с LSP? Обещали отписаться M>Может, поделитесь опытом?
TarasCo был прав.
От LSP в конце концов отказались, угрохав кучу времени, сил, денег и нервов.
Если интересно, могу написать более подробно.
Потом продукт все-таки выпустили, взяв за основу самый обыкновенный фильтр TDI.
Программное ядро оказалось значительно проще, хотя тонкостей и недокументированных
особенностей и на этом уровне такое количество, что браться за TDI можно
только тогда, когда предельно хорошо понимаешь работу сетей, протоколов и
вообще когда отдаешь себе отчет в том, что именно делаешь и чего хочешь достичь.
Мне повезло — я попытки с трехсотой нагуглил очень толковые исходники промышленного
уровня (я сейчас не про tdifw), из которых почерпнул чрезвычайно много интересного и
полезного. А еще я месяцами штудировал RFC, писал прототипы, изучал работу браузеров и
веб-серверов. И регулярно пролистывал одни и те же темы на RSDN и WASM, где встречались
хотя бы намеки на TDI, NDIS, LSP и фильтрацию. Фактически, я прочел их все.
Многое в голове прояснилось после этого.
Сейчас в разгаре работа над логическим продолжением первой версии программы, с
учетом приобретенного опыта и знаний. Детали реализации мог бы открыть абсолютно
без сожаления, но не могу, ибо NDA.
O>Так что, как закончу (или паду под Сталинградом) — отпишусь обязательно.
Когда закончишь, не забудь протестить хотя бы под 5тью популярными броузерами. Возможно, сразу же сядишь за версию 2.0 .
Да пребудет с тобою сила
Re[4]: Скрытая фильтрация HTTP (kids-guard)
От:
Аноним
Дата:
03.02.10 13:44
Оценка:
Здравствуйте, Temoto, Вы писали:
T>Смысл был в том, что после развития и обхода текущей защиты ребёнок снова будет смотреть порнушку. Тут, вроде, ваши родители, как раз, против.
я как родитель могу сказать, что когда ребенок найдет скрытый процесс фильтрации трафика и найдет способ как его отключить, то ему уже пора/можно смотреть порнушку
Скрытая фильтрация HTTP (kids-guard)
От:
Аноним
Дата:
31.01.10 10:28
Оценка:
Здравствуйте
Подскажите, какими способами можно фильтровать трафик, который проходит через Web-browser, выделяя какие-то ключевые слова и, если они попадаются, подставлять вместо исходной страницы страницу с предупреждением?
То что я придумал — использовать прокси-сервер вроде Privoxy/Proxomitron, но его ведь очень легко отключить. Из второго — сделать все через WinPcap — насколько я слышал, он позволяет самостоятельно гененрировать пакеты от имени удаленного узла (или я ошибаюсь?) — таким образом можно выдать страницу с Warning.
Еще экзотическое решение — фильтр-драйвер (TDI, но это ведь то же самое что делает pcap,насколько я знаю. Или нет?).
Слышал как-то можно перехватывать пакеты через RawSocks, но смутно представляю как это можно сделать (может кто-нибудь знает, каким образом можно вклинится в HTTP-трафик?)
А есть еще какие-нибудь решения? Был бы очень благодарен
Здравствуйте, Sheridan, Вы писали: S>Прозрачный прокси ака squid+iptables вам поможет.
squid насколько я знаю предусматривает наличие еще одной машины? Для домашнего использования это не совсем подходит. Нужна фильтрация именно на стороне клиента
Приветствую, Анонимус, вы писали:
> squid насколько я знаю предусматривает наличие еще одной машины? Для домашнего использования это не совсем подходит. Нужна фильтрация именно на стороне клиента
Абсолютно верно. Впрочем поднять для дома шлюз на древнем железе не такая уж проблема, особенно для человека, знакомого с компами. Лично у меня шлюз дома уже лет шесть. Удобства — страшная сила...
S>Абсолютно верно. Впрочем поднять для дома шлюз на древнем железе не такая уж проблема, особенно для человека, знакомого с компами. Лично у меня шлюз дома уже лет шесть. Удобства — страшная сила...
Видимо мой вопрос был понят не совсем верно. Это нужно не для меня, а для заказчика. Но в общем-то разобраться хотелось во всем основательно, поэтому я и задал вопрос относительно возможных вариантов, чтобы выбрать наиболее подходящий, а не писать драйверы-фильтры. Спасибо за рекомендацию относительно сквида, но это не совсем то что подходит.
Здравствуйте, Sheridan, Вы писали: S>А заказчик — это частное лицо или контора какая?
Ну, скажем, если ребенок смотрит "не то что надо", нужно корректно обработать ситуацию. Что-то вроде приложения для массового потребления. Использование которого для обычных пользователей проще, чем установка прокси серверов. Это не руткит (если возникли такие подозрения) и не malware.
А>Подскажите, какими способами можно фильтровать трафик, который проходит через Web-browser, выделяя какие-то ключевые слова и, если они попадаются, подставлять вместо исходной страницы страницу с предупреждением?
А>То что я придумал — использовать прокси-сервер вроде Privoxy/Proxomitron, но его ведь очень легко отключить. Из второго — сделать все через WinPcap — насколько я слышал, он позволяет самостоятельно гененрировать пакеты от имени удаленного узла (или я ошибаюсь?) — таким образом можно выдать страницу с Warning. А>Еще экзотическое решение — фильтр-драйвер (TDI, но это ведь то же самое что делает pcap,насколько я знаю. Или нет?). А>Слышал как-то можно перехватывать пакеты через RawSocks, но смутно представляю как это можно сделать (может кто-нибудь знает, каким образом можно вклинится в HTTP-трафик?)
А>А есть еще какие-нибудь решения? Был бы очень благодарен
Надо просто поставить железку с проксей между компьютером ребенка и сетью. Как в Китае.
Потом он узнает про тунели и всё равно будет смотреть порнушку. Вы просто спровоцируете его развитие в области соотв. технологий.
Re[6]: Скрытая фильтрация HTTP (kids-guard)
От:
Аноним
Дата:
31.01.10 13:31
Оценка:
Здравствуйте, Sheridan, Вы писали:
Не хотелось бы применять драйверы вроде winpcap, а решить задачу из режима пользователя. Или если драйвер был бы хотя бы не такой тяжеловесный, как pcap.
Re[2]: Скрытая фильтрация HTTP (kids-guard)
От:
Аноним
Дата:
31.01.10 13:40
Оценка:
Здравствуйте, Temoto, Вы писали:
T>Надо просто поставить железку с проксей между компьютером ребенка и сетью. Как в Китае. T>Потом он узнает про тунели и всё равно будет смотреть порнушку. Вы просто спровоцируете его развитие в области соотв. технологий
Это приложение для многих пользователей, не для конкретного человека. Каждому железку предлагать слишком дорого.
Конечно, на каждую хитрую ж. найдет соответствующий инструмент с еще более крутой резьбой, но здесь задача максимально сузить количество таких вот инструментов . А развитие — так это не так уж и плохо, я думаю родители не будут против.
Приветствую, Анонимус, вы писали:
> Ну, скажем, если ребенок смотрит "не то что надо", нужно корректно обработать ситуацию. Что-то вроде приложения для массового потребления. Использование которого для обычных пользователей проще, чем установка прокси серверов. Это не руткит (если возникли такие подозрения) и не malware.
Для ребенков существуют специальные оболочки виндов. Чтототакое я видал предустановленым на какомто ноуте. Визуально — "детская винда", тобишь винда, оформленая соответствующе, тоже меню пуск, софт итд. Но выполняется как отдельная софтина над виндой.
T>>Надо просто поставить железку с проксей между компьютером ребенка и сетью. Как в Китае. T>>Потом он узнает про тунели и всё равно будет смотреть порнушку. Вы просто спровоцируете его развитие в области соотв. технологий
А>Это приложение для многих пользователей, не для конкретного человека. Каждому железку предлагать слишком дорого.
Если пользователи рядом, то одна железка может обслуживать всех.
А>Конечно, на каждую хитрую ж. найдет соответствующий инструмент с еще более крутой резьбой, но здесь задача максимально сузить количество таких вот инструментов . развитие — так это не так уж и плохо, я думаю родители не будут против.
Смысл был в том, что после развития и обхода текущей защиты ребёнок снова будет смотреть порнушку. Тут, вроде, ваши родители, как раз, против.
Стоит обратить внимание на подобные меры на государственном уровне. Мы не ходим с чипами в головах, которые не дают совершить насилие. Не потому что это дорого или невозможно.
А>А есть еще какие-нибудь решения? Был бы очень благодарен
lsp?
Как много веселых ребят, и все делают велосипед...
Re[4]: Скрытая фильтрация HTTP (kids-guard)
От:
Аноним
Дата:
31.01.10 14:54
Оценка:
T>Смысл был в том, что после развития и обхода текущей защиты ребёнок снова будет смотреть порнушку. Тут, вроде, ваши родители, как раз, против.
Аналогично с розетками, с электроприборами и т. д. Это просто одна из мер T>Стоит обратить внимание на подобные меры на государственном уровне. Мы не ходим с чипами в головах, которые не дают совершить насилие. Не потому что это дорого или невозможно.
Родители принимают решение какие меры принимать или нет. В некоторых странах родители совсем не против — ну это их дело. А мы взрослые люди, и несем ответственность за свои решения.
Re[2]: Скрытая фильтрация HTTP (kids-guard)
От:
Аноним
Дата:
31.01.10 15:02
Оценка:
Здравствуйте, ononim, Вы писали: O>lsp?
Большое спасибо
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте А>Подскажите, какими способами можно фильтровать трафик, который проходит через Web-browser, выделяя какие-то ключевые слова и, если они попадаются, подставлять вместо исходной страницы страницу с предупреждением?
А>То что я придумал — использовать прокси-сервер вроде Privoxy/Proxomitron, но его ведь очень легко отключить. Из второго — сделать все через WinPcap — насколько я слышал, он позволяет самостоятельно гененрировать пакеты от имени удаленного узла (или я ошибаюсь?) — таким образом можно выдать страницу с Warning. А>Еще экзотическое решение — фильтр-драйвер (TDI, но это ведь то же самое что делает pcap,насколько я знаю. Или нет?). А>Слышал как-то можно перехватывать пакеты через RawSocks, но смутно представляю как это можно сделать (может кто-нибудь знает, каким образом можно вклинится в HTTP-трафик?)
А>А есть еще какие-нибудь решения? Был бы очень благодарен
Winsock LSP — лучшее решение. Гораздо проще реализовать, чем NDIS-драйвер, и гораздо меньше
мучений по сравнению с чистым API-перехватом функций ws2_32.dll.
O>Winsock LSP — лучшее решение. Гораздо проще реализовать, чем NDIS-драйвер, и гораздо меньше O>мучений по сравнению с чистым API-перехватом функций ws2_32.dll.
См ветку выше. LSP для организации фильтра редактирующего поток данных — это ппц, все авторы погибли в снегах под Сталинградом. Если LSP используется только для мониторинга — тогда да, все очень просто.
2 автор: если есть коммерческий интерес к LSP и фильтрации HTTP — стукни в личку.
Да пребудет с тобою сила
Re[3]: Скрытая фильтрация HTTP (kids-guard)
От:
Аноним
Дата:
01.02.10 09:16
Оценка:
Здравствуйте, TarasCo, Вы писали: TC>2 автор: если есть коммерческий интерес к LSP и фильтрации HTTP — стукни в личку.
Есть вопрос как к специалисту — вы бы делали только через TDI&WSK-фильтр? нельзя обойтись без драйвера легальными путями?
TC>См ветку выше. LSP для организации фильтра редактирующего поток данных — это ппц, все авторы погибли в снегах под Сталинградом. Если LSP используется только для мониторинга — тогда да, все очень просто.
То есть редактирующий TDI фильтр для новичка в кернелмоде — ето сильно проще?
Как много веселых ребят, и все делают велосипед...
А>Есть вопрос как к специалисту — вы бы делали только через TDI&WSK-фильтр? нельзя обойтись без драйвера легальными путями?
WSK тут вообще не причем, речь наверно шла про WFP? WFP к сожалению, до сих пор содержит критические ошибки в уровнях, поддерживающих фильтрацию данных. MS обещает попроавить, когда — в win7 SP1 может когда то еще? На самом деле, вендеры занимающиеся контент фильтрацией, не зря же "любят" прокси ( при том что локальный прокси — это ужас-ужас ) — это меньшее зло.
O>>То есть редактирующий TDI фильтр для новичка в кернелмоде — ето сильно проще? TC>ну по крайней мере — это принципиально решаемая задача .
некоторые антивири используют LSP для фильтрации POP3. При этом они умудряются вырезать аттачи из писем при необходимости. Так что это тоже решаемая задача.
Как вариант простейшего решения — редиректить коннекты на свой сервер работающий на локалхосте. В случае автора — редиректить все коннекты из браузера (кроме может быть ftp и ssl) на локальный/удаленный http прокси, в котором уже с комфортом фильтровать трафик как он пожелает.
Как много веселых ребят, и все делают велосипед...
Здравствуйте, TarasCo, Вы писали:
O>>Winsock LSP — лучшее решение. Гораздо проще реализовать, чем NDIS-драйвер, и гораздо меньше O>>мучений по сравнению с чистым API-перехватом функций ws2_32.dll.
TC>См ветку выше. LSP для организации фильтра редактирующего поток данных — это ппц, все авторы погибли в снегах под Сталинградом. Если LSP используется только для мониторинга — тогда да, все очень просто.
Я в данный момент занимаюсь созданием модификатора исходящих сетевых пакетов на базе LSP.
Так что, как закончу (или паду под Сталинградом) — отпишусь обязательно.
Здравствуйте, TarasCo, Вы писали:
O>>Так что, как закончу (или паду под Сталинградом) — отпишусь обязательно.
TC>Когда закончишь, не забудь протестить хотя бы под 5тью популярными броузерами. Возможно, сразу же сядишь за версию 2.0 .
На чем основаны такие предостережения ?
В конце концов, все сводится к сокетам, и если есть возможность где-то перехватывать
сетевые пакеты, не прибегая к "тяжелой артиллерии" (NDIS), то это LSP, и так делают
многие антивирусы и анализаторы траффика.
А> я как родитель могу сказать, что когда ребенок найдет скрытый процесс фильтрации трафика и найдет способ как его отключить, то ему уже пора/можно смотреть порнушку
Нифига. Я вот к примеру одно время серьезно размышлял: не открыть ли сервис "отключение parent control за SMS". В настоящее время решил, что не целесообразно. Я это к тому, что ребенку не обязательно самому шарить. Можно спросить у того, кто шарит, а дальше сакральное знание разойдется широкими кругами.
Здравствуйте, ononim, Вы писали:
А>>А есть еще какие-нибудь решения? Был бы очень благодарен O>lsp?
Я так понял lsp отменено в виндос7 а на замену в семерке есть wfp которого еще нет в винXP. Вот такая вот фигня.
Здравствуйте, rsdntchkru, Вы писали:
R>Здравствуйте, ononim, Вы писали:
А>>>А есть еще какие-нибудь решения? Был бы очень благодарен O>>lsp? R>Я так понял lsp отменено в виндос7 а на замену в семерке есть wfp которого еще нет в винXP. Вот такая вот фигня.
Неправда, LSP на Windows 7 есть. А по WFP у меня лично впечатление что разрабатывают его те же люди что занимались LSP. И ту версию что WFP в Vista, и ту что в Windows 7 (они заметно разные!). Недобрые трудоголики в той команде работают судя по всему.
R>>Я так понял lsp отменено в виндос7 а на замену в семерке есть wfp которого еще нет в винXP. Вот такая вот фигня.
R>Неправда, LSP на Windows 7 есть. А по WFP у меня лично впечатление что разрабатывают его те же люди что занимались LSP. И ту версию что WFP в Vista, и ту что в Windows 7 (они заметно разные!). Недобрые трудоголики в той команде работают судя по всему.
так что спокойно можно вдумчиво нaчать курить lsp не опасаясь что однажды написанное для XP не будет работать для семeрки с любыми сервиспаками? обнадежьте мои начинания
R>>>Я так понял lsp отменено в виндос7 а на замену в семерке есть wfp которого еще нет в винXP. Вот такая вот фигня.
R>>Неправда, LSP на Windows 7 есть. А по WFP у меня лично впечатление что разрабатывают его те же люди что занимались LSP. И ту версию что WFP в Vista, и ту что в Windows 7 (они заметно разные!). Недобрые трудоголики в той команде работают судя по всему.
R>так что спокойно можно вдумчиво нaчать курить lsp не опасаясь что однажды написанное для XP не будет работать для семeрки с любыми сервиспаками?
rsdn станет домом лжи если бросаться кванторами всеобщности. теоретически — должно, практически — зависит от конфигурации мануальныхъ девайсов у того кто не испугается трудностей и войдет в этот затхлый лабиринт с подводными стенами.
Здравствуйте, TarasCo, Вы писали:
O>>То есть редактирующий TDI фильтр для новичка в кернелмоде — ето сильно проще? TC>ну по крайней мере — это принципиально решаемая задача .
Алгоритм решения примерно такой:
1)обработать TDI_SEND, с целью вытащить GET запрос
2)проанализировать GET на присутствие нежелательного контента
3)если GET запрос содержит запрос "вредного контента", то заменить его на запрос своей "предупреждающей картинки".
4)завершить обработку текущего irp.
Я правильно описал алгоритм?
Я до конца не понимаю как правильно заменить вредный баннер на свою картинку.
Например было : GET /porno.ico Host www.ya.ru
надо заменить на : GET /warning.jpg Host локальная машина
Верно?
А>>А есть еще какие-нибудь решения? Был бы очень благодарен
F>возможно поставщик интернет услуг предоставляет такую услугу.
Меня вот еще сейчас заинтерсовал вопрос а как такое(фильтрация трафика с вырезом элементов) делается под MacOSX?
пока два пути вижу:
— code inject в Safari и Firefox/Chrome(остальное не актуально) и хук (?) чего?оно же unix-функции read/write libc надо хукать?(а в придачу-connect,чтобы получить file handle socket'ов,etc).
— делать плагины к тому же Safari,etc
как это лучще сделать в данной ситуации?(в ядро макоси СИЛЬНО лезть не хочется)
Здравствуйте, dmitriy_k, Вы писали:
_>Меня вот еще сейчас заинтерсовал вопрос а как такое(фильтрация трафика с вырезом элементов) делается под MacOSX? _>пока два пути вижу: _>- code inject в Safari и Firefox/Chrome(остальное не актуально) и хук (?) чего?оно же unix-функции read/write libc надо хукать?(а в придачу-connect,чтобы получить file handle socket'ов,etc). _>- делать плагины к тому же Safari,etc
Судя по тому, как реализован AdBlock for Safari, задача не из легких
Здравствуйте, okman, Вы писали:
O>Здравствуйте, TarasCo, Вы писали:
O>>>Winsock LSP — лучшее решение. Гораздо проще реализовать, чем NDIS-драйвер, и гораздо меньше O>>>мучений по сравнению с чистым API-перехватом функций ws2_32.dll.
TC>>См ветку выше. LSP для организации фильтра редактирующего поток данных — это ппц, все авторы погибли в снегах под Сталинградом. Если LSP используется только для мониторинга — тогда да, все очень просто.
O>Я в данный момент занимаюсь созданием модификатора исходящих сетевых пакетов на базе LSP. O>Так что, как закончу (или паду под Сталинградом) — отпишусь обязательно.
Как у Вас успехи с LSP? Обещали отписаться
Может, поделитесь опытом?
Re[6]: Скрытая фильтрация HTTP (kids-guard)
От:
Аноним
Дата:
16.07.11 17:50
Оценка:
Здравствуйте, okman, Вы писали:
O>Здравствуйте, Michaels1, Вы писали:
M>>Как у Вас успехи с LSP? Обещали отписаться M>>Может, поделитесь опытом?
O>TarasCo был прав. O>От LSP в конце концов отказались, угрохав кучу времени, сил, денег и нервов. O>Если интересно, могу написать более подробно.
Конечно интересно, я думаю не только мне
O>Потом продукт все-таки выпустили, взяв за основу самый обыкновенный фильтр TDI. O>Программное ядро оказалось значительно проще, хотя тонкостей и недокументированных O>особенностей и на этом уровне такое количество, что браться за TDI можно O>только тогда, когда предельно хорошо понимаешь работу сетей, протоколов и O>вообще когда отдаешь себе отчет в том, что именно делаешь и чего хочешь достичь.
O>Мне повезло — я попытки с трехсотой нагуглил очень толковые исходники промышленного O>уровня (я сейчас не про tdifw), из которых почерпнул чрезвычайно много интересного и O>полезного.
Исходники именно TDI драйвера? Не поделитесь?
Я вот тоже начал писать фильтр, задача похожая на вашу (разве что я максимально перемещаю все в юзермод, чтоб исключить ошибки допущенные по неопытности.
Вроде работает. Но как всегда с начинающими бывает, боюсь что упустил какой-то момент, что может привести к краху системы в ситемах с конфигурациями отличными от тех, где мне удалось его протестировать. Иметь именно правильно написанный образец перед глазами очень бы не помешало
O>А еще я месяцами штудировал RFC, писал прототипы, изучал работу браузеров и O>веб-серверов. И регулярно пролистывал одни и те же темы на RSDN и WASM, где встречались O>хотя бы намеки на TDI, NDIS, LSP и фильтрацию. Фактически, я прочел их все. O>Многое в голове прояснилось после этого.
O>Сейчас в разгаре работа над логическим продолжением первой версии программы, с O>учетом приобретенного опыта и знаний. Детали реализации мог бы открыть абсолютно O>без сожаления, но не могу, ибо NDA.