Flipper Zero — Тамагочи для хакеров
Flipper Zero — проект карманного мультитула для кулхацкеров в формфакторе тамагочи, который я разрабатываю с друзьями. Он умеет открывать домофоны, гаражные ворота, шлагбаумы, клонировать бесконтактные карты, управлять телевизорами. При этом это тамагочи, в котором живет дерзкий кибер–дельфин, который регулярно оскорбляет вас.
Внутри я расскажу как мы к этому пришли.
Я люблю ковырять все вокруг и постоянно таскаю с собой разные железки для этого. У меня в рюкзаке: WiFi–адаптер, NFC–ридер, SDR, Proxmark3, HydraNFC, Raspberry Pi Zero (из–за этого бывают проблемы в аэропорту).Я мечтал об устройстве, которое бы реализовывало типичные сценарии атак, было всегда в боевой готовности и при этом не представляло из себя пачку разваливающихся плат, смотанных изолентой.
После того как была опубликована открытая реализация протокола AirDrop owlink.org и исследование от ребят из HexWay об уязвимостях iOS Apple–Bleee, я стал развлекаться новым для себя способом: знакомиться с людьми в метро, рассылая им картинки через AirDrop и собирая их номера телефонов. Потом я захотел автоматизировать этот процесс и сделал автономную дик–пик машину из Raspberry Pi Zero W и батарейки. Все бы хорошо, но этот девайс было крайне неудобно носить с собой, его нельзя было положить в карман, потому что острые капли припоя рвали ткань штанов. Я попробовал напечатать корпус на 3d–принтере, но результат мне не понравился.
Потом я увидел потрясающий проект pwnagotchi. Это как тамагочи, только в качестве еды он ест WPA–хендшейки и PMKID от Wi–Fi сетей, которые потом можно брутить на GPU–фермах. Мне так понравился этот проект, что я несколько дней ходил со своим pwnagotchi по улицам и смотрел как он радуется новой добыче. Но у него были все те же проблемы: нельзя нормально положить в карман, нет органов управления, поэтому любой пользовательский ввод возможен только с телефона или компьютера.
И тогда я наконец понял, каким вижу идеальный мультитул, которого мне не хватало. Я написал об этом в твиттер и идея понравилась моим друзьям промдизайнерам, которые делают серьезные электронные штуки. Они предложили сделать полноценный девайс, вместо наколенной DIY–поделки. С настоящим фабричным производством и качественно подогнанными деталями. Мы приступили к поиску концепции дизайна.
Первые пробы дизайна
Первые прототипы напечатанные на 3д–принтере
Я решил использовать олдскульный монохромный LCD–дисплей с разрешением 126х64px как на старых телефонах Siemens. Во первых это просто круто, монохромный экранчик с оранжевой подсветкой вызывает у меня неописуемый восторг, эдакий ретро–милитари–киберпанк. Его прекрасно видно на ярком солнце и у него очень низкое энергопотребление, около 400uA с выключенной подсветкой. Поэтому его можно держать в Always–On режиме и всегда выводить изображение. Подсветка будет включаться только при нажатии на клавиши. Такие экраны до сих пор выпускают для всяких промышленных устройств и кассовых аппаратов.
Так выглядят первые девборды на плате Nucleo STM32.
Первые прототипы корпуса мы печатали на 3д-принтере и так выглядели отладочные платы
Изначально все было построено вокруг Raspberry Pi Zero, но потом мы решили выбросить его и делать свою плату с нуля на чипе i.MX6 ULZ. Я лично обожаю Raspberry Pi, но в процессе разработки оказалось, что он просасывает по многим причинам. Самая банальная — его тупо нельзя купить. Даже большие дистрибьютеры имеют в наличии не более пары сотен штук rpi0, а магазины вроде Adafruit и Sparkfun продают не более 1 штуки в руки. Да, есть несколько заводов, которые производят rpi0 по лицензии от Raspberry Pi Foundation, но они тоже не могут отгрузить партии по 3–5 тысяч штук. Выглядит это так, что rpi0 продается по цене на грани себестоимости и больше направлен на популяризацию платформы.
Кроме того что ее нельзя купить, rpi0 имеет много других проблем:
* Мало интерфейсов.
* Старый процессор BCM2835, который использовался еще в первой версии rpi. Горячий и не очень энергоэффективный.
* Нет управления питанием, нельзя отправить плату в сон.
* Устаревший встроенный WiFi которые крашится под нагрузкой в мониторном режиме
и много других причин.
Одна из огромных проблем это как раз поиск современного WiFi чипа который поддерживает мониторый режим и инъекции пакетов и при этом не устарел на 15 лет. Можешь почитать об этом здесь.
Процессор который мы выбрали (i.mx6 ulz) намного энергоэффективней и современнее.
Так выглядели прототипы флиппера вместе с линуксовой платой
Пока мы работали над линуксовой частью флиппера, у нас в руках был почти готовый модуль на STM32, который управлял периферией, экраном, кнопками. Без линукса он умел 433MHz радио, домофонные ключи и RFID карты. Чем не готовый девайс – подумал я. Так мы решили сделать из него отдельное устройство. Теперь флипперов два — Zero и One.
Сейчас все силы брошены на финализацию разработки версии Zero. Поэтому я расскажу подробно о ее функциях. Версия One еще находится в стадии проектирования и ее функции могут измениться.
Прежде всего это тамагочи
Все действия выполняемые на Флиппере комментирует дерзкий дельфин. В режиме простоя он ведет себя как тамагочи, живет своей жизнью и заигрывает с вами. С ним можно поиграть.
Персонаж дельфина списан с появляющегося в конце фильма Джони Мнемоник кибер-дельфина-хакера, который взламывал мозги.
В версии Zero есть один порт USB Type-C для зарядки, гребенка GPIO, глазок инфракрасного порта, отверстия под ремешок
В новых версиях мы переработали джойстик, он стал почти в два раза больше чем в прототипах.
Если будет интересно, я расскажу подробнее о проекте в комментариях.