Flipper — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущие посты [1],[2].
Сайт проекта: flipperzero.one
Пока мы работали над линуксовой частью флиппера, у нас в руках был почти готовый модуль на STM32, который управлял периферией, экраном, кнопками. Без линукса он умел 433MHz радио, домофонные ключи и RFID карты. Чем не готовый девайс – подумал я. Так мы решили сделать из него отдельное устройство. Теперь флипперов два — Zero и One.
Под катом я расскажу про изменения в проекте, и как мы готовимся к краудфандингу.
Чем отличаются версии Zero и One
Flipper Zero
легковесная, компактная версия, построенная полностью на STM32. Умеет работать с основными системами контроля доступа, пультами и радио. Функционал можно расширять своими программами. Думать о ней следует как о продвинутой замене Arduino и Blue Pill со злой прошивкой, которую удобно носить с собой и хекать на ходу.
Flipper One
продвинутая версия имеющая весь функционал Zero плюс отдельный ARM компьютер с Kali Linuх. Это уже более серьезный инструмент для пентеста сетей и систем контроля доступа.
Что изменилось во Flipper Zero
Мы долго экспериментировали с прототипами и немного переработали дизайн. Джойстик стал почти вдвое больше в диаметре. У первых прототипов окошко под экран было ровно по размеру активной области дисплея, из-за этого под малейшим углом часть изображения терялась. Увеличили окошко и подняли экран выше к поверхности. Так обзор стал сильно лучше.
Добавились пины GPIO, этого больше всего просили в голосовании за функции. Логические уровни выходных сигналов 3.3V, при этом пины толерантны к входящим сигналам 5V, то есть можно свободно подключать популярные модули вроде Arduino. Есть отдельные линии питания 3.3V и 5V, так что можно сразу питать модули от Флиппера.
Появился инфракрасный порт для управления телевизорами и кондиционерами.
Так как у нас больше нет Raspberry Pi, на торце пропали порты USB и HDMI. Остался один порт USB Type C, который одновременно используется для зарядки, прошивки, консоли и эмуляции USB slave.
Радио CC1101
Радио теперь сделано на чипе TI CC1101. Мы рассчитываем, что встроенная антенна будет лучше всего работать в диапазоне 433 MHz и терпимо в 868 MHz. Это должно покрыть максимальное число возможных радио систем: пультов, шлагбаумов, дверных звонков, сигнализаций.
Анализатор сигналов
Родная прошивка будет уметь парсить популярные радиопротоколы, используемые в системах контроля доступа, в том числе и алгоритмы с шифрованием вроде KeeLoq.
Инфракрасный порт
Это вторая по популярности функция, которую все просили. Теперь Флиппер умеет управлять телевизорами, кондиционерами, музыкальными центрами и т.д. Из коробки прошивка будет содержать библиотеку сигналов для основных производителей телевизоров, можно будет пробрутить сигнал выключения телевизора, переключения каналов и изменения громкости. Пользователи смогут самостоятельно пополнять библиотеку сигналов.
Функция обучения
Если нужного сигнала нет в библиотеке, его можно будет записать с существующего пульта. Для этого нужно направить пульт в глаз Флипперу и нажать нужную кнопку.
GPIO для подключения к железу
Теперь у Флиппера есть 12 портов GPIO с которыми можно делать что угодно: использовать как программатор, фаззер, USB-адаптер для UART/I2C/SPI. При этом можно не подключать флиппер к компьютеру, а запускать заранее написанные программы прямо из меню, читать вывод на экранчике.
Поддержка Arduino IDE и PlatformIO
Для STM32 можно писать прошивки в хорошо знакомой новичкам среде Arduino IDE или в Visual Studio Code с плагином PlatformIO. При подключении к компьютеру, по умолчанию, флиппер определяется как HID-устройство, поэтому для работы не требует установки драйверов, нужен будет только плагин к среде. Разумеется, писать код можно где угодно и прошивать любыми другими инструментами, поддерживающими работу с STM32.
Библиотека плагинов
В отличие от обычных плат Ардуино, во Флиппер можно залить сразу несколько своих программ и сохранить их в библиотеке для будущего использования. При этом основная прошивка останется рабочей. И даже если вы написали кривую программу, которая ломается и зависает, не позволяет выйти из нее с помощью кнопок, можно перезагрузить Флиппер аппаратно, зажав кнопки назад+влево.
В своих программах можно использовать все аппаратные модули: кнопки, выводить изображение на экран, задействовать радио модуль, GPIO, 125KHz. Мы планируем выпустить удобные библиотеки для работы с аппаратными частями Флиппера в едином формате.
iButton
Контактная площадка iButton существенно переработана. Мы долго искали подходящую форму, чтобы он мог работать одновременно как считыватель ключей, так и сам выступать ключом. Теперь он имеет три контакта: два плюса и один минус.
Что внутри
Так как плата осталась одна, компоновка внутренностей стала более изящной. К вибромотору добавился пьезодинамик для индикации.
Коронавирусный коллапс
Кризис с коронавирусом не обошел и нас. Мы произвели первую партию прототипов в Китае, но тут внезапно началась эпидемия, все сломалось. Уже несколько недель не можем отправить прототипы в Москву. Сейчас производство постепенно восстанавливается, но конца кризиса не видно.
Фото прототипов перед тем, как они застрянут в грузовой компании:
Изначально мы планировали стартануть кампанию в середине апреля, но из-за коронавируса даты сдвинулись. Сейчас мы ждем окончания карантина и продолжаем готовиться к краудфандинговой кампании на Кикстартере. Нам осталось только снять видео на Кикстартер, но пока все локации в Москве закрыты, поэтому мы тихонечко ждем. Как только ситуация чуть-чуть успокоится, мы запустим кампанию. Очень надеемся, что это произойдет в мае, если все не умрут.
FAQ
Как купить?
Предзаказ можно оформить на сайте flipperzero.one. Если вам интересен проект, я очень прошу вас оформить предзаказ, это важно для нас, чтобы прогнозировать объемы.
Это законно?
Это инструмент для исследований. Все его компоненты можно купить по отдельности в магазине. Если встроить WiFi адаптер и 433MHz трансмиттер в маленький корпус и добавить туда экранчик, он не станет от этого более незаконным. Устройство не подпадает под определение спец. средства или прибора для негласного сбора информации. Незаконным может быть ТОЛЬКО его использование с целью нанесения ущерба или для незаконных действий.
Как задонатить?
В данный момент вы можете поддержать меня лично небольшими пожертвованиями на еду через Patreon. Регулярные пожертвования в виде 1$ намного лучше, чем большая сумма за раз, потому что позволяют прогнозировать наперед.
Все заметки по проекту я публикую в свой Telegram-канал @zhovner_hub.
Автор: Павел Жовнер