Реверс-инжиниринг прошивок IoT-устройств
How to Start IoT device Firmware Reverse Engineering? — введение в реверс-инжиниринг прошивок различных IoT-устройств, таких как роутеры, камеры, устройства для умного дома и так далее. Статья короткая, простая, но содержит несколько вводных рекомендаций, которые могут пригодиться новичкам.
How to Start IoT device Firmware Reverse Engineering? — введение в реверс-инжиниринг прошивок различных IoT-устройств, таких как роутеры, камеры, устройства для умного дома и так далее. Статья короткая, простая, но содержит несколько вводных рекомендаций, которые могут пригодиться новичкам.
- Любой реверс начинается с поиска самой прошивки. Обычно ее можно скачать с сайта производителя или на форумах.
- Зачастую прошивки распространяются в zip-архиве, внутри которого находится файл с расширением .bin.
- Обычно файл .bin — это сплав из загрузчика, ядра Linux и образов одного или нескольких разделов. Чтобы узнать адреса смещений, по которым находятся эти образы в файле, можно использовать утилиту binwalk:
Код:$ binwalk -e TL-WR841Nv14_EU_0.9.1_4.16_up_boot[180319-rel57291].bin
- Адрес смещения можно использовать, чтобы извлечь образ раздела с помощью утилиты dd (в данном случае образ корневой файловой системы squashfs):
Код:$ dd if= TL-WR841Nv14_EU_0.9.1_4.16_up_boot[180319-rel57291].bin skip=1049088 bs=1 of=TP.sfs - Получить содержимое файловой системы squashfs позволяет утилита unsquashfs:
Код:$ unsquashfs TP.sfs - На этом все, можно начинать анализ содержимого прошивки.