15 лет назад мы вешали на прерывания резидента, который отправляемые на принтер точки заменял на «раком», а запятые на «боком». Училка по информатике была в экстазе.
Да цели напакостить особо не было даже, просто интересно было сделать. Интернетов не было, всё из книжек, которые еще добыть нужно было. Или из debug.com (и .com тут совсем не домен :-) ).
Небольшие замечания. Перечислены не все способы фильтрации/перехвата трафика
6. Windows Filtering Platform. Самый гибкий способ, позволяющий производить прослушивание/фильтрацию трафика на множестве уровней сетевого стека, но при этом требующий внимания ко множеству деталей.
7. Lightweight NDIS Filters. Простейший способ, допускающий прослушивание/фильтрацию пакетов.
8. ETW (Microsoft-Windows-NDIS-PacketCapture). В частности команда «netsh trace start capture=yes» включает сниффинг пакетов. Самый простой способ: не требует дополнительных драйверов вообще, но работает только в Windows 7
Замечание насчет TDI фильтров: они просто не работают на современных версиях Windows (начиная с Vista). То есть они то нормально встраиваются в стек \Device\Tcp, например, и какие то legacy TDI-клиенты наверное все еще будут использовать TDI для общения с сетью, но вся винда (в том числе afd.sys, который используется WinSock-ом) использует WSK. По моему опыту, TDI фильтры систему не замедляют, встроиться в стек довольно легко, но вот количество нюансов, которые нужно понимать действительно слишком высоко.
На здоровье. Я думаю закончим с NDIS и переберемся на освещение и этой темы. Хотя наверное порядок освещения тем стоило бы поменять, но уж как получилось))
Пишем свой промежуточный драйвер. Часть 1