Как вытащить из устройства то, что разработчики втащили
Вполне естественно, что начинать попытки достать что-то из микроконтроллера нужно с изучения механизмов, которые встроены разработчиком чипа для задач программирования памяти. В мануале указано, что производитель любезно разместил в памяти загрузчик, для нужд внутрисхемного программирования устройства.
Как видно из картинки выше, память разбита на 2 части: пользовательская область, и область загрузчика. Во второй как раз с завода залит загрузчик по умолчанию, который умеет писать, читать, стирать пользовательскую память и общается через асинхронный, синхронный, либо CAN-интерфейс.
Указано, что он может быть переписан на свой, а может быть и не переписан. В конце концов это легко проверяется попыткой постучаться к стандартному загрузчику хотя-бы через UART… Забегая вперед: производитель отопителя не стал заморачиваться своим загрузчиком, поэтом копать дальше можно в этом направлении.
Вход в режим работы загрузчика обеспечивается определенной комбинацией на входах CNVSS, P5_0, P5_5 во время аппаратного сброса. Дальше либо написать свою утилиту для копирования содержимого памяти, либо использовать готовую. Renesas предоставляет свою утилиту, которая называется «M16C Flash Starter», но функция чтения у нее урезана.
Она не сохраняет прочитанное на диск, а сравнивает его с файлом с диска. Т.е. по сути это не чтение, а верификация. Однако есть немецкая свободная утилитка с названием M16C-Flasher, которая вычитывать прошивку умеет. В общем начальный инструментарий подобрался.
Что изображено на гос. номере и зачем нужна проверка?
Начиная с 1993 года, номерные знаки в Российской Федерации производятся по единому образцу и содержат по три буквенных и три числовых обозначения. «Читать» его необходимо слева направо, учитывая, что:
- первая буква означает серию знака;
- 3 цифры представляют собой регистрационный номер (он присваивается и фиксируется в ГИБДД);
- оставшиеся две буквы также определяют принадлежность серии.
Кроме этого, справа есть дополнительные пометки, которые позволяют понять, что машина зарегистрирована в РФ – об этом свидетельствует изображение флага, аббревиатура государства, а также код региона, где авто было поставлено на учет. В принципе, никаких сложностей с расшифровкой у опытных автомобилистов не возникает, однако этих знаний недостаточно, чтобы судить об «истории» машины. С другой стороны, если
пробить авто по гос номеру
с помощью специализированного сервиса “Проверка Авто”, то можно легко получить целый ряд полезных данных, а именно
- не находится ли авто в аресте;
- сколько километров «наездили» на том автомобиле;
- насколько длинный список владельцев и имеется ли право собственности на машину у лица, предлагающего его в продажу;
- не является ли транспорт залоговым имуществом;
- не использовалось ли авто в качестве такси.
Тем, кто стремится заключить выгодную сделку и стать счастливым владельцем автотранспорта на законных основаниях, обязательно стоит осуществить проверку автомобильного номера. Сделать это максимально быстро и просто предлагает сайт проверка-авто.рус, располагающий огромной базой данных о машинах, зарегистрированных во всех регионах страны.
Верить на слово продавцу о величине пробега, комплектации и «юридической чистоте» авто чрезвычайно рискованно, поэтому разумнее перестраховаться и в режиме онлайн получить достоверную и актуальную информацию. В случае необходимости можно оформить заказ на полный отчет, который будет предоставлен в кратчайшие сроки.
Дополнительно по psu
Модуль питания PWL37C04 выполнен с применением схемы коррекции коэффициента мощности (PFC – Power Factor Correction) в целях устранения кратных гармоник переменного тока, вносимых устройством в электросеть. Узел PFC представляет собой обратноходовый повышающий преобразователь (Step-Up Converter) на основе шим-регулятора L6563 14pin, который равномерно в пределах периода 50гц распределяет высокочастотные импульсы зарядного тока электролитического конденсатора фильтра выпрямителя сетевого напряжения.
Ток его заряда в данном случае будет уже определяться не его реактивным сопротивлением (обычно 10-30 ом для частоты сети), а элементами преобразователя. В результате изменение амплитуды импульсов (огибающая) потребляемого тока преобразователя повторит форму и фазу входного синусоидального напряжения.
Внешний вид блока питания
Основные особенности устройства PHILIPS 26PFL3403S:
Установлена матрица (LCD-панель) T260XW03 V.3 или V260B1-XC11 Rev11.В управлении матрицей используется Тайминг-Контроллер (T-CON) AUO-12201.Для питания ламп подсветки применяется инвертор VIT7123.53, управляется ШИМ-контроллером OZ964SN, ST339 (14), ST324 (14).
В преобразователе инвертора установлен трансформатор T51 0124 210B1 0820 05 9 J. В качестве силовых элементов инвертора применяются ключи типа P3004ND5G (5),.Формирование необходимых питающих напряжений для всех узлов телевизора PHILIPS 26PFL3403S осуществляет модуль питания PWL37C04, либо его аналоги c использованием микросхем Q110 (8)
, VIPer22A (Standby), GF383820 , L6563 (PFC 14pin).MainBoard – основная плата (материнская плата) представляет собой модуль 40-MT01EU-MAI2XG, с применением микросхем MT8200ALE , 24C32WP , 24C08 , MT8293AE , K4S64 1632K-UC50 , TDA9886TS , TDA7296 , F9222 , WM8738 и других.Тюнер TEDE9-2C2B обеспечивает приём телевизионных программ и настройку на каналы.
Дополнительная техническая информация о панели:Brand : AUO
Model : T260XW03 V3
Type : a-Si TFT-LCD, Panel
Diagonal size : 26.0 inch
Resolution : 1366×768, WXGA
Display Mode : TN, Normally White, Transmissive
Active Area : 575.769×323.
712 mm
Surface : Antiglare, Hard coating (3H)
Brightness : 500 cd/m²
Contrast Ratio : 800:1
Display Colors : 16.7M
(8-bit)
Response Time : 6/2 (Tr/Td)
Frequency : 60Hz
Lamp Type : CCFL
Embedded (Inverter)
Signal Interface : LVDS (1 ch, 8-bit), 30 pins
Voltage : 12.0V
Ближайшие в таблице модели:
Дополнительно по ремонту mainboard
Внешний вид MainBoard 40-MT01EU-MAI2XG показан на рисунке ниже:
40-MT01EU-MAI2XG может применяться в телевизорах:
PHILIPS 26PFL3403S/60 (Panel T260XW03 V.3), TCL 26E92NH10 (Panel V260B1-LN1 Rev.C1), THOMSON 26N90NH10 (Panel V260B1-LN1 Rev.C1).
Какую информацию можно получить из бесплатного отчета
Если Вы решите узнать комплектацию авто по вин или гос номеру, воспользовавшись сервисом «Автокод», для Вас станет доступна следующая информация:
- расположение руля;
- тип, мощность, объем двигателя;
- год производства машины;
- категория ТС.
Эта информация предоставляется бесплатно, и ее достаточно, чтобы сделать соответствующие выводы об общем состоянии транспортного средства. Дополнительный платный отчет покажет цвет автомобиля и расскажет полную историю ТС.
Немного о самом микроконтроллере
Камешек представляет собой 16-разрядный микроконтроллер в 100-выводном QFP корпусе. Ядро имеет 1 МБайт адресного пространства, тактовая частота 20МГц для автомобильного исполнения. Набор периферии так же весьма обширный: два 16-разрядных таймера и возможность генерации 3-фазного ШИМ для управления моторами, всякие UART, SPI, I2C естественно, 2 канала DMA, имеется встроенный CAN2.0B контроллер, а также PLL. На мой взгляд очень неплохо для старичка. Вот обзорная схемка из документации:
Так как моя задача выдрать ПО, то так же весьма интересует память. Данный МК выпускался в двух вариантах: масочном и Flash. Ко мне попал, как выше уже упоминалось, M306N5FCTFP. Про него в описании сказано следующее:
О защите от считывания
Все бы было совсем просто, если бы в загрузчике не была предусмотрена защита от несанкционированного доступа. Я просто приведу очень вольный перевод из мануала.
Функция проверки идентификатора
Используется в последовательном и CAN режимах обмена. Идентификатор, переданный программатором, сравнивается с идентификатором, записанным во flash памяти. Если идентификаторы не совпадают, команды, отправляемые программатором, не принимаются. Однако, если 4 байта вектора сброса равны FFFFFFFFh, идентификаторы не сравниваются, позволяя всем командам выполняться.
Таким образом, чтобы получить доступ к программе, нужно знать заветные 7 байт. Опять же, забегая вперед, я подключился к МК, используя тот же «M16C Flash Starter» и убедился, что комбинации из нулей и FF не проходят и этот вопрос придется как то решать.
Здесь сразу же всплыла мысль с атакой по сторонним каналам. Уже начал прикидывать в голове платку, позволяющую измерять ток в цепи питания, но решил, что интернет большой и большинство велосипедов уже изобретено. Вбив несколько поисковых запросов, довольно быстро нашел на hackaday.
io проект Serge ‘q3k’ Bazanski, с названием «Reverse engineering Toshiba R100 BIOS». И в рамках этого проекта автор решал по сути точно такую же задачу: добыча встроенного ПО из МК M306K9FCLR. Более того — на тот момент задача им была уже успешно решена.
В двух словах, q3k точно по такой же логике начал изучение с анализа потребляемого тока, в этом плане он был в гораздо более выгодных условиях, т.к. у него был ChipWhisperer, этой штукой я до сих пор не обзавелся. Но т.к. его первый зонд для снятия тока потребления оказался неподходящим и вычленить из шумов что-то полезное у него не получилось, он решил попробовать простенькую атаку на время отклика.
Дело в том, что загрузчик во время выполнения команды дергает вывод BUSY, чтобы проинформировать хост о том, занят он, или готов выполнять следующую команду. Вот, по предположению q3k, замер времени от передачи последнего бита идентификатора до снятия флага занятости мог послужить источником информации при переборе.
При проверке этого предположения перебором первого байта ключа действительно было обнаружено отклонение по времени только в одном случае — когда первый байт был равен FFh. Для удобства измерения времени автор даже замедлил МК, отключив кварцевый резонатор и подав на тактовый вход меандр 666кГц, для упрощения процедуры измерений. После чего идентификатор был успешно подобран и ПО было извлечено.
Общие рекомендации по ремонту tv lcd
Ремонт телевизора PHILIPS 26PFL3403S/60 начинать целесообразно с внимательного внешнего осмотра всех составляющих его элементов и модулей. Осмотру подлежат так же и корпусные элементы, функциональные кнопки управления, экран, шнуры и разъёмы. Часто по видимым изменениям удаётся определить дальнейшее направление поиска неисправности и локализации дефекта до начала снятия осциллограмм и проведения необходимых измерений.
Первый блин — граблями
Ха! Подумал я… Сейчас я быстренько наклепаю программку к имевшейся у меня STM32VLDiscovery c STM32F100 на борту, которая будет отправлять код и измерять время отклика, а в терминал выплевывать результаты измерений. Т.к. макетная плата с целевым контроллером до этого подключалась к ПК через переходник USB-UART, то, дабы ничего не менять на макетке, работать будем в асинхронном режиме.
Когда при старте загрузчика вход CLK1 притянут к земле, он понимает, что от него хотят асинхронного общения. Собственно потому я его и использовал — подтяжка была уже припаяна и я просто соединил проводами две платы: Discovery и макетку с целевым M306.
Заметка по согласованию уровней:
Т.к. M16 имеет TTL-уровни на выводах, а STM32 — LVTTL (упрощенно, в даташите подробнее), то необходимо согласование уровней. Т.к. это не устройство, которое, как известная батарейка, должно работать, работать и работать, а по сути подключается разок на столе, то с трансляторами уровней я не заморачивался: выходные уровни от STM32 пятивольтовый МК переварил, в смысле 3 вольта как «1» воспринимает, выходы от М16 подаем на 5V tolerant входы STM32 дабы ему не поплохело, а ногу, которая дергает RESET M16 не забываем перевести в режим выхода с открытым стоком. Я вот забыл, и это еще 2ч в копилку упущенного времени.Этого минимума достаточно, чтобы железки друг друга поняли.
Логика атакующего ПО следующая:
- Устанавливаем соединение с контроллером. Для этого необходимо дождаться, пока завершится сброс, затем передать 16 нулевых символов с интервалом более, чем 20 мс. Это для того, чтобы отработал алгоритм автоопределения скорости обмена, т.к. интерфейс асинхронный, а МК о своей частоте ничего не знает. Стартовая скорость передатчика должна быть 9600 бод, именно на эту скорость рассчитывает загрузчик. После этого при желании можно запросить другую скорость обмена из пяти доступных в диапазоне 9600-115200 (правда в моем случае на 115200 загрузчик работать отказался). Мне скорость менять не нужно, поэтому я для контроля синхронизации просто запрашивал версию загрузчика. Передаем FBh, загрузчик отвечает строкой вроде «VER.1.01».
- Отправляем команду «unlock», которая содержит текущую итерацию ключа, и замеряем время до снятия флага занятости.
Команда состоит из кода F5h, трех байт адреса, где начинается область идентификатора (в моем случае, для ядра M16C, это 0FFFDFh), длина (07h), и сам идентификатор. - Измеряем время между передачей последнего бита идентификатора и снятием флага занятости.
- Увеличиваем перебираемый байт ключа (KEY1 на начальном этапе), возвращаемся к шагу 2 до тех пор, пока не переберем все 255 значений текущего байта.
- Сбрасываем статистику на терминал (ну или выполняем анализ «на борту»).
Для общения с целевым МК я использовал USART в STM32, для измерения времени — таймер в режиме Input Capture. Единственное, для простоты я измерял время не между последним битом ключа и снятием флага, а между началом передачи и флагом. Причиной было то, что последний бит может меняться, а в асинхронном режиме прицепить вход захвата особо не к чему. В то же время UART аппаратный и время передачи в принципе идентично и ощутимых погрешностей набегать не должно.
В итоге, для всех значений результаты были идентичны. Полностью идентичны. Тактовая частота таймера у меня была 24Мгц, соответственно разрешение по времени — 41,6 нс. Ну ок, попробовал замедлить целевой МК. Ничего не поменялось. Здесь в голове родился вопрос: что я делаю не так, как это делал q3k?
После сравнения разница нашлась: он использует синхронный интерфейс обмена (SPI), а я асинхронный (UART). И где-то вот здесь я обратил внимание на тот момент, который упустил вначале. Даже на схемах подключения для синхронного и асинхронного режимов загрузчика вывод готовности назван по-разному:
В синхронном это «BUSY», в асинхронном это «Monitor». Смотрим в таблицу «Функции выводов в режиме Standart Serial I/O»:
«Семён Семёныч…»
Упущенная вначале мелочь завела не туда. Собственно, если в синхронном режиме это именно флаг занятости загрузчика, то в асинхронном (тот, который serial I/O mode 2) — просто «мигалка» для индикации работы. Возможно вообще аппаратный сигнал готовности приемопередатчика, оттого и удивительная точность его поднятия.
В общем перепаиваем резистор на выводе SCLK с земли на VCC, припаиваем туда провод, цепляем все это к SPI и начинаем сначала…
Преимущества сервиса «автокод»
Воспользовавшись сервисом «Автокод», Вы получите следующие преимущества:
- Возможность проверить комплектацию машины бесплатно при наличии ВИН-кода или гос номера. Многие другие сервисы проверки требуют дополнительные данные.
- Достоверная проверка. Информация предоставляется только из официальных источников всего за 2 минуты.
- Опции сайта доступны каждому пользователю без регистрации. Чтобы узнать комплектацию машины по VIN и гос номеру достаточно ввести информацию в режиме онлайн.
- Экономия времени. В течение 2 минут на экране появятся данные о комплектации авто и полная история автомобиля.
- Возможность проверить автомобили, которые не имеют VIN. Узнать историю японского автомобиля можно по гос номеру.
Наличие перебитого VIN-кода, несоответствие данных, полученных от продавца транспортного средства с заводскими настройками, — серьезная проблема для покупателя машины. Чтобы избежать трудностей при совершении сделки, выбирайте удобные и достоверные способы проверки.
Узнать комплектацию машины прямо сейчас!
Расшифровка штрихкода, проверка подлинности штрихкода онлайн
Данный сервис позволяет узнать страну-производителя товара по его штрихкоду (EAN-13) и проверить штрихкод на подлинность.
Обратите внимание: сервис не дает 100% гарантии, что товар со штрихкодом является подлинным. Он лишь проверяет подлинность штрихкода через подсчет контрольной суммы. При возникновении спорной ситуации рекомендуем связаться с производителем товара.
Штрихкод товара несет много полезной информации о производителе, стране и особенностях товара. Наиболее распространенным является стандарт EAN-13. Он состоит из 13 цифр. Выполним расшифровку штрихкода.
Первые 2 или 3 цифры определяют страну-производителя. Каждой стране присвоен 1 или несколько кодов, например для России это значение равно 460-469, для Великобритании 50, а для Канады и США – 00-13. 4 или 5 следующих цифр определяют производителя товара, дальше идет пятизначный код товара, описывающий его название и основные характеристики.
Последняя цифра служит для проверки подлинности штрихкода, это так называемая контрольная сумма. Чтобы проверить штрихкод на подлинность, нужно выполнить ряд арифметических операций:
- Сложить все цифры, стоящие в штрихкоде на четных местах и умножить это число на 3;
- Сложить все цифры, стоящие на нечетных местах кроме последней цифры (контрольной суммы);
- Далее нужно сложить результаты (1) и (2) и отбросить десятки, т.е. оставить от полученной суммы последнюю цифру;
- Вычесть из 10 результат (3) и сравнить его с контрольной суммой. Если значения совпадают – все в порядке, иначе штрихкод поддельный, либо контрольная сумма вычислена неверно.
Штрихкод не соответствует стране производителя
РАСШИФРОВКА ШТРИХКОДА, проверка подлинности штрихкода онлайн
Все сервисы
Ремонт main board
Если неисправна материнская плата SSB TCM1.0E 40-MT01EU-MAI2XG, в первую очередь необходимо проверить все линейные стабилизаторы или преобразователи питания её чипов, а так же, при необходимости, обновить программное обеспечение ПО. Иногда проверить исправность MB можно только заменой.
Помните! Попытки самостоятельного ремонта пользователями телевизора PHILIPS 26PFL3403S/60 без соответствующей квалификации и необходимого опыта, могут привести к серьёзным негативным последствиям!
Ремонт инвертора
Если у PHILIPS 26PFL3403S/60 нет изображения, но есть звук и телевизор управляется с пульта, вероятна неисправность в узлах подсветки дисплея. Могут быть неисправны лампы или преобразователь питания – инвертор. Часто в таких случаях, при включении телевизора, появляется изображение и сразу пропадает.
Необходимо в первую очередь убедиться в исправности электролитических конденсаторов фильтра выпрямителя, питающего инвертор, и проверить лампы LCD, подключив в разъёмы внешние и заведомо исправные для диагностики.Ремонт инвертора VIT7123.53 LOGAN Rev2 VIT71023.53 REV.
2 часто может быть несколько затруднён устройством специальных цепей защиты, которые предназначены отключать его в аварийных случаях в целях противопожарной безопасности при разгерметизации ламп, либо замыканиях или обрывах в высоковольтных цепях и соединениях.
Иногда возникает необходимость в целях диагностики блокировать цепи защиты для возможности производить необходимые замеры в контрольных точках схемы.При диагностике с отключенной защитой необходимо соблюдать меры особой осторожности, ибо есть риск выхода из строя силовых элементов инвертора. После диагностики следует обязательно восстановить цепи защиты для работы инвертора в штатном режиме.
Ремонт модуля питания
Иногда телевизор PHILIPS 26PFL3403S/60 просто не включается. Не горят и не моргают никакие контрольные лампочки на передней панели, телевизор не реагирует на пульт и не издаёт никаких звуков и любых признаков жизни при включении. Наиболее вероятная причина неисправности – выход из строя общего модуля питания PLH800314A CH-04 , PW37C04 , 40-1PL37C-PWF1XG.
При диагностике и ремонте блока питания, в первую очередь следует заменить вспухшие конденсаторы фильтра вторичных выпрямителей и проверить предохранитель и, если он оборван, необходимо выявить причину. Часто в таких случаях обнаруживается лавинный (тепловой) пробой в силовых полупроводниковых элементах модуля – диодах выпрямителя или силовом ключе .
Как правило, ключи обратноходовых преобразователей, в качестве которых используется полевой транзистор N-Fet на отдельном радиаторе, либо интегрированный с ШИМ-контроллером Q110 (8), VIPer22A (8) , GF383820 , L6563 в единую микросхем, достаточно надёжны и редко выходят из строя без причин.
Причины пробоя ключа следует искать, проверяя другие компоненты схемы – электролитические конденсаторы, резисторы и полупроводниковые элементы первичной цепи. Микросхема ШИМ проверяется заменой её на заведомо исправную.Диагностика модулей питания с Корректором Коэффициента Мощности (ККМ) несколько более сложна и требует более детального подхода.
Успех!
В синхронном режиме все почти так же, только не требуется никакой предварительной процедуры установки соединения, упрощается синхронизация и захват времени можно выполнить точнее. Если бы сразу выбрал этот режим сохранил бы время… Я снова не стал усложнять и измерять время именно от последнего бита, а запускал таймер перед началом передачи последнего байта ключа, т.е. включаем таймер и отправляем в передатчик KEY7 (на скриншоте выше, из логического анализатора, видно расстояние между курсорами. Это и есть отсчитываемый отрезок времени).
Этого оказалось более чем достаточно для успешной идентификации. Вот так выглядит перебор одного байта:
По оси абсцисс у нас количество дискрет счетчика, по оси ординат, соответственно, передаваемое значение ключа. Отношение сигнал/шум такое, что даже никаких фильтров не требуется, прямо как в школе на уроке информатики: находим максимум в массиве и переходим в подбору следующего байта.
Первые 6 байт подбираются легко и быстро, чуть сложнее с последним: там просто наглый перебор не проходит, нужен сброс «жертвы» перед каждой попыткой. В итоге на каждую попытку уходит что-то около 400 мс, и перебор идет в худшем случае в районе полутора минут.
Но это в худшем. После каждой попытки запрашиваем статус и, как только угадали, останавливаемся. Я вначале вообще просто быстренько ручками перебрал идентификатор, вставляя в excel вывод консоли и строя график, тем более, что это была разовая задача, но уже для статьи решил дописать автоматический перебор, ради красивой консольки…
Конечно, если бы разработчик затер загрузчик (заменил своим), так просто выкрутиться не получилось бы, но в автомобильной электронике частенько МК вообще не закрыты. В частности в блоке управления с другого отопителя, в котором был установлен V850 того же Renesas все решилось подпайкой пары проводов и копированием прошивки штатной утилитой.
Ссылки: