Guest User

/ra/ nRF24LU1+ Sniffer

a guest
Aug 30th, 2016
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.78 KB | None | 0 0
  1. "Парадный" репозиторий проекта на github: https://github.com/BastilleResearch/mousejack
  2. Содержит доки с полезной инфой, и субмодуль с кодом: https://github.com/BastilleResearch/nrf-research-firmware
  3. О нем-то и пойдет речь ниже.
  4.  
  5. Итак, что же мы видим интересного на данный момент:
  6. Папки prog, src, tools
  7. Makefile
  8. readme.md - в комментариях не нуждается.
  9.  
  10. Начнем с последнего:
  11. [b]Makefile[/b]
  12. Он отвечает за компиляцию и создание бинарника [b]dongle.bin[/b] который будет загружен на ваш донгл при прошивке. dongle.bin - это и есть та прога, которая исполняется на nRF24LU1 и отвечает за всю хуйню. Все прочие питон-скрипты (из папки tools) служат лишь для передачи информации по USB и удобного отображения данных.
  13.  
  14. [b]prog[/b]
  15. Эта папка содержит все, что касается прошивки.
  16. Внутри мы увидим 2 папки:
  17. [u]teensy-flasher[/u] - прошивка через SPI, при помощи Teensy (https://www.pjrc.com/teensy/teensy31.html), ардуино-совместима.
  18. [i]lib[/i] - ничего ценного
  19. [i]python[/i] - spi-flash.py передает на Teensy файл, ждет, пока он загрузится по SPI ну и делает проверку. spi-dump.py читает, что находится в памяти донгла.
  20. [i]src[/i] - тут собственно программа, исполняемая на Teensy. Коммуникация с компом при помощи Serial, с nrf - по стандартной либе SPI. Как видим никаких библиотек производитель не предлагает, все написано через регистры.
  21. [u]usb-flasher[/u]:
  22. [i]logitech-usb-flash.py[/i] - оказывается Logitech Unifying Dongle (пикрил) тоже можно прошить для наших нужд. Похоже он основан на nRF.
  23. [i]logitech-usb-restore.py[/i] - вернет на ваш Logitech Unifying Dongle исходную прошивку.
  24. [i]unifying.py[/i] - вспомогательный класс про все тот же Logitech Unifying, содержит все необходимые команды.
  25. [i]usb-flash.py[/i] - а это скрипт для прошивки схем на nRF24LU1, таких как crazyradio. Им можно воспользоваться, если пришедший с aliexpress донгл содержит дефолтный bootloader, в противном случае придется шить через SPI.
  26.  
  27. [b]src[/b]
  28. Тут содержится код, из которого компилится dongle.bin. Код, исполняемый прямо на свистке.
  29. [i]main.c[/i] - входная точка
  30. [i]nRF24LU1P.h[/i] - всевозможные регистры и команды для низкоуровневой работы с периферией устройства. Взято из документации.
  31. [i]radio.h, radio.c[/i] - здесь уже более высокоуровневая работа с радио, а так же SPI (когда устройство уже прошито, можно подключать и через SPI вместо USB)
  32. [i]usb.h, usb.c[/i] - вся высокоуровневая работа с USB.
  33. [i]usb_desc.h, usb_desc.c[/i] - тут собраны константы USB-дескриптора (инфа о себе, которую шлют все усб девайсы по запросу хоста).
  34.  
  35. [b]tools[/b]
  36. Здесь все скрипты, которые взаимодействуют с прошитым устройством.
  37. [u]lib[/u] - папка со сравнительно низкоуровневым кодом. Очень важный файл [i]common.py[/i], там почти вся логика.
  38. [i]nrf24-continuous-tone-test.py[/i] - запускает встроенный в nRF тестовый режим, подача сигнала на заданном канале с постоянным тоном (около 300кГц).
  39. [i]nrf24-network-mapper.py[/i] - я так и не понял, что он делает. Читайте readme.
  40. [i]nrf24-scanner.py[/i] - сканирует каналы в поиске девайсов.
  41. [i]nrf24-sniffer.py[/i] - слушает выбранный девайс, автоматически отслеживая его переключения по каналам.
Advertisement
Add Comment
Please, Sign In to add comment