Сценарии, инструменты и информация, чтобы помочь платформе Maving Engineer Samsung сотовой базовой полосы Exynos, кодовой из Шеннона. Эти инструменты были выпущены для разговора «Эмулирование базовой полосы Samsung Shannon для тестирования безопасности» в Black Hat USA'2020, 5 августа.
reversing/ghidra/ShannonLoader Расширение Ghidra для загрузки modem.bin Двойные двоичные файлы из почти всех известных модемов на сегодняшний день. Все изображения прошивки с https://github.com/grant-h/shannonfirmware загружаются во время тестов CI для погрузчика, чтобы обеспечить его совместимость.
reversing/ghidra/scriptsGhidra после загрузки сценариев Python, которые помогают аннотировать изображения модема Шеннона. Это включает в себя восстановление строк отладки и функции автоматического именования. Используйте после загрузки с Shannonloader.
reversing/modem Скрипт извлечения необработанного modem.bin По мере их развития.
reversing/btlСценарии и информация, чтобы разобрать файлы журнала трассировки (BTL). Они включены во время модема сбоев / дамп или с помощью функциональности «регистрации оперативной помощи» CP. Это сжатые файлы журнала из фактического запущенного модема.
firmware/Информация о приобретении прошивки и некоторых извлеченных дампах данных.
Вот быстрое учебное пособие, чтобы начать реверсировать эту прошивку с Ghidra.
modem.bin . Убедитесь, что он сжат бинар.ShannonLoader.zip , который находится в последнем теге релизаmodem.bin . Вы должны видеть, что загрузчик этого файла автоматически выбирается как «BINARY SAMSUNG SHANNON MODEM». Если вы этого не видите, убедитесь, что вы загрузили правильный файл и правильно установили расширение. Откройте консоль отладки Ghidra (внизу справа на экране Splash), чтобы дважды проверить, есть ли какие -либо ошибки.ShannonTraceEntry.py . Обязательно поместите сценарии в свой домашний каталог пользователя по адресу ~/ghidra_scripts (linux), либо добавьте путь к ним в менеджере. Этот скрипт определит всю информацию о отладке трассировки перед анализом и избегает диассомации данных.log_printf , что приводит к сломанной разборке по всему двоичному. Если вы не снимаете это, вам нужно будет перезагрузить свой импорт с нуля.ShannonRename.py . Это поможет вам ориентироваться в бинарном, но помните, что имена определены эвристически, поэтому качество может варьироваться. Функции с тем же угадным именем будут иметь добавленное числовое префикс.Если вы хотите быстро осмотреть, мы экспортировали проект Ghidra для модема 2017 года.
Лицензия репозитория - MIT. Примечание. Лицензия верхнего уровня охватывает только файлы, которые явно содержат маркировки SPDX, а не весь репозиторий. Для других файлов они могут не быть лицензированными (например, двоичные дампы, прошивка) или могут содержать другие разрешающие лицензии.