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

Пытаемся разобраться с дампом от WRX приборки


Рекомендуемые сообщения

Все доброго времени сток!

 

Я уже несколько месяцев пытаюсь разобраться с дампом от всем полюбившейся приборки WRX.

 

На текущий момент нет четкого руководства и понимая по конфигурированию дампа приборной панели. Все что делается людьми на данный момент, это попытки подогнать дамп приборки под свои нужды путем копирования строк из дампов родных приборок или путем склеивания дампов от разных приборок.

Что хочу сделать я: Создать ПО для конфигурирования дампа. В идеале пользователь указывает фал с дампом, ПО его декодирует, пользователь настраивает необходимые параметры и сохраняет дамп. Далее дамп прошивается в приборку.

 

Что достигнуто на данный момент:

  • По моим предположениям все основные параметры приборной панли хранятся в первых 3-х строках состоящих из 10 байт каждая. 

  • В каждой строке хранятся такие параметры как, модель авто, тип коробки, параметры Si-Drive, регион(страна) и куча других кастомизируемых параметров которые меняются в зависимости от модели и комплектации авто.

  • Каждая строка с параметрами состоит из 10 байт. Первые 8 байт в строке это непостредственно параметры, оставшиеся 2 байта - это контрольная сумма строки.

  • Контрольная сумма необходима для проверки целостности дампа и параметров.

  • Контрольная сумма при расчетах использует NOT, так как если вся строка заполнена 00 то контрольная панель запускается при контрольной сумме FF FF, и наоборот.

  • Контрольная сумма это сумма всех 8 байт в строке, но там не просто сложение. Алгоритм расчета нужно уточнять.

  • Скорее всего Контрольная сумма расчитывается для группы байт, по 2 байта так как если поменять группу из 2-х байты местами с другой группой то панель запускается.

  • Собран тестовый программно аппаратный комплекс по прошивке и проверке дампа приборной панели.

8a4b89s-960.jpg

Аппаратный комплекс собран из ВЭБ камеры, Арудино и 3-х Релей Шилдов (Блоков Реле), вынесенного наружу чипа EEPROM, и монтажной платы.

9aa4b89s-960.jpg

 

Программная часть комплекса позволяет поставить контрольную сумму для строки на перебор до последующего ее вычисления. Каждая контрольная сумма в автомотическом режиме правит дамп, записывает его в приборную панель, запускает приборку, отслеживает дисплей посредством ВЭБ камеры, фиксирует картинку дисплея, распознает показания на дисплее и сохраняет скрин с информацией о контрольной сумме в папке для дальнейшей работы пользователя.

f664b89s-960.jpg

 

На проверку одной контрольной суммы уходит порядка 8 сек. Таким образом за сутки вполне реально подобрать контрольную сумму для одной строки.

 

Что удалось выяснить:

Путем эксперементальных подборов контрольных сумм удалось выяснить следующие варианты:

B1-00-00-00-00-00-00-00

CRC = 4E-00 (Тут как все понятно. Делаем просто not(B1) и получаем 4E)

 

Дальше буду писать только байты. Все байты идут в порядке с начала строки, все последующие не описанные байты равны 00. Напрмер если пишу B1-27 заничит по факту проверялась строка

B1-27-00-00-00-00-00-00 и т.д.

Во всех примерах сумма байт равна FF (1111 1111)

 

Опыт №1 (B1-4E-00-00-00-00-00-00) CRC = 00-00

(Тут тоже действует правило суммы байт и применение NOT к конечному результату)

B1            : 1011 0001

4E            : 0100 1110

CRC (00) : 0000 0000

Опять таки не важно на какой позиции будут стоять байты B1 и 4E и в каком прядке следования. CRC не меняется.

 

Опыт №2 (B1-27-27-00-00-00-00-00) CRC = 0E-00

(Тут схема с суммой байт уже не работает)

B1            : 1011 0001

27            : 0010 0111

27            : 0010 0111

CRC (0E) : 0000 1110

Тут уже позиция байт играет роль. Если менять местами B1 и 27(первые) то разницы нет, так же как и перенося весь блок в другое место строки. Но стоит перенести третий байт (27) в другую позицию как CRC уже не подходит. Причем для строки B1-27-27-00-00-00-00-00 CRC = 0E-00, для B1-27-00-27-00-00 уже не подходит этот CRC, для B1-27-00-00-27-00-00-00 опять подходит.

 

 

Опыт №3 (B1-27-13-14-00-00-00-00) CRC = 2E-00

B1            : 1011 0001

27            : 0010 0111

13            : 0001 0011

14            : 0001 0100

CRC (2E) : 0010 1110

 

Исходя из вышесказанного получается что менять группы по 2 байта местами можно, а вот байты внутри группы уже нет. Значит в вычеслениях CRC как то завязан номе группы байт, а так-же игнорируются части в начале и конце строки запыленные 00.

 

 

Собственно прошу помощи в поисках формулы расчета CRC, ибо моих мозгов уже не хватает. Надеюсь на то что найдется человек разбираюшийся в тебе контрольных сумм в бириборках и блока управления и натолкнет меня на нужные мысли.

 

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

 

 

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

  • Ответов 649
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

Прочитал и понял что я совсем ничего не понимаю...
Найти бы ещё пару таких голов у нас - точно бы победили !
Чем смогу помогу, но в этих байтах, формулах я не особо понимаю, лишь поверхностно... и то, когда ты объяснил )))

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

Прочитал и понял что я совсем ничего не понимаю...

 

Да там по идее ничего сложного. Сам только разбераюсь.

Нехватает опыта работы с ЭБУ и Приборками.

 

Еше пара голов бы не помешала, это точно.

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

Похожий алгоритм может применяться в электрических счетчиках Меркурий.

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

Надо поискать в инете такие алгоритмы и попробовать проверить.

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

А что стандартные алгоритмы не катят? 

Пробовал рассчитывать разными алгоритмами. Название ПО сейчас не вспомню, но там суть такая: Загоняешь строку байт и галочками отмечаешь необходимые алгоритмы расчета. прога выдает таблицу с расчитаными контрольными суммами.

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

 

@Eurolite,  

CRC-16 не катит.

 

 

 

Похожий алгоритм может применяться в электрических счетчиках Меркурий

Что-то мне подсказывает что алгоритм от Меркурия не подойдет. Хотя чем черт не шутит :)

 

 

 

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

Если получится выйти на человека, который может помочь с расчетами, будет просто отлично!

 

 

 

 

 

А давайте лучше скинемся денюжкой и найдём в японии человека который сольёт нам прогу?)))

Я не против! :) Если говорить о реальных возможностях, то я бы скинулся денежкой(в разумных пределах) человеку который предоставит алгоритм. Но увы таких пока не нашлось.

Пару человек откликнулось, но просят 15000р, за то что сами рассчитают мне CRC для определенной строки. Это мне не интересно, так как какой должна быть строка я еще сам не знаю :) Да и не уверен я, в правдивости.

 

 

Пока занимаюсь изысканиями на других форумах, пытаюсь от туда почерпнуть больше информации, по возможным алгоритмам. Я уже научился определять примерный диапазон в котором должна быть CRC.

Диапазон получается равным сумме байт +/- 200 байт в разные стороны (если подбирать побайтово).

Изменено пользователем Omega_KZ
Ссылка на комментарий
Поделиться на другие сайты

Что-то мне подсказывает что алгоритм от Меркурия не подойдет. Хотя чем черт не шутит :)

 

Вот например

https://groups.google.com/forum/#!msg/VladRusanov/yZXoytGlqgc/PlqpCmqDFAAJ

 

 

Аргоритм расчетной суммы неважно где применяется). Может похожий быть.

merc_crc.txt

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

 

 


Прикрепленные файлы  

merc_crc.txt 

Посмотрел, насколько я понимаю там применяется алгоритм crc-16 MODBUS. К сожалению он не подходит.

 

Мне кажется что Япошки, на основе базового алгоритма, сделали что-то свое.

Опять таки там какой-то очень простецкий алгоритм, так как алгоритм построен на простом сложении байт, но с применением какого-то смешения при переполнении. или чего-то еще. Плюсом ко всему применяется операция NOT (скорее всего к конечному результату).

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

 

 


Посмотрел, насколько я понимаю там применяется алгоритм crc-16 MODBUS. К сожалению он не подходит.

Я к тому, что надо пошарить все подобные, которые можно найти.

Можно попробовать связаться с этим человеком "Влад Русанов", у него вроде блог в инете есть.

 

А алгоритм действительно какая разница где применяется)).

 

То, что простое наверняка, смысла заморачиваться в таких блоках нет.

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

Привет. Тема интересная, и даже картинки вроде с Д2, но там эту тему не видел. И здесь бы не увидел, если бы не скинули линк доброжелатели.

Подобными изысканиями было желание заняться некоторое время назад, даже собрали флэш-приборку со встроенным СОМ-портом для перешивки без сдувания EEPROM. Но, поскольку нет четкой методологии или мурзилки по смещениям, а мартышкиным перебором заниматься быстро утомило - отлегло. По вычислению CRC на основе имеющихся данных - задам вопрос ребятам, но вряд ли подскажут.

 

В общем, постараюсь как-то быть полезным, по мере времени и возможностей. Занятно разгадать этот пазл, но ИМХО трудозатраты превышают ожидания, в новых субарах уже иные приборки, и вряд ли эта компетенция будет на 100% применима в будущем.

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

Продублирую еще тут. По информации от Omega_KZ в eeprom хранится конфигурация, а сама прошивка панели зашита в процессоре. Проц NEC, программатор для него orange-5.

Получив новую инфу, начал гуглить). Нашел ребят на туарегах в Москве, которые свои приборки тоже хотели шить и у них тоже процессор NEC.
Они искали программатор Orange-5, который тоже нужен нам (программатор стоит прилично).

 

Пролистал всю тему, основные важные моменты оттуда:

 

На 20-й странице вроде им товарищ https://www.drive2.ru/users/andrey-na/ что-то делал.

здесь они собрали стенд http://www.touareg-club.net/forum/showpost.php?p=2131653&postcount=388

 

большой пост тут http://www.touareg-club.net/forum/showpost.php?p=2194910&postcount=494

 

первый чел у них слился
пока искали еще одного http://www.touareg-club.net/forum/showpost.php?p=2297085&postcount=574

 

"Это немного не моя тема. Там на NEC всё сделано, я в них не очень разбираюсь.
Но судя по прошивкам sgo'шным, сами прошивки не криптованы и наверное можно разобраться. Нужен человек хорошо знакомый с NEC'ом и умеющий работать в IDA.
Я честно говоря не готов сейчас этим заниматься."(с)

 

Ищут программатор http://www.touareg-club.net/forum/showpost.php?p=2394605&postcount=664

"нужен на несколько дней вот такой программатор (или его аналог способный работать с NEC V850ES/SJ3 V850ES/SG3 UART) — ecutool.ru/product/orange5/ "

 

программатор они нашли тут

http://www.touareg-club.net/forum/showpost.php?p=2400174&postcount=684

"нашли программатор orange5 с программным модулем для работы с процессором NEC 850 и ещё другой для работы флеш-памятью контроллера экрана.
оба дадут в аренду за символическую плату.
работа продолжается… "

 

Все это вполне недавно и вроде еще делают.

 

Я думаю вполне можно договориться, чтобы скачать прошивку из процессора

 

А также у них написано, что какие-то успехи они получили.
Вполне мб, что закодировано у нас точно также, т.к. чип похожий NEC,

Изменено пользователем Slava46
Ссылка на комментарий
Поделиться на другие сайты

Мысль такая, если добыть прошивку из процессора, можно получить новую информацию или хотя бы если закодирована, дизассемблером получить информацию о вычислении контрольных сумм.

И вообще пообщаться с этими товарищами, возможно у них уже есть решение.

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

Мысль такая, если добыть прошивку из процессора, можно получить новую информацию или хотя бы если закодирована, дизассемблером получить информацию о вычислении контрольных сумм.

И вообще пообщаться с этими товарищами, возможно у них уже есть решение.

Вставлю свои 5 копеек:

Вот здесь я поднимал уже вопрос по снятию прошивки из проца: https://suba-xv.ru/index.php?showtopic=3811&p=270168

Что даст информация из прошивки проца?

Чем ее дезассембривать?

Также проц наш имеет функцию защиты, где гарантия, что приборка после попытки снятия дампа не умрет?

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

Что даст информация из прошивки проца? Чем ее дезассембривать? Также проц наш имеет функцию защиты, где гарантия, что приборка после попытки снятия дампа не умрет?

Сначала надо получить, потом думать над дизассмблером.

Я бы пообщался с ребятами на туарегах, чтобы узнать чего добились они, т.к. у них похожий процессор.

По информации, не знаю). Но что-то узнаем думаю, в процессоре может быть тот же расчет контрольных сумм.

 

И с чего вдруг процессор должен умереть при чтении через программатор фирменный? Если защиты на чтение нет.

 

Про дизассемблер выше было, например IDA.

Изменено пользователем Slava46
Ссылка на комментарий
Поделиться на другие сайты

Процессор имеет зашиту от чтения. Считать прошивку штатными средствами не получится.

Если мне не изменяет память по orange умеет читать нековские процы с зашитой, но не все. Надо пробовать.

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

Мне почему-то кажется, что надо здесь в этой ветке начать делиться дампами (Хотябы первыми строками) от приборок с описанием функций авто. Т.е. надо создать типовую таблицу, в которой перечислить все опции  и отмечать в ней наличие/отсутствие той или иной функции.

 

На мой взгляд это:

1. Даст четкую картину какой байт или группа байтов, за что отвечает

2. Мы насобираем множество CRC -- возможно тогда поймем алгоритм

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

Процессор имеет зашиту от чтения. Считать прошивку штатными средствами не получится. Если мне не изменяет память по orange умеет читать нековские процы с зашитой, но не все. Надо пробовать.

Какое полное название нашего процессора?

 

Orange-5 имеет программное обеспечение для процессоров

  • NEC V850ES/SJ3 V850ES/SG3 UART.
  • NEC V850E2 NEW.
Изменено пользователем Slava46
Ссылка на комментарий
Поделиться на другие сайты

 

Какое полное название нашего процессора?

 

Orange-5 имеет программное обеспечение для процессоров

  • NEC V850ES/SJ3 V850ES/SG3 UART.
  • NEC V850E2 NEW.

 

Предположим, что мы считали прошивку. Что дальше? У нас в руках бинарный файл, мы его предположим даже дизассемблировали -- там столько мусора будет (тот же язык приборки)  -- что разобраться в нем еще сложнее.

 

Это мое мнение, возможно я не прав

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

Предположим, что мы считали прошивку. Что дальше?

Как минимум скорее всего там будет алгоритма расчета контрольной суммы, потому что при включении процессор проверяет EPPROM, а для этого он должен проверить контрольные суммы, а значит их рассчитать, а значит там алгоритм.

 

И почему мусора? Это машинный код, вполне нормальный, как программа. Надо только уметь его читать.

Изменено пользователем Slava46
Ссылка на комментарий
Поделиться на другие сайты

Как минимум скорее всего там будет алгоритма расчета контрольной суммы, потому что при включении процессор проверяет EPPROM, а для этого он должен проверить контрольные суммы, а значит их рассчитать, а значит там алгоритм.

 

И почему мусора? Это машинный код, вполне нормальный, как программа. Надо только уметь его читать.

ассемблер - это язык, который явным образом говорит что и в какой регистр записать, а с какого прочитать, чтоб уметь его читать для начала надо целиком и полностью разобраться в архитектуре нашего процессора

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

для начала надо целиком и полностью разобраться в архитектуре нашего процессора

Для этого есть подробный мануал на процессор в 1000 стр.

 

Но опять же, считаю, что надо связаться с туареговодами, они это дело копают уже около 2х лет. И наверняка к чему-то пришли. Как минимум у них есть опыт с программатором и процессором похожим. А также есть программатор.

Изменено пользователем Slava46
Ссылка на комментарий
Поделиться на другие сайты


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