Самое простое: просмотреть список процессов, классов окон, сервисов, драйверов известных сниферов. Снифер, все таки, не отладчик, для которого зачастую очень актуально "спрятаться" в системе, и для них пишутся плагины для скрытия присутствия. Да и снифать не обязательно нужно прямо в системе, где запущена целевая программа
Просто пройтись по названиям, проверяя совпадение "известными" снифферами/виртуалками? Или есть более изощренный способ?
Можно в Process Explorer поискать именованный мьютекс и по нему находить, его часто юзают чтобы не запускать 2 копии программы. Можно снять md5 если часто обновляется. Все зависит от того с чем имеем дело, какие права на машине и каковы цели. UPD: если сниффер не известен, но например он снифает клавиатуру - проверять на наличие хуков, но тут чем меньше у вас прав - тем меньше шансов.
Сори - сразу не указал - сниффер сетевых пакетов. UPD: Права администратора. Цель - обнаружить анализаторы трафика.
Если под Венду - то народ юзает winpcap в основном, не изобретая велосипедов. Видел тулзы что работают напрямую с TDI из юзермода. Оба варианта отсеиваются на уровне TDI ибо из кернела можно прицепиться к callback который оповещает о наличии входящих данных и например залогировать кому они достанутся. В общем-то вам нужно написать сниффер под winpcap и самому понять как именно он получает ответы, перехватить соответствующий вызов и будет счастье. Но я хоть и не ковырял - думаю он юзает прямые вызовы в ядро минуя хорошо документированный API и само-собой winsock, поэтому попотеть придется неслабо и нужен будет код ring0 чтобы перехватить. + эта затея сильно напоминает firewall, так что взялись вы за сложную штуку Хотя с другой стороны - лазейки тоже всегда есть. Например поискать winpcap, поставить свой хук и посмотреть кому он вдруг понадобился, ибо прямую работу с TDI нечасто используют наши хеккеры, а winpcap нужен очень ограниченному количеству программ Обширный вопрос на самом деле... Хотя может кто - чего придумает. Будем посмотреть.