30c3 - Введение в анализ встроенного программного обеспечения
HackersOnBoard
0:00 / 0:00
30c3 - Введение в анализ встроенного программного обеспечения
610 просмотров · 12 лет назад
HackersOnBoard
71,3 тыс. подписчиков
610 просмотров · 12 лет назад
В этом докладе представлено введение в анализ встроенного ПО: он начинается с того, как получить двоичный файл, например, получить обычный файл от производителя, извлечь его из исполняемого файла или памяти, или даже перехватить его из процесса обновления или внутренней памяти ЦП, что может быть довольно сложной задачей. После этого рассматриваются необходимые инструменты, даются советы по определению архитектуры процессора и объясняются некоторые более сложные методы анализа, включая определение смещений, куда загружено встроенное ПО, и как начать исследование.
Доклад фокусируется на различных шагах, которые необходимо предпринять для получения и анализа встроенного ПО встроенного устройства, особенно без знания архитектуры используемого процессора. Часто технические описания недоступны или не содержат никаких сведений об используемом процессоре или системе на кристалле (SoC).
Сначала рассматриваются необходимые условия, такие как знание исследуемого устройства, умение читать язык ассемблера и инструменты для получения и анализа.
Вопрос: «Как получить встроенное ПО из устройства X?» Следующая большая глава посвящена следующему этапу: от простого к сложному мы рассмотрим различные типы систем хранения и места, где может храниться прошивка, различные способы её передачи на устройство, а также инструменты, которые можно использовать для извлечения прошивки из её хранилища.
Следующий шаг — анализ собранных данных. Сжаты ли они каким-либо образом? Для какой из различных архитектур процессоров они были скомпилированы? После того, как мы успешно определили тип процессора и нашли подходящий дизассемблер, с чего начать анализ кода? Часто нам приходится определять смещение, куда загружается прошивка, чтобы получить легко анализируемый результат работы дизассемблера. Будет показан метод определения этих смещений.
В последней главе рассматриваются модификации, которые можно внести в прошивку, и какие механизмы контрольных сумм, как известно, используются устройством или самой прошивкой для проверки целостности кода.