Jump to content

    

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

Recommended Posts

EIKA

Хотим от железки на 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

Edited by EIKA

Share this post


Link to post
Share on other sites

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

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

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

Edited by mantech

Share this post


Link to post
Share on other sites

EIKA
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. То есть, этот шелл как-то или покриптован или что-то еще.

Edited by EIKA

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.