В этой статье попробую сформировать свои мысли для повторения конструкции автоматического перехвата рукопожатий Wi-Fi.
Официальный сайт проекта: https://pwnagotchi.ai/
Страница для тех у кого руки растут из правильного места: https://pwnagotchi.ai/installation/
Что бы не копировать всё, что есть на сайте я расскажу с трудностями которыми мне придётся столкнуться при повторении конструкции. И очень кратенько, в виде иерархического дерева, мои шаги изготовления Pwnagotchi.
Подтолкнуло меня к этому видео которое я выкладываю ниже.
Ну нравятся мне такие гиковские прикольчики. Давайте для начала определимся, что нам понадобится для этого проекта.
- Raspberry Pi Zero W
- SD карта. Емкость не менее 8Гб, хорошего качества и скорости. (начиная с UHS-I).
- кабель micro-USB. Который не только сможет заряжать но и передавать данные.
- Аппаратные часы. DS3231 посмотреть можно тут.
- Дисплей. Тут я позволю себе зазместить переведённый текст с официально сайта на этой странице.
Аппаратные часы
Если вы используете Raspberry Pi 0 Вт для корпуса вашего Pwnagotchi, вы должны знать о том факте, что у него нет аппаратных часов. Это означает, что, если устройство каким-либо образом не подключено к Интернету (либо с помощью кабеля USB и совместного использования подключения к хосту, либо через модем BT), когда устройство выключено, его время не синхронизируется с реальным миром, показывая неправильное время безотказной работы и, как правило, используя неверные дату и время в журналах, а также всякий раз, когда выполняется другое действие, основанное на абсолютном времени.
Эту проблему можно недорого решить с помощью аппаратных часов, небольшого чипа с батарейкой, который может оставаться включенным, пока остальные части устройства выключены … это все равно что подарить Pwnagotchi наручные часы! 😀
Можно использовать любую модель, совместимую с I2C (обычно на базе PCF8523, DSL1307 или DS3231), и ее легко установить, следуя этому руководству.
Обычно их подключают непосредственно к GPIO через их разъем, но можно демонтировать разъем и просто припаять их непосредственно к портам на печатной плате, чтобы сэкономить место (обязательно изолируйте микросхему клейкой лентой).
Дисплей
Если вы хотите использовать веб-интерфейс (вместо дисплея e-ink, прикрепленного к RPi0W вашего устройства), чтобы видеть лицо вашего Pwnagotchi, ознакомьтесь с документом веб-интерфейс для получения более подробной информации об использовании веб-интерфейса.
Если вместо этого вы хотите в полной мере насладиться прогулкой и буквально созерцать симпатичную мордашку автофокусировки вашего устройства, поддерживаемые модели дисплеев e-ink:
- Дисплей Waveshare eInk 2,13 дюйма (как V1, так и V2) *
- Сравнение продуктов (прокрутите вниз до
Selection Guide
) - GitHub
- * Waveshare V2 является официально поддерживаемым дисплеем e-ink для Pwnagotchi. Смотрите Рекомендации для получения дополнительной информации. Waveshare V2 можно отличить от V1 по наличию красной наклейки на экране.
- Сравнение продуктов (прокрутите вниз до
- Дисплей Waveshare eInk 2.7 ”
- Модуль отображения Waveshare eInk 1.54 ” (B)
- Pimoroni Inky pHAT
- Экран eInk от PaPiRus
- Экран eInk DFRobot
Перед покупкой дисплея ознакомьтесь с Рекомендациями для получения более подробной информации о выборе правильного дисплея.
ВНИМАНИЕ!
Не все дисплеи созданы одинаково! TFT-дисплеи, например, работают аналогично дисплеям HDMI, и они НЕ поддерживаются. В настоящее время все официально поддерживаемые дисплеи eInk являются дисплеями SPI. Если вы все еще заинтересованы в использовании неподдерживаемых дисплеев, возможно, вы сможете найти предложенный сообществом взлом в разделе “Экраны” на странице “Хаки”.. Мы не несем ответственности за то, что вы сломаете, пытаясь использовать какой-либо дисплей, который официально не поддерживается командой разработчиков!
Цветные и чёрно-белые E-Ink дисплеи
Некоторые из поддерживаемых дисплеев поддерживают как черно-белую, так и цветную версии. Один из распространенных вопросов, есть ли значимые различия между ними. Есть:
- Частота обновления цветных дисплеев намного ниже. В некоторых случаях это может занять до 15 секунд; если вы хотите избежать низкой частоты обновления, мы рекомендуем вам использовать черно-белые дисплеи.
- 3-цветные 2,13-дюймовые дисплеи Waveshare имеют немного меньшее расположение пикселей (104×212) по сравнению с их черно-белыми аналогами (122×250).
- Мы рекомендуем вам использовать Waveshare B & W V2.
Рекомендации
- Экран Waveshare V2 является официально поддерживаемым экраном e-ink по следующим причинам:
- поддерживает частичное обновление экрана, что позволяет избежать появления черных экранов между полными обновлениями.
- улучшенная визуализация элементов пользовательского интерфейса шрифтов.
- имеет более высокое функциональное разрешение по сравнению с Inky pHATs.
- в нем всегда будут самые обновленные и поддерживаемые элементы пользовательского интерфейса; Основной разработчик Pwnagotchi (@evilsocket) будет тестировать новые функции исключительно на Waveshare V2s.
- дальнейшая поддержка других моделей дисплеев e-ink, таких как Inky pHAT’ полностью зависит от постоянного вклада пользователей в код.
- Разница между дисплеями Waveshare V2 и V1 Основное различие между дисплеями Waveshare 2,13 дюйма V1 и V2 заключается в эффекте ореола изображения. Эта проблема возникает при использовании частичного обновления изображения. В версии V2 меньше проблем с ореолами, чем в версии V1. Полноэкранное обновление может очистить старые следы ореолов, поэтому вы можете использовать плагин
screen_refresh
для перерисовки экрана после настраиваемого количества обновлений экрана. - Избегайте использования 3-цветного дисплея Waveshare eInk. Время обновления составляет 15 секунд. Его можно запускать намного быстрее с небольшим риском выгорания, установив для цвета значение “fastAndFurious”, что сокращает время обновления примерно до 1 секунды. Это может повредить дисплей, поэтому используйте его, только если вы понимаете степень риска.
- Избегайте Pimoroni Inky pHAT v1. Они сняты с производства из-за неисправного источника аппаратных компонентов, используемого при производстве, что привело к высокой частоте отказов.
- Время обновления Pimoroni Inky pHAT составляет несколько секунд. Доступно обновление, позволяющее сократить время обновления до субсекунды, хотя и увеличивает риск выгорания или артефактов, если установить цвет на “Быстрый и искаженный”, это может повредить дисплей, поэтому используйте его, только если вы понимаете риск.
- Дисплей DFRobot поддерживает частичное обновление, две аппаратные кнопки GPIO, а также сквозной заголовок для подключения других устройств, таких как последовательные модули GPS, RTCS, светодиоды и т.д.
Для прошивки raspberry нам потребуется сама прошивка которую всегда свежую можно скачать по этой ссылке и сама прогамма balenaEtcher.
Чтобы написать свой образ Pwnagotchi с помощью balenaEtcher:
- Загрузите последнюю версию файла Pwnagotchi .img.
- Проверьте контрольную сумму SHA-256 в файле .img
- Скачайте balenaEtcher и установите его.
- Подключите устройство чтения SD-карт с SD-картой внутри.
- Откройте balenaEtcher и выберите на своем жестком диске Raspberry Pi
.img
или.zip
файл, который вы хотите записать на SD-карту. - Выберите SD-карту, на которую вы хотите записать свой образ.
- Просмотрите выбранные варианты, затем нажмите
Flash!
, чтобы начать запись данных на SD-карту.
Подождите, прежде чем извлекать SD-карту, так как вам нужно будет создать на ней последний файл с начальной конфигурацией.
ВНИМАНИЕ!
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ:Поскольку мы перешли с yaml на toml в качестве языка конфигурации, вы, вероятно, захотите взглянуть на справочник toml. При обновлении со старой версии pwnagotchi ваша старая конфигурация будет загружена и автоматически сохранена в новом формате toml. Старая конфигурация не будет удалена, но больше не будет использоваться. В будущем поддержка yaml будет полностью прекращена.
Начальная конфигурация
Для начальной настройки самый простой способ – создать новый config.toml
файл boot
раздела SD-карты. Этот раздел должен быть легко доступен с вашего компьютера независимо от вашей операционной системы, поскольку это простой FAT32.
В этом процессе вы можете определить название вашего устройства, какую сеть внести в белый список и тип используемого дисплея. Ниже приведен пример конфигурации устройства с дисплеем Waveshare V2, более подробные инструкции по настройке приведены в разделах ниже.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
main.name = "pwnagotchi" main.lang = "en" main.whitelist = [ "EXAMPLE_NETWORK", "ANOTHER_EXAMPLE_NETWORK", "fo:od:ba:be:fo:od", "fo:od:ba" ] main.plugins.grid.enabled = true main.plugins.grid.report = true main.plugins.grid.exclude = [ "YourHomeNetworkHere" ] ui.display.enabled = true ui.display.type = "waveshare_2" ui.display.color = "black" |
Программное обеспечение установит этот файл в /etc/pwnagotchi/config.toml
(и удалит его с SD-карты) во время загрузки.
После первой загрузки вы можете открыть /etc/pwnagotchi/config.toml
файл (либо через SSH, либо напрямую отредактировав содержимое SD-карты с компьютера с кард-ридером), чтобы переопределить конфигурацию по умолчанию своими пользовательскими значениями.
Выберите язык вашего устройства
Pwnagotchi по умолчанию отображает свой пользовательский интерфейс на английском, но может говорить на нескольких других языках! Если у вас все в порядке с английским, вам не нужно делать здесь ничего особенного.
Но если вы действительно хотите изменить, на каком языке Pwnagotchi отображает свое состояние, вы можете изменить main.lang
на один из поддерживаемых языков:
- Английский (по умолчанию)
- Немецкий
- Итальянская
- Французский
- Русский
- Голландский
- Греческий
- Шведский
- Македонский
- Ирландский
- Японский (* установите ui.font.name значение “шрифты-японский-готический”*)
- Польский
- Португальский
- Португальский (бразильский)
- Болгарский
- Украинский
- Чешский
Если вы хотите добавить новый язык (или улучшить существующий перевод!), вы можете ознакомиться с документом “Добавление языка” для получения более подробной информации.
Восстановление резервной копии
Если вы хотите восстановить резервную копию вместо этого, вы можете скопировать содержимое /etc/pwnagotchi резервной папки в загрузочный раздел FAT32 как /boot/pwnagotchi. Таким образом, вся папка, содержащая конфигурацию и пару ключей RSA, будет перемещена в /etc/pwnagotchi во время загрузки. Восстановление этой папки таким способом позволит устройству загрузиться без необходимости генерировать новую пару ключей RSA, операция, которая требует времени и была бы совершенно бессмысленной, если резервную копию все равно нужно восстанавливать.
Учитывая, что загрузочный раздел FAT32 ограничен по размеру, другие папки и файлы, являющиеся частью резервной копии, необходимо будет скопировать вручную либо на SD-карту, если ее можно смонтировать на главном компьютере, либо через SSH с подключением по кабелю или Bluetooth, как описано в следующих разделах.