Перейти к содержанию
    

Хотим от железки на PowerQUICC+Linux получить то, что Коля Остен-Бакен хотел получить от красавицы Инги Зайонц

Хотим от железки на Freescale PowerQUICC получить то, что Коля Остен-Бакен хотел получить от красавицы Инги Зайонц. А именно, любви. Любви без денег. А именно, пары опций, которых нет, и которые производитель ранее предлагал за деньги, а теперь давно не поддерживает этот продукт и ничего для него не продает. 

Дано:

  • Железка на MPC859T (усеченка MPC866 - 1 SCC вместо 4 SCC).
  • JTAG редкий, тип USBTAP DPI (PQI), тип коннектора DPI. В продаже нет ни орига, ни клонов. Только пара следов в инете, что он вообще существовал когда-то, видимо, 15 лет назад.
  • Для начала зашли в Linux Embedded под рутом, там старое ядро 2006-2007 годов с шеллом.
  • В целом все понятно, хотя бинарники скомпилированы и реверсятся с огромным трудом и только частично.
  • Из портов есть только ETH и SERIAL, портов для НЖМД и клавиатуры-мыши-монитора нет.
  • Есть сервисное руководство, и там есть кое-что на тему отладки. Но без JTAG это не имеет смысла (если кому интересно, покажу в ЛС).

Что мы попробовали:

  1. Мы нашли конечный файл OPTIONS.CFG, который содержит в себе список того, что куплено, а что нет. Но это какой-то информационный файл, который, во-первых в /tmp (и переписывается при ребуте каждый раз), во-вторых, не приносит результата. И мы пошли дальше.
  2. OPTIONS.CFG правится процессом MODECONTROL.
  3. Процесс MODECONTROL получает данные от процесса RXIFACE.
  4. Так как все процессы говорят между собой через UDP, мы подделали обмен, и сказали MODECONTROL'у, что у него все куплено. MODECONTROL согласился с этим и радостно сообщил об этом в логах, но но это не привело к нужному результату. Видимо, это конец лицензирования, который уже по большей части справочный/вторичный. А Win32 App работает с более первичной частью.

Как устроена работа платных кодов нормальным образом:

  1. У каждой опции есть код активации, он привязан к серийному номеру устройства или флешки (от другого экземпляра устройства коды не подойдут).
  2. Производитель на основании этого кода генерит ответный код и присылает его вам
  3. Вы вводите код в Win32 App
  4. Win32 App по своему собственному протоколу, возможно шифрованному, over UDP, работет с железкой
  5. За обмен с Win32 App отвечает программный сервер (процесс), называется KSSSERVER
  6. KSSERVER далее ломится в другой процесс RXIFACE
  7. RXIFACE далее лезет в ttyS2
  8. ttyS2 драйвером сидит на SCC (это часть процессора, см. картинку.)
  9. Дальше мы в тупике, хотя и умеем гонять свой код на железке. Потому, что tail -f ничего не дает по ttyS2, по крайней мере, когда ядро Linux уже загрузилось.

Еще данные:

  • Брутить коды нереально исходя их длины и используемого алфавита, даже на топовых GPU
  • Сниф обмена Win32 App с железкой ничего не дает, протокол неизвестный.
  • JTAG на картинке, согласно документации, переводит устройство из обычного режима загрузки из памяти, в режим загрузки с внешней тулзы. В этом режиме доступен просмотр содержимого памяти, регистры процессора, а также загрузка буткода извне (в т.ч. если он был поврежден или это новая заводская плата). Также через интерфейс можно установить брейк-пойнты и вотч-пойнты.

Вопросы:

  1. Будут у кого идеи, возмездные и безвоздмездные?
  2. Если еще что-то нужно из команд, скриншотов и прочего, прошу запрашивать в теме. Все будет сделано и выложено.
  3. Есть у кого такой JTAG-интерфейс в РФ? В аренду или продать-купить?

P.S.

  • Ищу человека, который бы мог присоединиться к небольшой команде хоббистов и реверсеров - для этой задачи и может быть когда-то других. Проект некоммерческий, финансирование за свой счет из зарплаты. Поэтому все мы занимаемся этом себе в ущерб, и в идеале ищем таких же увлеченных людей. Хотя какие-то отдельные сдельные виды работ возможны и за деньги.

board.jpg

MTD.jpg

UART.jpg

CPU_block_diagram.jpg

Изменено пользователем EIKA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, EIKA сказал:

У каждой опции есть код активации, он привязан к серийному номеру устройства

Если не секрет, что хоть это за оборудование такое, может оно уже лет 10 назад устарело и проще на утилизацию? По инету гуглится что-то вроде шлюза на какой-то древний радиопротокол TaitNet P25...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

Если не секрет, что хоть это за оборудование такое, может оно уже лет 10 назад устарело и проще на утилизацию? По инету гуглится что-то вроде шлюза на какой-то древний радиопротокол...

Да, оно несвежее, дата первых изделий - 2005 год. Это с одной стороны. Но с другой стороны, в этой отрасли нет особо новомодных тенденций, типа дисплея HD, WiFi WAVE 2 и пр. А железо делали тогда так, что оно 15 лет работает в пыли и голубином помете, и ничего. Так что все актуально в целом.

Второе. Оборудование стоило $$,$$$, даже по цене 10% это большие деньги. Так что выбор небогат и хочется добить.

Третье. Это радиолюбительский проект, и для него все годится. Остается сделать и запустить.

Четвертое.  И еще есть небольшой спортивный интерес.

***

Сегодня вот что поняли, что 

tail -f /dev/ttyS2

убивает коммуникацию между процессами, то есть, мы в нее вклиниваемся и разрываем. Надо как-то придумать, как, желательно, через Linux CLI сделать зеркалирование ttyS2 в файл. Пока что нашли варианты только с компиляцией софта (это отлжим на десерт).

Ну и еще есть прикол. На Telnet висит свой собственный проприетарный шелл на ~200 команд (типа там включить кулер, выключить кулер, поморгать светодиодом и так далее). И самая интересная команда, которая читает и пишет "вкусняшки", дает нулевой вывод (то есть, сама команда известна, но не возвращает никакого результата рабоы). Все остальные команды работают как описано в htlp. Пытались понять как они "убили" конкретно эту команду, но оставили при этом ее в --help, но не поняли. Да и вообще, во всем дампе флэшки (ядро, бутлоадер и все папки ФС) нет команд этого шелла в plain text. То есть, этот шелл как-то или покриптован или что-то еще.

Изменено пользователем EIKA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...