Photo: 20thCentFox/Everett Collection
Photo: 20thCentFox/Everett Collection

«Лежа на крыше своей собачьей конуры, Снупи большую часть времени проводил в мечтах. В одном из своих повторяющихся полетов фантазии он был летчиком-асом времен Первой мировой войны, который в спортивных очках пилота и развевающемся красном шарфе, с собачьей будкой, превращенной в истребитель, вел ожесточенные воздушные бои против своего заклятого врага, Красного барона…»

Недаром говорят, что сложность ассоциативных связей мышления человека может соперничать только с вывертами его же подсознания. Разбирая в очередной раз «завалы» закладок и записей, я наткнулся на стенограмму с Black Hat Asia 2014, где Гленн Уилкинсон представлял дрона-перехватчика “Snoopy” на базе Phantom DJI, с авторским фреймворком на борту. Сам фреймворк был разработан в 2012 и представлялся на ZeroNights,2013 в Москве в докладе «Машины, обманувшие доверие». Фреймворк Snoopy оказался очень любопытной вещью, но в процессе поисков я удивился частоте использования клички самого популярного пса из комиксов в прикладных задачах. Дальнейшие поиски выявили просто запредельное количество самых разнообразных вариантов Snoopy, и я хочу представить вашему вниманию небольшую выборку самых интересных, на мой взгляд, проектов.

1.«Мелочи имеют значение, Чарли Браун»!

Начнем, собственно, с виновника торжества фреймворка Гленна Уилкинсона. Этот программный пакет является распределенной модульной системой сбора произвольных данных, перехвата, анализа и визуализации, написанный в составе группы SensePost, сейчас являющейся частью команды этичных хакеров Orange Cyberdefense. Изначально система писалась для работы на обычных мобильных устройствах под управлением серверной части, установленной на лэптопе.

Фреймворк одновременно запускал несколько плагинов, собирающих данные, которые запрашивались основным процессом и записывались в локальную базу данных. Данные синхронизировались между клиентами и сервером. Собранные данные извлекались и собирались на одной машине оператором, и скармливались комбайну Maltego для изучения данных. В дальнейшем фреймворк повзрослел до второй версии и был модифицирован для использования в дронах, один из которых и был представлен на Black Hat. Сейчас проект закрыт, но продолжает жизнь в виде форков, два из которых мне приглянулись больше всего — Peanuts и Snoopy-Pi (оптимизированная версия для использования на платформе Raspbian).

Версия

Язык

Лицензия

Последний коммит

v.0.1

Python, Shell, JavaScript, Perl

MIT license

2012

v.2.0

Python, Shell, Smarty

CC BY-NC-SA 4.0

2015

Peanuts v.3.9

Python

MIT license

2021

Snoopy-Pi

Python, Shell, Smarty

CC BY-NC-SA 4.0

2019

2. «Это твой пёс, Чарли Браун»!

Вторым номером представляю Snoopy Logger. Эта небольшая библиотека, перехватывающая системные вызовы execv() и execve() и логирующая все данные в системе Linux/BSD. Логирование осуществляется через syslog. На Хабре есть небольшая статья об этом.

Версия

Язык

Лицензия

Последний коммит

v.2.4.15

C, Shell, M4, Makefi

GPL-2.0 licens

2022

3. Реактивный Снупи.

React Native Snoopy — это инструмент профилирования для React Native, который позволяет отслеживать React Native Bridge (промежуточное звено между нативным кодом и js) с помощью функции MessageQueue. Позволяет обнаружить проблемы с производительностью, а также выявить паразитные связи и произвести оптимизацию кода для улучшения стабильности. Намного лучше об этом Снупи расскажет сам автор.

Версия

Язык

Лицензия

Последний коммит

v.1.33.0

JavaScript

MIT License

2018

4. «Лови их, Чарли Браун»!

Этот Снупи — настраиваемый многопоточный анализатор пакетов и парсер. Производит захват пакетов и кодирование их в файлы Pcap или вывод в консоль. При захвате пакетов можно указать различные параметры конфигурации, чтобы отфильтровать нужные пакеты. На данный момент поддерживает протоколы Ethernet, IPv4, IPv6, ARP, TCP, UDP, DNS и TLS.

Версия

Язык

Лицензия

Последний коммит

v.0.3.2

Rust, Dockerfile

MIT License

2020

5. «It's Flashbeagle, Charlie Brown»!

Snoopy-operator — оператор захвата сетевых пакетов и анализа потока, инструмент командной строки, вдохновленный nsenter, взаимодействует с утилитами Linux и модулями K8s. Управляет несколькими заданиями, запуская специальные инструменты (tcpdump, iperf, tc, iproute, eBPF) для выбранных или помеченных модулей на нескольких узлах, собирая ценную информацию, не изменяя объект модуля. Оператор использует podtracer, утилиту, которая невероятно упрощает запуск всех упомянутых инструментов и многих других. Используя экземпляры podtracer в качестве экземпляров запланированных заданий, многие важные фрагменты информации могут быть собраны и переданы из множества разных узлов одновременно. На данный момент успешно протестированы только инструменты, связанные с сетью. Проект находится в стадии активной разработки, поэтому в бой ему пока рановато.

Версия

Язык

Лицензия

Последний коммит

tech preview

Go, Makefile, Dockerfile, Shell

Apache-2.0

2022

6. Очень маленький Снупи.

Небольшой портативный анализатор пакетов для командной строки Windows. Он не устанавливает никаких драйверов, типа libpcap, и содержится в одном исполняемом файле. Также это всего 200 строк кода. Привязывается к сетевой карте, указав ее IP-адрес в командной строке. В настоящее время Snoopy не допускает никакой фильтрации, но это можно сделать, направив вывод в команду findstr. Функциональность ограничена только прослушиванием TCP, UDP, ICMP и т. д. Вы не можете видеть ничего ниже третьего уровня. Однако, если вам просто нужно проверить трафик, идущий на определенный IP-адрес или номер порта этот Снупи в самый раз.

Версия

Язык

Лицензия

Последний коммит

v.1.3

C, Batchfile

Apache-2.0

2021

7. «Это элементарно, Вудсток»!

Snoopy, первый в своем роде фреймворк, с помощью которого можно делать массовые фингерпринты, соблюдая модель конечных запросов для сбора образцов трафика. И это только часть его возможностей. Он использует методы статистического анализа для прогнозирования изменений, вызванных различными пользовательскими особенностями. Не очень сложная комбинация функций Snoopy и ML обеспечивает 97%-ю точность предсказания поведения пользователей. Snoopy состоит из базы данных, предназначенной для хранения информации (фингерпринтов и дополнительных метаданных), и двух функциональных модулей: профилирования и прогнозирования.

Версия

Язык

Лицензия

Последний коммит

beta

Python

2022

8. «Наверное, я слишком доверчив, Чарли Браун? Нет, не слишком. Вся беда в том, что ты слишком юн. — Я работаю над этим».

Это, пожалуй, самый оригинальный Снупи из всех, что мне попались. Система для проведения технико-экономического обоснования машинного обучения перед разработкой дорогостоящих моделей машинного обучения. Так сказать тренажер «на кошках» для ML инженеров.

Ease.ml/Snoopy — библиотека для оценки эффективности моделей машинного обучения при заданном распределении данных. Ядром библиотеки является мощный и эффективный в вычислительном отношении оценщик коэффициента ошибок Байеса (BER). Подробная статья об этом [ENG]

Версия

Язык

Лицензия

Последний коммит

beta

Python, SCSS, CSS, Jupyter Notebook, JavaScript, HTML, Shell

MIT License

2022

9. «Snoopy And The Gang»!

Программный пакет (в некотором роде прошивка) для пользовательского мобильного робота Snoopy. Включает локализацию фильтра частиц, планирование пути, навигацию и др. Это университетский проект (так что качество кода, соответствующее). Робот оснащался лидаром, камерой RGB-D, датчиками движения, манипулятором uArm и NUC.

Система локализации была протестирована в лабиринте, как в глобальной локализации, так и для отслеживания позы.

Версия

Язык

Лицензия

Последний коммит

C++, CMake, Python

2017

10. Денежный Снупи.

Этот Snoopy подписывается на события в указанной вами сети Ethereum и выдает статистику и информацию о блоках, которые он собрал с момента своего запуска.

Версия

Язык

Лицензия

Последний коммит

v.0.6.23

Go, Smarty, Shell, Dockerfile

public domain

2022

11. Снупи в космосе: Секрет Apollo 10.

И последний экземпляр в этом хит-параде — Snoopy69. Код и результаты симуляции Монте-Карло на этапе спуска Apollo 10 LM. В мае 1969 года Аполлон-10 (американский пилотируемый космический корабль, совершивший финальный испытательный полёт к Луне в полной конфигурации) сбросил спускаемый лунный модуль на эллиптическую лунную орбиту с малым наклонением. Широко распространено мнение, что эта орбита была нестабильной и ступень столкнулась с Луной вскоре после того, как была сброшена. Однако моделирование показывает, что орбита на самом деле квазистабильна и ступень все еще может находиться на орбите.

Интересно, что командный модуль имел позывной «Чарли Браун», а лунный модуль — «Снупи».

Версия

Язык

Лицензия

Последний коммит

Python

2020

В этом топике мы познакомились с наиболее интересными разработками, носящими имя одного из самых известных псов популярной культуры. Некоторые проекты из этого списка заслуживают более подробного описания. В следующих статьях я расскажу о некоторых из них.

P.S. Занимаясь подготовкой этой статьи, я четко ощутил разницу между уровнем современной и старой мультипликации. Несмотря на современные технологии трехмерной компьютерной анимации, мощные вычислительные и графические возможности, большая часть современных мультфильмов проигрывает мультфильмам 60-80х годов подчистую. И дело тут, разумеется, не в визуальных возможностях и кассовых сборах, а в смысловом наполнении и сюжетных ходах. Сегодня красивая картинка по большей части вытеснила собой почти все остальное, за что мы любим мультфильмы. Как говорится: «Красиво, но ни о чем»! Не хочется долго распинаться о превосходстве экранизации А.Милна Федором Хитруком (это же очевидно), о невероятно талантливых Уиле Ханне и Джо Барбере, о гениальном Диснее, но сегодняшние сюжеты и диалоги по сравнению со старыми явно говорит о деградации сценарного мастерства (за редким исключением).

Яркое тому свидетельство — мультфильмы о Снупи. Я приведу несколько цитат из «детского» мультфильма, и вам сразу станет понятно, о чем я тут написал.

Больше цитат

— Так у тебя теперь сестренка, а, Чарли Браун?

— Да, и я так счастлив…

— Счастлив? Думаю, ты не в курсе, что перенаселение – это серьезная проблема!


— Я рисую футбольный стадион и шестьдесят тысяч болельщиков.

— Я насчитала десять.

— Проблемы с парковкой.


— «Нет!» — моя новая философия! На все, что мне говорят, я отвечаю: «Нет!»

— Это твоя новая философия?

— Да! То есть «нет!» Ты испортил мою новую философию...


Иногда я лежу без сна всю ночь и думаю: «Не стоит ли в корне изменить свою жизнь?» И тогда раздается голос из темноты: «Только этого ещё не хватало — переоформлять столько документов...»


— Учительница задала нам на следующей неделе прочесть биографию. Чью бы биографию нам прочесть, сэр?

— Того, кто прожил очень короткую жизнь.


— Советы по красоте. Как выглядеть моложе: не рождайся так скоро.


— Всю свою жизнь он старался быть хорошим человеком. Однако много раз он терпел поражение. В конце концов, он был всего лишь человеком. Он не был собакой.

— Будь собой. Никто не может сказать, что вы делаете это неправильно.

— В моей жизни нет цели, нет направления, нет цели, нет смысла, и все же я счастлив. Я не могу понять. Что я делаю правильно?

Вчера я был собакой. Сегодня я собака. Завтра я, наверное, еще буду собакой. (Вздох!) Так мало надежды на продвижение!


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Комментарии (0)