-
#2
Здравствуйте, в принципе возможно, но может потребовать много времени и без малейших гарантий.
Лучше конечно поискать уже готовую прошивку, может где то найдётся.
Даже если вам удасться вытащить из вашего текущего роутера прошивку и конвертировать её в нормальный bin файл велика вероятность, что вы попросту сделаете «кирпич» из другого роутера при прошивке. Всё зависит от совместимости данной прошивки с железками. Я например не могу (к большому сожалению) пошить свой роутер ddwrt или openwrt, по той причине, что эти прошивки не поддерживают нужный мне чип.
Вы можете прочитать немного на эту тему
Ссылка скрыта от гостей
и
Ссылка скрыта от гостей
. Ещё есть ряд статей, но в них речь идёт о открытых прошивках, с которыми всё проще и для вас они скорее всего не подойдут. Сразу скажу, что личного опыта не имею, только информация из интернета.
P.S: Стало интересно, какой провайдер придумал такую ерунду, если не секрет.
-
#3
Здравствуйте, в принципе возможно, но может потребовать много времени и без малейших гарантий.
Лучше конечно поискать уже готовую прошивку, может где то найдётся.
Даже если вам удасться вытащить из вашего текущего роутера прошивку и конвертировать её в нормальный bin файл велика вероятность, что вы попросту сделаете «кирпич» из другого роутера при прошивке. Всё зависит от совместимости данной прошивки с железками. Я например не могу (к большому сожалению) пошить свой роутер ddwrt или openwrt, по той причине, что эти прошивки не поддерживают нужный мне чип.
Вы можете прочитать немного на эту темуСсылка скрыта от гостей
и
Ссылка скрыта от гостей
. Ещё есть ряд статей, но в них речь идёт о открытых прошивках, с которыми всё проще и для вас они скорее всего не подойдут. Сразу скажу, что личного опыта не имею, только информация из интернета.
P.S: Стало интересно, какой провайдер придумал такую ерунду, если не секрет.
Спасибо
абсолютно не известный провайдер , в поселке не имеющий даже свой кабинет (
-
#4
Спасибо
абсолютно не известный провайдер , в поселке не имеющий даже свой кабинет (
Честно очень мало вероятно что провайдер в поселке имеет достаточно ресурсов чтобы разработать и использовать свою ОС на маршрутизаторах.
По каким именно признакам вы определили что используется не стандартная прошивка?
-
#5
Честно очень мало вероятно что провайдер в поселке имеет достаточно ресурсов чтобы разработать и использовать свою ОС на маршрутизаторах.
По каким именно признакам вы определили что используется не стандартная прошивка?
Конкретно этот «Провайдер» берет интернет в аренду у другого провайдера
а с того и взял что они сами об этом говорят, и при настройке роутера интернета так и не будет
-
#6
Конкретно этот «Провайдер» берет интернет в аренду у другого провайдера
а с того и взял что они сами об этом говорят, и при настройке роутера интернета так и не будет
Можно хоть какую то техническую информацию о данной прошивке? Об самом роутере?
Я еще раз повторю что я не верю в такие чудеса… максимум это просто какая то кастомизация одной из существующих прошивок.
Для того что бы вытащить есть масса способов, начиная с поиска выведенных физических интерфейсов на плате роутера, и заканчивая снятием самого чипа и слития с него данных…. вариантов много…. но скорее всего прийдется достаточно хорошо в этом всем разобраться, и потратить далеко не один день времени.
-
#7
Было бы неплохо для начала узнать можно ли прицепиться к нему через telnet. Если да, то уже можно будет начинать «играться».
Последнее редактирование:
-
#8
@Serega_s78
@InetTester
Прикол еще таков что когда используешь н-количество потоков тобиж когда ставишь что то на сканирование или на брут
Сервер тебя автоматически отключает за превышенный лимит потоков
-
#9
@Serega_s78
@InetTester
Посмотреть вложение 40607
Посмотреть вложение 40608Прикол еще таков что когда используешь н-количество потоков тобиж когда ставишь что то на сканирование или на брут
Сервер тебя автоматически отключает за превышенный лимит потоков
Как я понимаю это
Ссылка скрыта от гостей
хм, интересно, они даже интерактивную страничку с прошивкой
Ссылка скрыта от гостей
посмотрите есть ли какие внешние отличия с вашей.
Есть поддержка у dd-wrt, даже завидую….. немного.
Пока все мои поиски среди украинских провайдеров, ставящих свои прошивки дали только 1 название — Киевстар, но он выглядит +- масштабно и не подходит под ваше описание «ноунейма», покрайней мере у него есть личный кабинет, но ваш провайдер вполне может брать интернет у него.
Судя по всему телнета в прошивке нет, зато вот что я нашёл на хабре.
Конкретно вашей модели нет ни в списке, ни в комментариях, но есть WR841N и люди отписались, что дырка есть, дело конечно было давно и вероятно прошивки поправили, но ваш провайдер может использовать старую версию в качестве основы, мало ли, имейте ввиду.
-
#10
Версию прошивки(что я является ключевым моментом) я так и не увидел, но судя по всему под данный девайс есть только один сплойт(точнее просто шаблоны http запросов) который можно попробовать: exploits/hardware/webapps/44781.txt. Если не ошибаюсь то обычными http запросами без авторизации можно выполнять ряд определенных действий для которых обычно требуется авторизация. Все это из за неверной обработки или хранения сессий.
-
rsz_screenshot_from_2020-04-26_20-35-54.png
7,2 КБ
· Просмотры: 153
Последнее редактирование:
-
#11
Версию прошивки(что я является ключевым моментом) я так и не увидел, но судя по всему под данный девайс есть только один сплойт(точнее просто шаблоны http запросов) который можно попробовать: exploits/hardware/webapps/44781.txt. Если не ошибаюсь то обычными http запросами без авторизации можно выполнять ряд определенных действий для которых обычно требуется авторизация. Все это из за неверной обработки или хранения сессий.
Да, верно, главной «деталью» являеется версия прошивки, если верить
Ссылка скрыта от гостей
страничке, то для модели WR840N уязвимой является версия прошивки 0.9.1_3.16 (и вероятно все до неё), с сайта сейчас загружается версия 0.9.1_4.16. Думаю из любопытства попробовать потыкать её с помощью binwalk.
-
#12
Как я понимаю это
Ссылка скрыта от гостей
хм, интересно, они даже интерактивную страничку с прошивкой
Ссылка скрыта от гостей
посмотрите есть ли какие внешние отличия с вашей.
Есть поддержка у dd-wrt, даже завидую….. немного.
Пока все мои поиски среди украинских провайдеров, ставящих свои прошивки дали только 1 название — Киевстар, но он выглядит +- масштабно и не подходит под ваше описание «ноунейма», покрайней мере у него есть личный кабинет, но ваш провайдер вполне может брать интернет у него.
Судя по всему телнета в прошивке нет, зато вот что я нашёл на хабре.
Конкретно вашей модели нет ни в списке, ни в комментариях, но есть WR841N и люди отписались, что дырка есть, дело конечно было давно и вероятно прошивки поправили, но ваш провайдер может использовать старую версию в качестве основы, мало ли, имейте ввиду.
Посмотреть вложение 40615
Узнал еще один факт что такое работает только на частный сектор, то есть с квартир такого прикола нету
По поводу отличий с эмулятора это версия прошивки и Версия оборудования: там она
TL-WR840N v6 00000007
0.9.1 4.16 v004c.0 Build 180628 Rel.74012n
У меня же
Версия встроенного ПО:0.9.1 3.16 v0283.0 Build 170505 Rel.43898n
Версия оборудования:TL-WR840N v5 00000005
С бекдором не прокатило он просто дает ошибку
Как я понимаю это
Ссылка скрыта от гостей
хм, интересно, они даже интерактивную страничку с прошивкой
Ссылка скрыта от гостей
посмотрите есть ли какие внешние отличия с вашей.
Есть поддержка у dd-wrt, даже завидую….. немного.
Пока все мои поиски среди украинских провайдеров, ставящих свои прошивки дали только 1 название — Киевстар, но он выглядит +- масштабно и не подходит под ваше описание «ноунейма», покрайней мере у него есть личный кабинет, но ваш провайдер вполне может брать интернет у него.
Судя по всему телнета в прошивке нет, зато вот что я нашёл на хабре.
Конкретно вашей модели нет ни в списке, ни в комментариях, но есть WR841N и люди отписались, что дырка есть, дело конечно было давно и вероятно прошивки поправили, но ваш провайдер может использовать старую версию в качестве основы, мало ли, имейте ввиду.
Посмотреть вложение 40615
Узнал еще один факт что такое работает только на частный сектор, то есть с квартир такого прикола нету
По поводу отличий с эмулятора это версия прошивки и Версия оборудования: там она
TL-WR840N v6 00000007
0.9.1 4.16 v004c.0 Build 180628 Rel.74012n
У меня же
Версия встроенного ПО:0.9.1 3.16 v0283.0 Build 170505 Rel.43898n
Версия оборудования:TL-WR840N v5 00000005
С бекдором не прокатило он просто дает ошибку
-
#13
Узнал еще один факт что такое работает только на частный сектор, то есть с квартир такого прикола нету
По поводу отличий с эмулятора это версия прошивки и Версия оборудования: там онаTL-WR840N v6 00000007
0.9.1 4.16 v004c.0 Build 180628 Rel.74012n
У меня жеВерсия встроенного ПО:0.9.1 3.16 v0283.0 Build 170505 Rel.43898n
Версия оборудования:TL-WR840N v5 00000005
С бекдором не прокатило он просто дает ошибку
Для срабатывания уязвимости нужен запущенный TFTP на компьютере.
по поводу отличий в интерфейсе, это просто ревизия и версия по, я просто надеялся на более существенные отличия.
Поскольку в прошивке нет telnet-а , покрайней мере он не задокументирован ни
Ссылка скрыта от гостей
, ни
Ссылка скрыта от гостей
(или я ослеп) у вас остаётся только физический способ, для которого нужно оборудование и навыки + обратно собрать. При этом в случае с идеальным результатом вы сможете прошивать только такой же роутер. Найти подходящего провайдера с прошивками мне не удалось, извините, но похоже это тупик.
Данная инструкция, также актуальна для всех роутеров, которые имеют доступ через telnet, но не имеют возможности подключения USB-носителей.
1. Открываем консоль роутера через telnet (в Windows XP — Пуск — Выполнить — cmd )
telnet 192.168.0.1
или с помощью программы PuTTY
2. Вводим логин и пароль — admin/admin (по умолчанию или свой измененный)
3. Смотрим имеющиеся блоки
cat proc/mtd
Видим примерно такое:
dev: size erasesize name
mtd0: 00010000 00001000 «boot»
mtd1: 00010000 00001000 «MAC»
mtd2: 00010000 00001000 «config»
mtd3: 00100000 00001000 «kernel»
mtd4: 002c0000 00001000 «rootfs»
mtd5: 003d0000 00001000 «Linux»
mtd6: 00400000 00001000 «ALL»
4. Создадим папку www
mkdir /tmp/www
5. Переходим в папку www с помощью команды
cd /tmp/www
6. Дальше поочередно вводим команды:
touch ../httpd.conf
killall httpd
dd if=/dev/mtd0 of=mtd0.bin
dd if=/dev/mtd1 of=mtd1.bin
dd if=/dev/mtd2 of=mtd2.bin
dd if=/dev/mtd3 of=mtd3.bin
dd if=/dev/mtd4 of=mtd4.bin
dd if=/dev/mtd5 of=mtd5.bin
dd if=/dev/mtd6 of=mtd6.bin
httpd -c ../httpd.conf
7. Заходим в административную панель роутера через браузер по адресу 192.168.0.1 (или соответствующий), и получаем ошибку 404
8. Для сохранения каждого блока, в адресной строке браузера набираем поочередно следующие запросы:
192.168.0.1//mtd0.bin
192.168.0.1//mtd1.bin
192.168.0.1//mtd2.bin
192.168.0.1//mtd3.bin
192.168.0.1//mtd4.bin
192.168.0.1//mtd5.bin
192.168.0.1//mtd6.bin
Для каждого файла откроется диалог загрузки. Нажимаем «Сохранить» и указываем путь сохранения каждому файлу.
9. Перезагружаем роутер, чтобы восстановить стандартный WEB-интерфейс.
Вы наверное как и я любили в детстве все разбирать и изучать, как и что работает. Некоторые повзрослели, а я все еще люблю этим заниматься )). В этой статье, я расскажу о том, как вытащить прошивку с любого устройства и как разрабы пытаются это предотвратить.
У старых ламповых приемников не было вообще никаких прошивок, а единственная защита, которая у них была — это анодное напряжение. В наше время все иначе: мне попадаются гаджеты, которые пытаются противодействовать уже на этапе вскрытия корпуса. Начнем наше увлекательное путешествие.
Содержание
- Осмотр платы устройства
- Память
- EEPROM
- FRAM
- NOR/NAND Flash
- Корпуса микросхем
- Маркировка
- Типовой дизайн
- ПК
- Бытовые роутеры
- Устройства для ответственного применения
- IoT
- Смартфоны
- Расшифровка имени
- Поиск документации
- Оборудование
- Подготовка к чтению прошивки
- Чтение прошивки
Осмотр платы устройства
Если вскрытие не показало, что пациент умер от вскрытия, я сначала осматриваю плату в поисках пинов отладочных интерфейсов — обычно это JTAG или UART. Главная проблема не в том, что нужные контакты могут быть в очень неожиданных местах, а в том, что обычно они отключены. Конечно, даже в 2021 году все еще хватает уникумов, которые отправляют в прод устройства с включенным UART, но количество таковых стремительно падает.
Если тебе не повезло — вариантов немного: или плакать в подушку, или искать чип памяти на борту и читать его непосредственно.
И вот с этим тебя ожидает уйма интересного! Думал, нужно просто вытащить восьминогую микруху в DIP-корпусе, похожую на старый чип с BIOS? Как бы не так! Сейчас есть минимум четыре относительно широко применяемых вида памяти, и некоторые из них могут быть похожи друг на друга так, что не различишь.
Память
Прежде чем я расскажу, что и как делать с памятью, давай сначала разберемся, какая она вообще бывает и как ее отличить от других компонентов на плате.
По опыту процессор (на скриншоте выше по центру) обычно квадратной формы и исполняется в BGA, а память прямоугольная и делается в SOP-корпусах.
Часто в ультрапортативных вычислительно мощных устройствах (смартфонах, например) используется бутерброд из процессора и памяти — так меньше размеры и задержки при работе. Форм‑фактор, конечно, BGA — просто потому, что ничего другого в крохотный корпус запихнуть нельзя.
ROM — постоянную память — отличить довольно легко. Предположим, чип с ней ты уже нашел. Теперь давай разберемся, какая она бывает.
Нас интересует EEPROM (Electrically Erasable Programmable Read-Only Memory), FRAM (сегнетоэлектрическая память) и NOR/NAND flash — они тебе уже и так знакомы. Из них ты мог не слышать только о FRAM — ее начали применять около пяти лет назад, так что она еще не особо популярна.
EEPROM
Среди особенностей этой памяти — побайтовые чтение и запись. Такая память самая долговечная: по расчетам, она может сохранять информацию в течение примерно двухсот лет! Но за надежность приходится платить — главным образом объемом, с котором у этого вида памяти все плохо: типичный объем такого чипа измеряется в килобайтах. Из‑за низкого объема для хранения прошивок этот тип памяти почти не применяется. Ну а раз заговорили о минусах — стоит и о низкой скорости сказать.
Ресурс ячейки — около миллиона циклов перезаписи. По сравнению с современными ячейками NAND, у которых этот показатель находится в пределах нескольких десятков тысяч циклов, EEPROM-память просто нереально надежная.
РЕКОМЕНДУЕМ:
Как снять дамп прошивки и получить доступ к консоли управления гаджета
FRAM
FRAM — это совсем новый тип энергонезависимой памяти. Промышленно его применять стали всего несколько лет назад, так что шанс встретить именно FRAM в каком‑нибудь умном холодильнике небольшой, но скоро все может поменяться. Пока что основная проблема в цене, которая несколько выше, чем у других типов памяти.
От EEPROM отличается фундаментально другим принципом запоминания информации: хранится не заряд на затворе, а знак поляризации сегнетоэлектрика. При приложении напряжения она меняется на противоположную, что позволяет читать такую память и писать в нее.
Из‑за нового принципа работы такая память значительно быстрее, чем EEPROM, но ее долговечность осталась практически неизменной.
NOR/NAND Flash
NOR/NAND-флеш‑память — это просто EEPROM, собранный в массив. NOR от NAND отличается только способом упаковки в массив, но это небольшое различие ведет к достаточно сильным отличиям в такой памяти.
NOR быстрее и надежнее, чем NAND, но стоит дороже из‑за меньшей плотности компоновки. NAND же, напротив, дешевый как мусор, но имеет проблемы с надежностью.
NOR- и NAND-память используется в SSD и всяких флешках. Из‑за низкой надежности NAND-памяти такие накопители в обязательном порядке имеют большой пул запасных ячеек, недоступных для обычного использования, и умный контроллер, который всем этим хозяйством рулит. Держать такой оверхед в ширпотребных умных мультиварках непростительно дорого, так что применяется обычно NOR, а NAND остается для пользовательских накопителей, где проблемы надежности можно переложить на пользователя, который не делает бэкапы. Хотя нет — даже в дешевых роутерах он все чаще применяется благодаря программным механизмам защиты целостности.
NOR был бы идеален, если бы не его цена, так что рыночек порешал — и теперь у нас всех используется NAND почти везде. Даже во встраиваемой технике уже почти научились с ним безопасно работать — контрольные суммы, ECC-коды и резервные блоки. Красота!
Корпуса микросхем
Как видишь, с корпусами у памяти все плохо: помимо показанных на картинке вариантов, можно запросто вспомнить еще с десяток, и не факт, что производитель не решил использовать нечто эксклюзивное, у чего может вообще не быть названия.
Маркировка
Допустим, тебе повезло найти чип с памятью. Первым делом нам нужно прочитать его маркировку.
Если маркировка есть — немал шанс встретить ее именно в таком формате, как показан на картинке выше. Первые две буквы — код вендора, потом тип памяти в чипе, потом внутренний номер серии — и дальше уже четкой логики не прослеживается.
Так как единого стандарта нет и не предвидится, производители вольны писать на своих чипах, что считают нужным. Это порой приводит к коллизиям, вроде того, что представлено на той же картинке: два чипа разных производителей, оба 29-й серии, но один NOR, а другой — NAND. Короче, не угадаешь, и такие чипы приходится пробивать в поисковиках, чтобы выяснить хоть что‑то.
Типовой дизайн
Устройства одного сегмента проектируются очень похожими — это вполне очевидно. Например, все бытовые роутеры изнутри выглядят почти одинаково. Та же ситуация на рынке устройств SCADA, у которых свои каноны, но они прослеживаются везде без особых изменений.
Я расскажу о пяти категориях устройств, с которыми тебе, возможно, придется иметь дело:
- ПК;
- сетевое оборудование бытового сегмента (роутеры, свитчи, точки доступа);
- оборудование для ответственных применений (на заводах);
- IoT — интернет вещей;
- смартфоны.
Само собой, мир крутится не только вокруг смартфонов да компьютеров, но с ними у тебя шанс встретиться куда больше, чем с каким‑нибудь контроллером для управления ракетными двигателями. Поэтому давай рассмотрим типовое устройство только этих пяти категорий девайсов.
ПК
Устройство обычных ПК подразумевает модульность, то есть почти все детали можно легко вынуть. Из‑за этого на матплате из элементов памяти есть только флешка с BIOS/UEFI. При этом BIOS обычно сидит на микросхемах 24-й серии — I2C EEPROM, а в новых моделях стоит 25-я серия SPI NOR flash с UEFI.
Если же установлен взрослый интеловский процессор с поддержкой ME — на плате можно найти вторую такую же флешку, но с прошивкой для ME. Это делается в целях безопасности: находящуюся на физически отдельной микросхеме прошивку заразить или подменить сложнее.
Intel ME
Intel Management Engine — это особая система для UEFI-совместимых ПК на базе процессоров Intel. Она имеет свою выделенную микросхему памяти и собственный процессор, а также собственные каналы доступа к сетевым адаптерам и основной оперативной памяти. Может без ограничений взаимодействовать почти с чем угодно в составе компьютера, что очень сильно повышает требования к ее защите.
Бытовые роутеры
С роутерами потребительского класса все довольно просто: тут ставят память SPI NOR 25-й серии, если требуется не больше 8 Мбайт, или NAND-память объемом побольше. Изредка можно найти eMMC, но мне такое пока не попадалось.
Устройства для ответственного применения
Тут все немного сложнее. Стандарты требуют странных вещей, поэтому с большим шансом устройства этой категории будут состоять из нескольких плат, соединенных переходными интерфейсами. Будет много разных запоминающих устройств, чтобы просто пройти сертификацию.
Логи обычно пишутся в EEPROM или FRAM 24-й серии, загрузчик лежит на NOR 25-й серии, а все встроенное ПО кладут на NOR 26-й, 29-й серии. NAND используют редко, а если используют — сразу большими массивами с резервированием.
IoT
Сейчас понятие IoT слишком растяжимое: по сути, туда можно записать вообще все умное домашнее и даже не очень домашнее. Из‑за этого память там может быть любая: хоть EEPROM, хоть eMMC — это когда NAND с хост‑контроллером упакованы в один чип.
Смартфоны
В смартфонах обычно все самое передовое: тут тебе и eMMC, и eUFS, и даже NVMe SSD, как у Apple. При этом, как ни крути, все эти чипы выглядят плюс‑минус одинаково, так что ты их ни с чем не спутаешь.
Расшифровка имени
Теперь, когда нашли нужный чип и прочитали маркировку, ее нужно декодировать. Кстати, маркировка далеко не всегда читается целиком: часть может быть случайно или намеренно скрыта, а то и вовсе подделана, как любят устраивать китайцы со своими деталями на Али.
Особо крупные производители могут предоставлять на своих сайтах декодеры имени микросхемы, но почти никто так не делает.
Похвальный пример — производитель Micron, который дал на сайте внятную инструкцию и форму для получения даташита на свои микросхемы.
Если же декодера нет, придется выкручиваться. Можно попробовать разобраться по схеме на скриншоте ниже, но, естественно, безо всяких гарантий успеха. Возможно, даже лучше сразу идти к японцам — они очень любят неадекватно запутанные названия без известной логики. Она, конечно, есть, но пока что никто ее не смог понять.
Поиск документации
Гуглить, думаю, ты и сам умеешь, но для поиска документации ко всяким экзотическим чипам это может быть бесполезно. Во‑первых, более эффективен поиск по первым N символам названия микросхемы. Во‑вторых, часто проще найти по коду на Aliexpress или других крупных торговых площадках.
Если уж любишь Google, попробуй поиск по картинкам — там порой можно найти то, что текстом не ищется.
Еще огромные базы чипов есть в ПО для программаторов — я использую ПО компании Elnec. Зачастую там даже есть даташиты, но слишком на это надеяться не стоит.
И еще одно хорошее место для поисков — GitHub. С большим шансом там найдется что‑нибудь по запросу в духе «X microcircuit read poc». Дальше можно выдрать ссылку на даташит или что‑то еще полезное. Мне попадались даже скрытые сервисные команды для блокировки/разблокировки чипа, что, конечно, очень приятно при изучении.
Оборудование
Тут можно только сказать, чего делать не стоит: не надо брать дешевые инструменты и расходники. Из моего любимого — припой, который плавится при совершенно неожиданных температурах, проводящий флюс (!) и одноразовые пинцеты.
Подробнее хочется рассказать о дешевом флюсе. Как пример — ТТ, также известный как розовый гель. Он хорош, но он не отмывается и проводит ток на высоких частотах. Это не проблема в советском радио или даже современном блоке питания, но вот на платах компьютеров с гигагерцами частоты он категорически противопоказан.
Снятие компаунда — это вопрос температуры. Я обычно грею феном на ~250 градусов, но есть одна проблемка. И состоит она в том, что под компаундом компоненты могут быть припаяны низкотемпературным припоем, вроде сплавов Розе или Вуда. Да, компаунд ты снимешь, но вместе с ним сойдет половина платы. А хитрая флешка может не завестись без кучи рассыпухи, которую обратно уже не собрать.
При снятии компаунда не забывай о вытяжке — твое здоровье важнее любой микросхемы!
Что делать, если плата покрыта лаком? Можно попробовать свести его ацетоном, но он может повредить текстолит. Делай так, только если тебе терять нечего. Для остальных случаев — просто снимать скальпелем в нужных местах, а остальное не трогать.
При пайке ориентируйся на график термопрофиля в конце даташита на микросхему. Он там размещается не просто так, и на моей памяти действительно были случаи, когда микросхема умирала от перегрева при извлечении. Как известно, люди делятся на тех, кто не смотрит графики в документации, и тех, кто уже смотрит.
К заводскому припою часто имеет смысл примешать менее тугоплавкий сплав Розе или ПОС63, ну или сплав Вуда, если все совсем плохо. Это значительно понизит температуру пайки и увеличит шансы не сжечь микруху.
Подготовка к чтению прошивки
После выпайки ни в коем случае нельзя устраивать микросхеме температурные испытания: пусть полежит и остынет сама, а не в спирте — так шансы сохранить работоспособность куда выше. Дальше нужно проверить, все ли лапки чипа находятся в одной плоскости и не образовались ли от припоя перемычки между ножками. Их нужно убрать, чтобы не спалить программатор, не имеющий защиты от такого, и сам чип тоже.
С BGA нужно убрать старый припой и нанести новые шарики. Когда чип очищен и подготовлен к чтению, не вздумай пихать его в программатор с прижимом прямо в чип — велик шанс просто раздавить его!
Чтение прошивки
Помни, что память NOR flash идет с завода без битых ячеек, а у NAND есть допустимый процент брака, так что, если в NAND видны битые ячейки, не спеши расстраиваться.
Программатор перед чтением нужно правильно настроить. В частности, надо заставить его читать все, включая системные страницы в начале и конце памяти — они бывают крайне важны!
Разработчики чипа настоятельно рекомендуют разработчикам устройства использовать свои чипы в соответствии с некоторыми правилами. Но вторые вольны не подчиняться первым, так что системные страницы порой оказываются хранилищем ключей шифрования или каких‑то других данных. В общем, читай все — лишним точно не будет.
РЕКОМЕНДУЕМ:
Способы защиты микроконтроллера
Вот теперь у тебя есть образ, который можно грузить в IDA и ковыряться дальше, но это уже тема для отдельной статьи.
Статья написана по мотивам доклада Демида Узенькова — специалиста компании ИНФОРИОН. Выступление состоялось на конференции RuCTFE 2020. За помощь в подготовке публикации редакция благодарит команду «Хакердом».
Несколько дней назад, я решил провести реверс-инжиниринг прошивки своего роутера используя binwalk.
Я купил себе TP-Link Archer C7 home router. Не самый лучший роутер, но для моих нужд вполне хватает.
Каждый раз когда я покупаю новый роутер, я устанавливаю OpenWRT. Зачем? Как правило производители не сильно заботятся о поддержке своих роутеров и со временем софт устаревает, появляются уязвимости и так далее, в общем вы поняли. Поэтому я предпочитаю хорошо поддерживаемую сообществом open-source прошивку OpenWRT.
Скачав себе OpenWRT, я так же скачал последний образ прошивки под мой новый Archer C7 с официального сайта и решил проанализировать его. Чисто ради фана и рассказать о binwalk.
Что такое binwalk?
Binwalk — это инструмент с открытым исходным кодом для анализа, реверс-инжиниринга и извлечения образов прошивок.
Созданный в 2010 году Крейгом Хеффнером, binwalk может сканировать образы прошивок и находить файлы, идентифицировать и извлекать образы файловой системы, исполняемый код, сжатые архивы, загрузчики и ядра, форматы файлов, такие как JPEG и PDF, и многое другое.
Вы можете использовать binwalk для реверс-инжиниринга прошивки для того, что бы понять как она устроена. Искать в бинарных файлах уязвимости, извлекать файлы и искать бекдоры или цифровые сертификаты. Можно так же найти opcodes
для кучи разных CPU.
Вы можете распаковать образы файловой системы для поиска определенных файлов паролей (passwd, shadow и т.д.) И попытаться сломать хэши паролей. Вы можете выполнить двоичный анализ между двумя или более файлами. Вы можете выполнить анализ энтропии данных для поиска сжатых данных или закодированных ключей шифрования. Все это без необходимости доступа к исходному коду.
В общем все, что необходимо, есть
Как работает binwalk?
Основной особенностью binwalk является его сигнатурное сканирование. Binwalk может сканировать образ прошивки для поиска различных встроенных типов файлов и файловых систем.
Вы знаете утилиту командной строки file
?
file /bin/bash
/bin/bash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=12f73d7a8e226c663034529c8dd20efec22dde54, stripped
Команда file
смотрит на заголовок файла и ищет подпись (магическое число), чтобы определить тип файла. Например, если файл начинается с последовательности байтов 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A
, она знает, что это файл PNG. На Википедии есть список распространенных подписей файлов.
Binwalk работает так же. Но вместо того, чтобы искать подписи только в начале файла, binwalk будет сканировать весь файл. Кроме того, binwalk может извлечь файлы, найденные в образе.
Инструменты file
и binwalk
используют библиотеку libmagic
для идентификации подписей файлов. Но binwalk
дополнительно поддерживает список пользовательских магических сигнатур для поиска сжатых / заархивированных файлов, заголовков прошивок, ядер Linux, загрузчиков, файловых систем и так далее.
Давайте повеселимся?
Установка binwalk
Binwalk поддерживается на нескольких платформах, включая Linux, OSX, FreeBSD и Windows.
Чтобы установить последнюю версию binwalk, вы можете загрузить исходный код и следовать инструкции установки или краткому руководству, доступному на веб-сайте проекта.
У Binwalk много разных параметров:
$ binwalk
Binwalk v2.2.0
Craig Heffner, ReFirmLabs
https://github.com/ReFirmLabs/binwalk
Usage: binwalk [OPTIONS] [FILE1] [FILE2] [FILE3] ...
Signature Scan Options:
-B, --signature Scan target file(s) for common file signatures
-R, --raw=<str> Scan target file(s) for the specified sequence of bytes
-A, --opcodes Scan target file(s) for common executable opcode signatures
-m, --magic=<file> Specify a custom magic file to use
-b, --dumb Disable smart signature keywords
-I, --invalid Show results marked as invalid
-x, --exclude=<str> Exclude results that match <str>
-y, --include=<str> Only show results that match <str>
Extraction Options:
-e, --extract Automatically extract known file types
-D, --dd=<type:ext:cmd> Extract <type> signatures, give the files an extension of <ext>, and execute <cmd>
-M, --matryoshka Recursively scan extracted files
-d, --depth=<int> Limit matryoshka recursion depth (default: 8 levels deep)
-C, --directory=<str> Extract files/folders to a custom directory (default: current working directory)
-j, --size=<int> Limit the size of each extracted file
-n, --count=<int> Limit the number of extracted files
-r, --rm Delete carved files after extraction
-z, --carve Carve data from files, but don't execute extraction utilities
-V, --subdirs Extract into sub-directories named by the offset
Entropy Options:
-E, --entropy Calculate file entropy
-F, --fast Use faster, but less detailed, entropy analysis
-J, --save Save plot as a PNG
-Q, --nlegend Omit the legend from the entropy plot graph
-N, --nplot Do not generate an entropy plot graph
-H, --high=<float> Set the rising edge entropy trigger threshold (default: 0.95)
-L, --low=<float> Set the falling edge entropy trigger threshold (default: 0.85)
Binary Diffing Options:
-W, --hexdump Perform a hexdump / diff of a file or files
-G, --green Only show lines containing bytes that are the same among all files
-i, --red Only show lines containing bytes that are different among all files
-U, --blue Only show lines containing bytes that are different among some files
-u, --similar Only display lines that are the same between all files
-w, --terse Diff all files, but only display a hex dump of the first file
Raw Compression Options:
-X, --deflate Scan for raw deflate compression streams
-Z, --lzma Scan for raw LZMA compression streams
-P, --partial Perform a superficial, but faster, scan
-S, --stop Stop after the first result
General Options:
-l, --length=<int> Number of bytes to scan
-o, --offset=<int> Start scan at this file offset
-O, --base=<int> Add a base address to all printed offsets
-K, --block=<int> Set file block size
-g, --swap=<int> Reverse every n bytes before scanning
-f, --log=<file> Log results to file
-c, --csv Log results to file in CSV format
-t, --term Format output to fit the terminal window
-q, --quiet Suppress output to stdout
-v, --verbose Enable verbose output
-h, --help Show help output
-a, --finclude=<str> Only scan files whose names match this regex
-p, --fexclude=<str> Do not scan files whose names match this regex
-s, --status=<int> Enable the status server on the specified port
Сканирования образов
Начнем с поиска сигнатур файлов внутри образа (образ с сайта TP-Link).
Запуск binwalk с параметром —signature:
$ binwalk --signature --term archer-c7.bin
DECIMAL HEXADECIMAL DESCRIPTION
------------------------------------------------------------------------------------------
21876 0x5574 U-Boot version string, "U-Boot 1.1.4-g4480d5f9-dirty (May
20 2019 - 18:45:16)"
21940 0x55B4 CRC32 polynomial table, big endian
23232 0x5AC0 uImage header, header size: 64 bytes, header CRC:
0x386C2BD5, created: 2019-05-20 10:45:17, image size:
41162 bytes, Data Address: 0x80010000, Entry Point:
0x80010000, data CRC: 0xC9CD1E38, OS: Linux, CPU: MIPS,
image type: Firmware Image, compression type: lzma, image
name: "u-boot image"
23296 0x5B00 LZMA compressed data, properties: 0x5D, dictionary size:
8388608 bytes, uncompressed size: 97476 bytes
64968 0xFDC8 XML document, version: "1.0"
78448 0x13270 uImage header, header size: 64 bytes, header CRC:
0x78A267FF, created: 2019-07-26 07:46:14, image size:
1088500 bytes, Data Address: 0x80060000, Entry Point:
0x80060000, data CRC: 0xBB9D4F94, OS: Linux, CPU: MIPS,
image type: Multi-File Image, compression type: lzma,
image name: "MIPS OpenWrt Linux-3.3.8"
78520 0x132B8 LZMA compressed data, properties: 0x6D, dictionary size:
8388608 bytes, uncompressed size: 3164228 bytes
1167013 0x11CEA5 Squashfs filesystem, little endian, version 4.0,
compression:xz, size: 14388306 bytes, 2541 inodes,
blocksize: 65536 bytes, created: 2019-07-26 07:51:38
15555328 0xED5B00 gzip compressed data, from Unix, last modified: 2019-07-26
07:51:41
Теперь у нас много информации об этом образе.
Образ использует U-Boot в качестве загрузчика (заголовок образа по адресу 0x5AC0
и сжатый образ загрузчика по адресу 0x5B00
). Основываясь на заголовке uImage по адресу 0x13270, мы знаем, что архитектура процессора — MIPS, а ядро Linux — версия 3.3.8. И на основании образа, найденного по адресу 0x11CEA5
, мы можем видеть, что rootfs
является файловой системой squashfs
.
Давайте теперь распакуем загрузчик (U-Boot) с помощью команды dd
:
$ dd if=archer-c7.bin of=u-boot.bin.lzma bs=1 skip=23296 count=41162
41162+0 records in
41162+0 records out
41162 bytes (41 kB, 40 KiB) copied, 0,0939608 s, 438 kB/s
Поскольку образ сжат с помощью LZMA, нам нужно распаковать его:
$ unlzma u-boot.bin.lzma
Теперь у нас есть образ U-Boot:
$ ls -l u-boot.bin
-rw-rw-r-- 1 sprado sprado 97476 Fev 5 08:48 u-boot.bin
Как насчет поиска дефолтного значения для bootargs
?
$ strings u-boot.bin | grep bootargs
bootargs
bootargs=console=ttyS0,115200 board=AP152 rootfstype=squashfs init=/etc/preinit mtdparts=spi0.0:128k(factory-uboot),192k(u-boot),64k(ART),1536k(uImage),14464k@0x1e0000(rootfs) mem=128M
Переменная окружения U-Boot bootargs
используется для передачи параметров ядру Linux. И из вышеприведенного мы лучше понимаем флэш-память устройства.
Как насчет извлечения образа ядра Linux?
$ dd if=archer-c7.bin of=uImage bs=1 skip=78448 count=1088572
1088572+0 records in
1088572+0 records out
1088572 bytes (1,1 MB, 1,0 MiB) copied, 1,68628 s, 646 kB/s
Мы можем проверить, что образ был успешно извлечен с помощью команды file
:
$ file uImage
uImage: u-boot legacy uImage, MIPS OpenWrt Linux-3.3.8, Linux/MIPS, Multi-File Image (lzma), 1088500 bytes, Fri Jul 26 07:46:14 2019, Load Address: 0x80060000, Entry Point: 0x80060000, Header CRC: 0x78A267FF, Data CRC: 0xBB9D4F94
Формат файла uImage — это в основном образ ядра Linux с дополнительным заголовком. Давайте удалим этот заголовок, чтобы получить окончательный образ ядра Linux:
$ dd if=uImage of=Image.lzma bs=1 skip=72
1088500+0 records in
1088500+0 records out
1088500 bytes (1,1 MB, 1,0 MiB) copied, 1,65603 s, 657 kB/s
Образ сжат, поэтому давайте распакуем его:
$ unlzma Image.lzma
Теперь у нас есть образ ядра Linux:
$ ls -la Image
-rw-rw-r-- 1 sprado sprado 3164228 Fev 5 10:51 Image
Что мы можем сделать с образом ядра? Мы могли бы, например, сделать поиск по строкам в образе и найти версию ядра Linux и узнать об окружающей среде, используемой для сборки ядра:
$ strings Image | grep "Linux version"
Linux version 3.3.8 (leo@leo-MS-7529) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Mon May 20 18:53:02 CST 2019
Несмотря на то, что прошивка была выпущена в прошлом году (2019 г.), когда я пишу эту статью, она использует старую версию ядра Linux (3.3.8), выпущенную в 2012 г., скомпилированную с очень старой версией GCC (4.6) также с 2012 г.!
(прим. перев. еще доверяете своим роутерам в офисе и дома?)
С опцией --opcodes
мы также можем использовать binwalk для поиска машинных инструкций и определения архитектуры процессора образа:
$ binwalk --opcodes Image
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
2400 0x960 MIPS instructions, function epilogue
2572 0xA0C MIPS instructions, function epilogue
2828 0xB0C MIPS instructions, function epilogue
Как насчет корневой файловой системы? Вместо того, чтобы извлекать образ вручную, давайте воспользуемся опцией binwalk --extract
:
$ binwalk --extract --quiet archer-c7.bin
Полная корневая файловая система будет извлечена в подкаталог:
$ cd _archer-c7.bin.extracted/squashfs-root/
$ ls
bin dev etc lib mnt overlay proc rom root sbin sys tmp usr var www
$ cat etc/banner
MM NM MMMMMMM M M
$MMMMM MMMMM MMMMMMMMMMM MMM MMM
MMMMMMMM MM MMMMM. MMMMM:MMMMMM: MMMM MMMMM
MMMM= MMMMMM MMM MMMM MMMMM MMMM MMMMMM MMMM MMMMM'
MMMM= MMMMM MMMM MM MMMMM MMMM MMMM MMMMNMMMMM
MMMM= MMMM MMMMM MMMMM MMMM MMMM MMMMMMMM
MMMM= MMMM MMMMMM MMMMM MMMM MMMM MMMMMMMMM
MMMM= MMMM MMMMM, NMMMMMMMM MMMM MMMM MMMMMMMMMMM
MMMM= MMMM MMMMMM MMMMMMMM MMMM MMMM MMMM MMMMMM
MMMM= MMMM MM MMMM MMMM MMMM MMMM MMMM MMMM
MMMM$ ,MMMMM MMMMM MMMM MMM MMMM MMMMM MMMM MMMM
MMMMMMM: MMMMMMM M MMMMMMMMMMMM MMMMMMM MMMMMMM
MMMMMM MMMMN M MMMMMMMMM MMMM MMMM
MMMM M MMMMMMM M M
M
---------------------------------------------------------------
For those about to rock... (%C, %R)
---------------------------------------------------------------
Теперь мы можем сделать много разного.
Мы можем искать файлы конфигурации, хэши паролей, криптографические ключи и цифровые сертификаты. Мы можем проанализировать бинарные файлы для поиска ошибок и уязвимостей.
С помощью qemu и chroot мы можем даже запустить (эмулировать) исполняемый файл из образа:
$ ls
bin dev etc lib mnt overlay proc rom root sbin sys tmp usr var www
$ cp /usr/bin/qemu-mips-static .
$ sudo chroot . ./qemu-mips-static bin/busybox
BusyBox v1.19.4 (2019-05-20 18:13:49 CST) multi-call binary.
Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: busybox --list[-full]
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, [[, addgroup, adduser, arping, ash, awk, basename, cat, chgrp, chmod, chown, chroot, clear, cmp, cp, crond, crontab, cut, date, dd, delgroup, deluser, dirname, dmesg, echo, egrep, env, expr, false,
fgrep, find, free, fsync, grep, gunzip, gzip, halt, head, hexdump, hostid, id, ifconfig, init, insmod, kill, killall, klogd, ln, lock, logger, ls, lsmod, mac_addr, md5sum, mkdir, mkfifo, mknod, mktemp,
mount, mv, nice, passwd, pgrep, pidof, ping, ping6, pivot_root, poweroff, printf, ps, pwd, readlink, reboot, reset, rm, rmdir, rmmod, route, sed, seq, sh, sleep, sort, start-stop-daemon, strings,
switch_root, sync, sysctl, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, udhcpc, umount, uname, uniq, uptime, vconfig, vi, watchdog, wc, wget, which, xargs, yes, zcat
Здорово! Но обратите внимание, что версия BusyBox — 1.19.4. Это очень старая версия BusyBox, выпущенная в апреле 2012 года.
Таким образом, TP-Link выпускает образ прошивки в 2019 году с использованием программного обеспечения (GCC toolchain, kernel, BusyBox и т. Д.) 2012 года!
Теперь вы понимаете, почему я всегда устанавливаю OpenWRT на свои роутеры?
Это еще не все
Binwalk также может выполнять энтропийный анализ, печатать необработанные энтропийные данные и генерировать энтропийные графики. Обычно большая энтропия наблюдается, когда байты в образе случайны. Это может означать, что образ содержит зашифрованный, сжатый или обфусцированный файл. Хардкорно прописанный ключ шифрования? Почему бы и нет.
Мы также можем использовать параметр --raw
для поиска пользовательской последовательности необработанных байтов в образе или параметр --hexdump
для выполнения шестнадцатеричного дампа, сравнивающего два или более входных файла.
Пользовательские сигнатуры могут быть добавлены в binwalk либо через файл пользовательских сигнатур, указанный в командной строке с помощью параметра --magic
, либо путем добавления их в каталог $ HOME / .config / binwalk / magic
.
Вы можете найти больше информации о binwalk в официальной документации.
Расширение binwalk
Существует API-интерфейс binwalk, реализованный в виде модуля Python, который может использоваться любым скриптом Python для программного выполнения сканирования binwalk, а утилита командной строки binwalk может быть почти полностью продублирована всего двумя строками кода Python!
import binwalk
binwalk.scan()
С помощью Python API вы также можете создавать плагины под Python для настройки и расширения binwalk.
Также существует плагин IDA и облачная версия Binwalk Pro.
Так почему бы вам не скачать образ прошивки из Интернета и не попробовать binwalk? Обещаю, вам будет очень весело
Декомпиляция прошивки роутера может быть полезной задачей для многих пользователей, которые хотят получить доступ к внутренним компонентам и настройкам устройства. Декомпиляция позволяет изучить код и функциональность прошивки, а также внести изменения и настроить роутер по своему усмотрению.
Однако, необходимо иметь в виду, что декомпиляция прошивки роутера может нарушить гарантию устройства и привести к его неправильной работе или полному отказу. Поэтому перед началом процесса рекомендуется ознакомиться со всей доступной документацией и выполнять все действия на свой страх и риск.
Для начала декомпиляции прошивки роутера вам потребуется специальное программное обеспечение и инструменты. Одним из самых популярных является программа Binwalk, которая способна анализировать и извлекать данные из прошивок различных устройств. Кроме того, вам также потребуется некоторые навыки программирования и знание языка ассемблера, чтобы понять и изменить код прошивки.
Важно помнить, что декомпиляция прошивки роутера может нарушить законодательство о защите программного обеспечения и нарушить авторские права. Поэтому перед началом процесса убедитесь, что вы имеете соответствующие разрешения и знания о применимом законодательстве.
Внимательно следуйте инструкциям, предоставляемым разработчиками программного обеспечения и инструментов, не вносите изменения кода прошивки без необходимости и всегда создавайте резервные копии перед выполнением каких-либо действий.
Содержание
- Основные понятия и принципы
- Выбор необходимого программного обеспечения
- Подробный обзор инструментов
- 1. Binwalk
- 2. Firmware Analysis Toolkit (FATKIT)
- 3. Firmware Modification Kit (FMK)
- 4. IDA Pro
Основные понятия и принципы
Декомпиляция прошивки роутера может быть полезной в следующих случаях:
- Изучение внутренней логики устройства;
- Поиск уязвимостей и исправление их;
- Добавление дополнительных функций и возможностей;
- Изменение внешнего вида интерфейса;
- Анализ работы устройства и оптимизация его производительности.
Основными инструментами, используемыми для декомпиляции прошивки роутера, являются:
- Дизассемблер — программа, которая переводит исполняемый файл прошивки в читаемый для человека вид;
- Декомпилятор — инструмент, который переводит бинарный код прошивки в исходный код на языке программирования;
- Отладчик — программное обеспечение, позволяющее анализировать исполняющуюся программу шаг за шагом и получать информацию о ее состоянии.
При декомпиляции прошивки необходимо учитывать следующие принципы:
- Законодательство — перед проведением декомпиляции необходимо убедиться, что это действие не нарушает законодательство вашей страны;
- Безопасность — при работе с прошивкой роутера необходимо обеспечить сохранность оригинального файла и бэкапов, чтобы в случае ошибки или повреждения можно было восстановить работоспособность устройства;
- Анализ кода — декомпиляция прошивки позволяет получить доступ к исходному коду, но требует хорошего знания языка программирования и анализа кода, чтобы понять его логику и функционал;
- Тестирование — после внесения изменений в прошивку устройства необходимо провести тестирование, чтобы убедиться в его работоспособности и отсутствии ошибок.
Помните, что декомпиляция прошивки роутера может быть сложным и трудоемким процессом, требующим достаточно большой экспертизы в области программирования и системного анализа.
Выбор необходимого программного обеспечения
Для декомпиляции прошивки роутера вам понадобится набор специального программного обеспечения. В данной статье мы рассмотрим несколько популярных инструментов, которые помогут вам выполнить эту задачу. Ниже приведен список необходимого программного обеспечения:
- Binwalk — инструмент, который предназначен для поиска и извлечения встроенных файлов в прошивке роутера. Он обладает широким набором функций и может быть полезным при анализе прошивки;
- IDA Pro — популярная среда разработки и дизассемблера, которая может использоваться для обратного анализа бинарных файлов. IDA Pro имеет множество функций и расширений, которые могут помочь вам разобраться в составе прошивки;
- Wireshark — инструмент для анализа сетевого трафика. Его можно использовать для мониторинга взаимодействия роутера с другими устройствами и анализа передаваемых данных;
- dd — утилита командной строки для копирования и преобразования файлов. Она может быть полезна при извлечении отдельных файлов из прошивки;
- Python — язык программирования, который широко используется в области безопасности и разработки обратно совместимого программного обеспечения. Python может быть полезным при создании собственных сценариев и инструментов для декомпиляции прошивки.
Выбор программного обеспечения зависит от конкретных требований и задач, которые вы хотите решить при декомпиляции прошивки роутера. Рекомендуется ознакомиться с документацией и особенностями каждого инструмента перед началом работы.
Подробный обзор инструментов
1. Binwalk
Binwalk — мощный инструмент для анализа бинарных файлов. Он специально разработан для работы с прошивками и может автоматически идентифицировать и извлекать файлы и данные из прошивки роутера. Binwalk также распознает различные типы файлов, такие как образы файловой системы, исполняемые файлы и конфигурационные файлы.
2. Firmware Analysis Toolkit (FATKIT)
Firmware Analysis Toolkit (FATKIT) — это набор инструментов, разработанный для анализа и модификации прошивок, включая прошивки роутеров. FATKIT предоставляет различные функции для исследования прошивок, включая декомпрессию, монтирование файловой системы и анализ файлов.
3. Firmware Modification Kit (FMK)
Firmware Modification Kit (FMK) — это набор инструментов, предназначенный для модификации прошивок роутеров и других встраиваемых систем. FMK позволяет извлекать, модифицировать и перепаковывать файлы и данные внутри прошивки. Он также поддерживает применение патчей и замену файлов в прошивке.
4. IDA Pro
IDA Pro — это интерактивный дизассемблер и отладчик, который часто используется для анализа прошивок и других бинарных файлов. IDA Pro позволяет проводить дизассемблирование кода, восстановление структуры и идентификацию функций внутри прошивки. Это мощный инструмент, который может быть полезен для более глубокого анализа прошивок роутеров.
Это лишь небольшой обзор некоторых инструментов, которые могут быть полезны при декомпиляции прошивки роутера. В зависимости от ваших потребностей и целей, вы можете выбрать инструмент, который лучше всего подходит для ваших задач.