Изучаем Panasonic CQ-XX0500C-N (Nissan DM305-A)
Изучаем Panasonic CQ-XX0500C-N (Nissan DM305-A)
Вот такой вот аппарат
https://www.drive2.ru/b/2695427/ и внутри Panasonic Strada CN-HDS915TD-FA https://www.drive2.ru/b/463472464605741992/
Загрузка и карты - с DVD-ROM. Содержимое диска выложил тут: https://rutracker.org/forum/viewtopic.php?t=6232047 Формат - KIWI.
KIWI Format Explorer находит внутри пять загрузочных образов длиной 17860608 байт (17442 кб ровно), но про дальнейшую структуру загрузчиков Panasonic ничего сказать не может:
Разбираем файл загрузчика LOADING.KWI в JRemaker
Какой из пяти загрузочных образов - нужный для этого аппарата, я не знаю, поэтому для исследования наобум выбрал 04NI_050301_1. Они все устроены одинаково, так что для понимания сути разницы нет. Извлекаем загрузочный образ в отдельный файл (в меню пункт Export Unit).
Процессор - C1EB0000002 C404H01BT, такой же обнаружен внутри Panasonic Strada CN-HDS950MD:
Последний раз редактировалось KALDYH 08 июл 2022, 17:40, всего редактировалось 2 раза.
Изучаем Panasonic CQ-XX0500C-N (Nissan DM305-A)
Изучение полученного файла 04NI_050301_1 с помощью линуксового binwalk никаких объектов не обнаружило. Просмотр в hex-редакторе не выявил никаких следов файловой системы. Распаковка при помощи универсальных распаковщиков заканчивается неудачей, из чего делаем вывод, что файл - несжатый. Сигнатур в начале файла не обнаружено, кроме строки mnt_loader по адресу 58h. Поиск текстовых строк находит следующую полезную информацию:
и множество других текстовых строк и блоков (я привёл наиболее полезные). Итак, мы имеем дело с операционной системой OS-9 от Microware (переписанная с ассемблера 6809 на Си переносимая версия первоначально называлась OS-9000, к старому названию вернулись позднее. В Википедии есть детали: OS-9), и запущена она на процессорном ядре SuperH SH-4 SH7750R (ныне принадлежит Renesas)
Загружаем его в IDA Pro. Указываем Processor type - Renesas SH-4 (big endian) [SH4B], в Processor options - Choose a device - SH7750, остальные настройки по умолчанию. Далее Choose a device name - ещё раз указываем SH7750, и всё, готово - файл открыт. Можно ткнуть в любую точку, нажать C, и файл корректно декомпилируется, определяются вызовы процедур, таблицы прерываний и т.д. Для правильной интерпретации текстовых строк заходим в Options - General.. - Strings - нажимаем кнопку Default 8-bit (по умолчанию UTF-8) - нажимаем клавишу Insert - пишем в открывшемся окне Shift-JIS, сохраняем, выбираем как пункт по умолчанию и подтверждаем настройки.
В середине анализа файла я имел примерно такую картину: На обучении пользованию IDA Pro подробно заострять внимание не буду.
Код: Выделить всё
OS-9 Bootstrap for the SuperH (Edition 64)
Код: Выделить всё
OS-9000/SH4 V3.0 Copyright (c) 1999-2000 by Microware Systems Corp.
Код: Выделить всё
OS-9000 for the SH7750R
Загружаем его в IDA Pro. Указываем Processor type - Renesas SH-4 (big endian) [SH4B], в Processor options - Choose a device - SH7750, остальные настройки по умолчанию. Далее Choose a device name - ещё раз указываем SH7750, и всё, готово - файл открыт. Можно ткнуть в любую точку, нажать C, и файл корректно декомпилируется, определяются вызовы процедур, таблицы прерываний и т.д. Для правильной интерпретации текстовых строк заходим в Options - General.. - Strings - нажимаем кнопку Default 8-bit (по умолчанию UTF-8) - нажимаем клавишу Insert - пишем в открывшемся окне Shift-JIS, сохраняем, выбираем как пункт по умолчанию и подтверждаем настройки.
В середине анализа файла я имел примерно такую картину: На обучении пользованию IDA Pro подробно заострять внимание не буду.
Изучаем Panasonic CQ-XX0500C-N (Nissan DM305-A)
Теперь самое важное: как поделить загрузочный образ на части? Опущу подробности поисков, перейду к сути. Ответ даёт фрагмент из Википедии:
OS-9 System Overview: https://colorcomputerarchive.com/repo/D ... oware).pdf (стр. 44)
Там же расписана структура заголовка и его полей, но это старый документ, он подходит не вполне. Более актуальную и подробную информацию можно взять в руководстве от версии 4.7: https://lms.ee.hm.edu/~seck/AlleDateien ... k_tech.pdf (стр. 17)
Заголовок исследуемой системы имеет длину 0x58 байт (сразу за ним начинается имя модуля), магическое число (sync bytes) - 0x0591. Собственно, в самом начале файла мы их и обнаруживаем. Создав в IDA Pro соответствующие structs и enums и попробовав применить их к образу, выясняем, что он состоит из модулей OS-9, просто-напросто состыкованных один за другим.
Программой для разбора бинарника на модули займусь позже.
Другие полезные ссылки:
https://lms.ee.hm.edu/~seck/AlleDateien/ - установочный диск OS-9 x86 v4.7, вся документация к ней и прочие полезности. Более полного и свежего сборника в Интернете не обнаружено.
http://www.bitsavers.org/pdf/gimix/Gimi ... _Jan83.pdf
https://www.roug.org/soren/6809/os9sysprog.html - OS-9 Operating System System Programmer's Manual от очень ранних версий
То есть OS-9 имеет модульную структуру, и во время загрузки ОС сканирует бинарный образ и ищет в нём модули. Ищет, очевидно, по заголовкам. Подробности о модулях находим тут:The module structure requires more explanation: OS-9 keeps a "module directory", a memory-resident list of all modules that are in memory either by having been loaded, or by having been found in ROM during an initial scan at boot time. When one types a command to the OS-9 shell, it will look first in the current module directory for a module of the specified name and will use it (and increase its link count) if found, or it will look on disk for an appropriately named file if not. In OS-9/6809 and OS-9/68000, the module directory is flat, but OS-9000 made the module directory tree-structured.
OS-9 System Overview: https://colorcomputerarchive.com/repo/D ... oware).pdf (стр. 44)
Там же расписана структура заголовка и его полей, но это старый документ, он подходит не вполне. Более актуальную и подробную информацию можно взять в руководстве от версии 4.7: https://lms.ee.hm.edu/~seck/AlleDateien ... k_tech.pdf (стр. 17)
Код: Выделить всё
typedef struct mh_com {
u_int16 m_sync, /* sync bytes */
m_sysrev; /* system revision check value */
u_int32 m_size; /* module size */
owner_id m_owner; /* group/user ID */
u_int32 m_name; /* offset to module name */
u_int16 m_access, /* access permissions */
m_tylan, /* module type and language */
m_attrev, /* module attributes and revision /*
m_edit; /* module edition number */
u_int32 m_needs, /* module hardware requirements flags */
/* (reserved) */
m_share, /* offset of shared data in statics */
m_symbol, /* offset to symbol table */
m_exec, /* offset to execution entry point */
m_excpt, /* offset to exception entry point*/
m_data, /* data storage requirement */
m_stack, /* stack size */
m_idata, /* offset to initialized data */
m_idref, /* offset to data reference lists */
m_init, /* offset to initialization routine*/
m_term, /* offset to termination routine */
m_dbias, /* data area pointer bias*/
m_cbias; /* code area pointer bias */
u_int16 m_ident; /* linkage locale identifier */
char m_spare[8]; /* reserved */
u_int16 m_parity; /* header parity */
} mh_com, *Mh_com;
и так далее по тексту
Программой для разбора бинарника на модули займусь позже.
Другие полезные ссылки:
https://lms.ee.hm.edu/~seck/AlleDateien/ - установочный диск OS-9 x86 v4.7, вся документация к ней и прочие полезности. Более полного и свежего сборника в Интернете не обнаружено.
http://www.bitsavers.org/pdf/gimix/Gimi ... _Jan83.pdf
https://www.roug.org/soren/6809/os9sysprog.html - OS-9 Operating System System Programmer's Manual от очень ранних версий
Изучаем Panasonic CQ-XX0500C-N (Nissan DM305-A)
Текстовые строки на английском и японском хорошо видны в блоках данных дизассемблированного файла. В принципе, разобрав образ и дизассемблировав нужные модули, можно далее без труда переводить на английский, в том числе с изменением длины строк - надо будет только найти и поправить таблицу ссылок, пересчитать длину модуля в заголовке, его CRC (алгоритм есть в документации, см. выше) и собрать образ обратно.
Изучаем Panasonic CQ-XX0500C-N (Nissan DM305-A)
Молодец, хорошие изыскания по OS-9
Изучаем Panasonic CQ-XX0500C-N (Nissan DM305-A)
Пароли инсталлятора OS-9 для желающих поэкспериментировать - прилагаю.KALDYH писал(а): ↑08 июл 2022, 18:42https://lms.ee.hm.edu/~seck/AlleDateien/ - установочный диск OS-9 x86 v4.7, вся документация к ней и прочие полезности. Более полного и свежего сборника в Интернете не обнаружено.
- Вложения
-
- password.txt
- (206 байт) 3432 скачивания
- password.txt
- (206 байт) 3432 скачивания
Изучаем Panasonic CQ-XX0500C-N (Nissan DM305-A)
Нашёл вход в сервисное меню. Вход: нажать кнопку настроек яркости (слева над кнопкой TILT), потом нажимать нижний левый - верхний левый - нижний левый - верхний левый - нижний левый - верхний левый углы экрана (как на тойотовских http://carnavi.narod.ru/diganostic.html, но начинать с нижнего угла). Выход - долгое нажатие кнопки настройки яркости.
Next page:
Menu
Сверху вниз:
монтажный тест (то же, что и выше, но на японском)
тест дисплея (там же калибровка тачскрина)
тест системы
В верхнем правом углу - кнопка "Назад". Тест системы.
Левый столбец:
информация GPS
тест сигналов и датчиков автомобиля
тест "цветные полосы"
тест VICS
тест уровней RGB
Правый столбец:
чтение/запись памяти
информация о продукте
тест микрофона Информация о ПО:
Сверху вниз:
монтажный тест (то же, что и выше, но на японском)
тест дисплея (там же калибровка тачскрина)
тест системы
В верхнем правом углу - кнопка "Назад". Тест системы.
Левый столбец:
информация GPS
тест сигналов и датчиков автомобиля
тест "цветные полосы"
тест VICS
тест уровней RGB
Правый столбец:
чтение/запись памяти
информация о продукте
тест микрофона Информация о ПО:
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing и 5 гостей