mux 13666 что это
mux13666
Ужасы Свинки ПеппыПодробнее
В деревне. Страшная рисованная история №96 (анимация)Подробнее
Не стоило мне кататься на этой горочке в лесу. Подробнее
САМАЯ КРАСИВАЯ СМЕРТЬПодробнее
Мне выбил окно бомжПодробнее
ТОП 5 ЖЕСТИ НА ЗАБРОШКАХ. ЧАСТЬ 29/СЕЗОН #3Подробнее
САМЫЙ ЛУЧШИЙ ЧАНК В МИРЕ?! ВЫБЕРИ ПРАВИЛЬНЫЙ ЧАНК ЧТОБЫ ВЫЖИТЬ! МАЙНКРАФТПодробнее
ДАША КОРЕЙКА РАЗОБЛАЧЕНИЕПодробнее
УДЛИНИЛИ КОРАБЛЬ И ПОСТАВИЛИ 4 МОТОРА, ТЕПЕРЬ ЭТО НАСТОЯЩИЙ ЛАЙНЕР! РАФТ(RAFT)Подробнее
Страшные Призраки, Которых Вы Не Хотели Бы ВстретитьПодробнее
ТРОЛЛЬ НА СИЛЬВЕРЕ (CS:GO)Подробнее
😎 ЧТО ТАКОЕ GENSHIN IMPACT?Подробнее
[#4] БАГИ и СЕКРЕТЫ в Call of Duty 2Подробнее
Вытаскиваем ПО из запароленного микроконтроллера Renesas M16C
Есть у меня знакомый, который занимается ремонтом автомобильного железа. Он как-то принес мне микроконтроллер, выпаянный из блока управления автономного отопителя. Сказал, что его программатор это не берет, а ему хотелось бы иметь возможность переливать прошивки туда-сюда, т.к. блоков много, в железе они часто одинаковые, а вот агрегаты, которыми они управляют отличаются. И вроде и блок есть взамен неисправного, но ПО разное и заменить просто так нельзя. Так как задачка была интересной, решил покопаться. Если тема интересна и вам, прошу под кат.
Подопытным оказался M306N5FCTFP. Это микроконтроллер группы M16C/6N5. Ядро M16C/60 разработано Mitsubishi, а т.к. преемником этой компании по части МК с 2003 года является Renesas, то сейчас эти микроконтроллеры известны именно под этим брендом.
Немного о самом микроконтроллере
Камешек представляет собой 16-разрядный микроконтроллер в 100-выводном QFP корпусе. Ядро имеет 1 МБайт адресного пространства, тактовая частота 20МГц для автомобильного исполнения. Набор периферии так же весьма обширный: два 16-разрядных таймера и возможность генерации 3-фазного ШИМ для управления моторами, всякие UART, SPI, I2C естественно, 2 канала DMA, имеется встроенный CAN2.0B контроллер, а также PLL. На мой взгляд очень неплохо для старичка. Вот обзорная схемка из документации:
Так как моя задача выдрать ПО, то так же весьма интересует память. Данный МК выпускался в двух вариантах: масочном и Flash. Ко мне попал, как выше уже упоминалось, M306N5FCTFP. Про него в описании сказано следующее:
Как вытащить из устройства то, что разработчики втащили
Вполне естественно, что начинать попытки достать что-то из микроконтроллера нужно с изучения механизмов, которые встроены разработчиком чипа для задач программирования памяти. В мануале указано, что производитель любезно разместил в памяти загрузчик, для нужд внутрисхемного программирования устройства.
Как видно из картинки выше, память разбита на 2 части: пользовательская область, и область загрузчика. Во второй как раз с завода залит загрузчик по умолчанию, который умеет писать, читать, стирать пользовательскую память и общается через асинхронный, синхронный, либо CAN-интерфейс. Указано, что он может быть переписан на свой, а может быть и не переписан. В конце концов это легко проверяется попыткой постучаться к стандартному загрузчику хотя-бы через UART… Забегая вперед: производитель отопителя не стал заморачиваться своим загрузчиком, поэтом копать дальше можно в этом направлении. Сразу оговорюсь, что есть еще способ параллельного программирования, но т.к. программатора для этого у меня не было, я не рассматривал этот вариант.
Вход в режим работы загрузчика обеспечивается определенной комбинацией на входах CNVSS, P5_0, P5_5 во время аппаратного сброса. Дальше либо написать свою утилиту для копирования содержимого памяти, либо использовать готовую. Renesas предоставляет свою утилиту, которая называется «M16C Flash Starter», но функция чтения у нее урезана. Она не сохраняет прочитанное на диск, а сравнивает его с файлом с диска. Т.е. по сути это не чтение, а верификация. Однако есть немецкая свободная утилитка с названием M16C-Flasher, которая вычитывать прошивку умеет. В общем начальный инструментарий подобрался.
О защите от считывания
Все бы было совсем просто, если бы в загрузчике не была предусмотрена защита от несанкционированного доступа. Я просто приведу очень вольный перевод из мануала.
Функция проверки идентификатора
Используется в последовательном и CAN режимах обмена. Идентификатор, переданный программатором, сравнивается с идентификатором, записанным во flash памяти. Если идентификаторы не совпадают, команды, отправляемые программатором, не принимаются. Однако, если 4 байта вектора сброса равны FFFFFFFFh, идентификаторы не сравниваются, позволяя всем командам выполняться. Идентификатор — это 7 байт, сохраненных последовательно, начиная с первого байта, по адресам 0FFFDFh, 0FFFE3h, 0FFFEBh, 0FFFEFh, 0FFFF3h, 0FFFF7h, и 0FFFFBh.
Таким образом, чтобы получить доступ к программе, нужно знать заветные 7 байт. Опять же, забегая вперед, я подключился к МК, используя тот же «M16C Flash Starter» и убедился, что комбинации из нулей и FF не проходят и этот вопрос придется как то решать. Здесь сразу же всплыла мысль с атакой по сторонним каналам. Уже начал прикидывать в голове платку, позволяющую измерять ток в цепи питания, но решил, что интернет большой и большинство велосипедов уже изобретено. Вбив несколько поисковых запросов, довольно быстро нашел на hackaday.io проект Serge ‘q3k’ Bazanski, с названием «Reverse engineering Toshiba R100 BIOS». И в рамках этого проекта автор решал по сути точно такую же задачу: добыча встроенного ПО из МК M306K9FCLR. Более того — на тот момент задача им была уже успешно решена. С одной стороны я немного расстроился — интересная загадка разгадана не мной. С другой — задача превратилась из поиска уязвимости, в ее эксплуатацию, что обещало гораздо более скорое решение.
В двух словах, q3k точно по такой же логике начал изучение с анализа потребляемого тока, в этом плане он был в гораздо более выгодных условиях, т.к. у него был ChipWhisperer, этой штукой я до сих пор не обзавелся. Но т.к. его первый зонд для снятия тока потребления оказался неподходящим и вычленить из шумов что-то полезное у него не получилось, он решил попробовать простенькую атаку на время отклика. Дело в том, что загрузчик во время выполнения команды дергает вывод BUSY, чтобы проинформировать хост о том, занят он, или готов выполнять следующую команду. Вот, по предположению q3k, замер времени от передачи последнего бита идентификатора до снятия флага занятости мог послужить источником информации при переборе. При проверке этого предположения перебором первого байта ключа действительно было обнаружено отклонение по времени только в одном случае — когда первый байт был равен FFh. Для удобства измерения времени автор даже замедлил МК, отключив кварцевый резонатор и подав на тактовый вход меандр 666кГц, для упрощения процедуры измерений. После чего идентификатор был успешно подобран и ПО было извлечено.
Первый блин — граблями
Ха! Подумал я… Сейчас я быстренько наклепаю программку к имевшейся у меня STM32VLDiscovery c STM32F100 на борту, которая будет отправлять код и измерять время отклика, а в терминал выплевывать результаты измерений. Т.к. макетная плата с целевым контроллером до этого подключалась к ПК через переходник USB-UART, то, дабы ничего не менять на макетке, работать будем в асинхронном режиме.
Когда при старте загрузчика вход CLK1 притянут к земле, он понимает, что от него хотят асинхронного общения. Собственно потому я его и использовал — подтяжка была уже припаяна и я просто соединил проводами две платы: Discovery и макетку с целевым M306.
Заметка по согласованию уровней:
Т.к. M16 имеет TTL-уровни на выводах, а STM32 — LVTTL (упрощенно, в даташите подробнее), то необходимо согласование уровней. Т.к. это не устройство, которое, как известная батарейка, должно работать, работать и работать, а по сути подключается разок на столе, то с трансляторами уровней я не заморачивался: выходные уровни от STM32 пятивольтовый МК переварил, в смысле 3 вольта как «1» воспринимает, выходы от М16 подаем на 5V tolerant входы STM32 дабы ему не поплохело, а ногу, которая дергает RESET M16 не забываем перевести в режим выхода с открытым стоком. Я вот забыл, и это еще +2ч в копилку упущенного времени.
Этого минимума достаточно, чтобы железки друг друга поняли.
Логика атакующего ПО следующая:
В итоге, для всех значений результаты были идентичны. Полностью идентичны. Тактовая частота таймера у меня была 24Мгц, соответственно разрешение по времени — 41,6 нс. Ну ок, попробовал замедлить целевой МК. Ничего не поменялось. Здесь в голове родился вопрос: что я делаю не так, как это делал q3k? После сравнения разница нашлась: он использует синхронный интерфейс обмена (SPI), а я асинхронный (UART). И где-то вот здесь я обратил внимание на тот момент, который упустил вначале. Даже на схемах подключения для синхронного и асинхронного режимов загрузчика вывод готовности назван по-разному:
В синхронном это «BUSY», в асинхронном это «Monitor». Смотрим в таблицу «Функции выводов в режиме Standart Serial I/O»:
«Семён Семёныч…»
Упущенная вначале мелочь завела не туда. Собственно, если в синхронном режиме это именно флаг занятости загрузчика, то в асинхронном (тот, который serial I/O mode 2) — просто «мигалка» для индикации работы. Возможно вообще аппаратный сигнал готовности приемопередатчика, оттого и удивительная точность его поднятия.
В общем перепаиваем резистор на выводе SCLK с земли на VCC, припаиваем туда провод, цепляем все это к SPI и начинаем сначала…
Успех!
В синхронном режиме все почти так же, только не требуется никакой предварительной процедуры установки соединения, упрощается синхронизация и захват времени можно выполнить точнее. Если бы сразу выбрал этот режим сохранил бы время… Я снова не стал усложнять и измерять время именно от последнего бита, а запускал таймер перед началом передачи последнего байта ключа, т.е. включаем таймер и отправляем в передатчик KEY7 (на скриншоте выше, из логического анализатора, видно расстояние между курсорами. Это и есть отсчитываемый отрезок времени).
Этого оказалось более чем достаточно для успешной идентификации. Вот так выглядит перебор одного байта:
По оси абсцисс у нас количество дискрет счетчика, по оси ординат, соответственно, передаваемое значение ключа. Отношение сигнал/шум такое, что даже никаких фильтров не требуется, прямо как в школе на уроке информатики: находим максимум в массиве и переходим в подбору следующего байта. Первые 6 байт подбираются легко и быстро, чуть сложнее с последним: там просто наглый перебор не проходит, нужен сброс «жертвы» перед каждой попыткой. В итоге на каждую попытку уходит что-то около 400 мс, и перебор идет в худшем случае в районе полутора минут. Но это в худшем. После каждой попытки запрашиваем статус и, как только угадали, останавливаемся. Я вначале вообще просто быстренько ручками перебрал идентификатор, вставляя в excel вывод консоли и строя график, тем более, что это была разовая задача, но уже для статьи решил дописать автоматический перебор, ради красивой консольки…
Конечно, если бы разработчик затер загрузчик (заменил своим), так просто выкрутиться не получилось бы, но в автомобильной электронике частенько МК вообще не закрыты. В частности в блоке управления с другого отопителя, в котором был установлен V850 того же Renesas все решилось подпайкой пары проводов и копированием прошивки штатной утилитой. Это в мире ЭБУ двигателем целые криптовойны. Видимо не нравится производителям явление чип-тюнинга и других видов вмешательства… Хотя это как гонка брони и снаряда — железки круче, дороже, но победителя нет…
AMD и Intel уже 4 января анонсируют несколько новинок на выставке CES 2022
Приготовьтесь, в следующем месяце энтузиастам ПК будет нужно обсудить много нового оборудования. 4 января Intel и AMD проведут свои собственные виртуальные пресс-конференции, которые, как ожидается, охватят несколько продуктов, включая высокопроизводительные и мобильные процессоры, а также новейшую графику.
AMD на выставке CES 2022
Выставка CES, являющаяся «потребительской» выставкой, часто связана с рынком мобильных ПК, поэтому мы можем увидеть последние инновации в области процессоров и графических процессоров, предназначенные для ноутбуков и других ультратонких гаджетов. Ожидается, что на выставке CES AMD представит свою серию высокопроизводительных мобильных устройств Ryzen 6000H на базе 6-нм микроархитектуры Zen3 +, впервые с графическим IP-адресом RDNA2.
Компания также пообещала продемонстрировать грядущие графические решения AMD, однако это расплывчатое заявление не дает никаких указаний на то, ждем ли мы графические процессоры для мобильных или настольных ПК. Ожидается, что в середине января компания выпустит свой настольный графический процессор Radeon RX 6500 XT. Слухи также предполагают, что мы можем увидеть обновление серии Radeon 6000.
Intel на выставке CES 2022
У Intel на самом деле может быть гораздо больше разработок, чем она можно поделиться на выставке CES. Компания уже подтвердила свои продукты в первом квартале 2022 года, такие как серия высокопроизводительных мобильных процессоров 12-го поколения «Alder Lake-P», первая высокопроизводительная гибридная архитектура Intel для игровых ноутбуков. Кроме того, мы также ожидаем узнать больше о сериях процессоров среднего и начального уровня для настольных ПК, а также о других материнских платах серии 600.
Что еще более важно, ожидается, что Intel представит свои графические процессоры Arc Alchemist. Предполагается, что новая серия дискретных графических процессоров сначала поступит в сегмент ноутбуков, однако мы очень ожидаем, что Intel объявит дату запуска серии настольных ПК Arc.
Инсайдер Dayman55 так же сообщил, что 15 декабря Intel также проведет предварительный брифинг для прессы по темам CES 2022.
NVIDIA на выставке CES 2022
Где-то в промежутке между этими двумя событиями мы также ожидаем, что NVIDIA анонсирует обновленную серию мобильных устройств GeForce RTX 30 во главе с графическим процессором для ноутбуков RTX 3080 Ti на базе процессора GA103S. Однако по варианту SUPER было не так много утечек, поэтому мы не можем быть уверены, будут ли они тоже.
Некоторые высокопроизводительные видеокарты для настольных ПК (RTX 3090Ti 24 ГБ, 3080 12 ГБ, 3070 Ti 16 ГБ) также намечены к запуску в январе, что означает, что у NVIDIA также может быть возможность рассказать о своих будущих продуктах для настольных ПК.
Mux 13666 что это
Тут список моделей 15″ на официальном сайте.
Тут список моделей 17″ на официальном сайте.
Отсекаем лишние регионы в заголовке таблицы, и все остальное, что вам не нужно и получаем индексы моделей которые вас удовлетворяют по комплектующим.
Крайне НЕ желательно давать Windows 10 автоматически устанавливать драйвера на ноутбук! (методы отключения тут и тут) После некоторых не совсем подходящих драйверов возможны всякие глюки системы. Рекомендуется в ручном режиме ставить драйвера с официального сайта и не подрубать ноутбук к интернету до установки всех драйверов. (Понятное дело, что драйвера для вашего ноутбука нужно закачать на флешку еще до установки системы). Беспроигрышный вариант закачки это на официальном сайте в разделе драйверов в окно поиска вбить именно серийный номер вашего ноутбука (написан на нижней крышке s/n:) обычно 8 букв и цифр. Т.к. бывает, что на одной модификации ноутбука стоит железо от разных поставщиков, а так мы точно скачаем нужные нам драйверы. При установке драйверов их установочные файлы очень желательно запускать от имени администратора. Потом, если есть очень сильное желание иметь все последнее драйвера, обновлять их через родную утилиту Vantage, она делает это более осмотрительно, чем сама Windows 10.
Если даже после установки всех драйверов в диспетчере устройств не появляется встроенная в процессор видеокарта. То для ее активации нужно перейти в гибридный режим. Это делается в биосе на главной странице в нижнем правом углу, включаем режим switchable graphics. Или в программе Vantage, но после активации в ней этой опции, нужно перезагрузить ноутбук.
Если у вас появляются черные экраны между переключением ноутбука при отключения его от блока питания (переход в автономное питание), то это у вас отключается опция HDR, т.к. она не работает при автономном питании. Чтобы избавиться от черных экранов отрубите эту опцию (HDR) в настройках графики.
Если часто вылетают некоторые игры и есть проблема работы микрофона. То стоит избавиться от Nahimic Рецепт удаления и защита от установки этой программы при установке чистой системы, здесь.
Если перестал работать тачпад, но в системе он виден. Выключаем ноутбук. Отключаем кабель питания. Зажимаем и упорно удерживаем нажатой кнопку питания более 60 секунд, не обращая внимание на поведение ноутбука. Обычно поле подобных манипуляций тачпад оживает.
Если есть щелчки в наушниках или динамиках, то пытаемся от них избавиться по данному мануалу.
Если у вас присутствует шипение или шумы в аудиотракте, например они слышны в наушниках. То пробуем немного снизить мощность встроенного Wi-Fi. Панель управления \ система \ диспетчер устройств \ сетевые адаптеры. Ищем в списке WI-FI-карту, выделяем ее, ПКМ на ней, свойства \ дополнительно \ мощность передачи, снижаем на 4 уровень (Средн.-макс.), ок.
Если даже это не помогло, то заходим в Панель управление \ Электропитание \ Настройка системы электропитания \ Изменить дополнительные параметры электропитания \ Параметры адаптера беспроводной сети \ Режим энергосбережения, и снижаем с «максимальной производительности», до, например, «минимальное энергосбережение».
Если система Windows автоматом устанавливает новую прошивку на биос, то в диспетчере устройств, в разделе Firmware отключаем процесс System Firmware. В русском варианте вкладка «Встроенное ПО».
Что такое мультиплексор и демультиплексор
Что такое оптические мультиплексоры (MUX) и демультиплексоры (DEMUX)?
Мультиплексоры и демультиплексоры – это оптические устройства, выполняющие функции объединения и коммутации нескольких информационных каналов в сетях и волоконно-оптических трактах. На входные порты мультиплексора поступают потоки данных, которые объединяются в общий трафик и передаются через выходной порт по оптоволоконной линии связи. На приемной стороне происходит обратный процесс, позволяющий выделить исходные сигналы и отправить их по назначению.
На сегодняшний день используются две категории мультиплексоров и демультиплексоров:
Пассивные WDM мультиплексоры
Отличия мультиплексоров и демультиплексоров WDM
Мультиплексоры WDM выполняют объединение каналов с различными длинами волн и передают групповой трафик на приемную сторону. Демультиплексоры производят обратные действия с выделением отдельных частотных каналов. Конструкция оборудования, изготовленного на основе пассивных фильтров, полностью идентична, а входы/выходы работают в прямом и обратном направлении.
Единственное отличие существует в мультиплексном оборудовании CWDM, отличающемся реализацией функций мультиплексирования/демультиплексирования посредством каскада последовательно соединенных одноканальных фильтров. В мультиплексоре фильтры выстраиваются по принципу возрастания длины волны, а в демультиплексоре – по принципу убывания с целью выравнивания затухания в каждом канале.
Выгода применения WDM мультиплексоров/демультиплексоров
В обычных системах передачи цифрового трафика по оптоволокну, таких как SDH, существует возможность передачи только одного канала данных по паре оптических волокон. Установка мультиплексоров/демультиплексоров позволяет организовать передачу до 96 каналов по тем же двум волокнам. Огромный прирост производительности способствует популярности этого оборудования у операторов связи, интернет-провайдеров, владельцев мультисервисных сетей.
Применение систем WDM-мультиплексирования исключает необходимость постоянного наращивания емкости волоконно-оптических кабелей и затрат на их приобретение и прокладку. Преимущества решения особенно ярко проявляются на протяженных ВОЛС, проложенных в малодоступной местности. При росте объема передаваемого трафика достаточно установить WDM-мультиплексоры, чтобы увеличить пропускную способность в десятки раз.
Виды WDM мультиплексоров
DWDM-мультиплексоры производятся на базе фильтров AWG, представляющих собой массив волноводов из диоксида кремния. В состав фильтра входят несколько функциональных элементов, обеспечивающих передачу и прием оптических сигналов по оптоволокну:
Дорожки волноводов размещаются в определенных местах вдоль плоскости кристалла, позволяя осуществить пространственное разделение каналов.
Как происходит мультиплексирование?
Рассмотрим процесс мультиплексирования нескольких каналов с разной длиной волны. Оптические сигналы поступают на фокусирующую пластину, на которой происходит их фокусировка и интерференция. На выходе образуется мультиплексный сигнал, распространяющийся одновременно по всем дорожкам массива волноводов. С-линза фокусирует этот сигнал в оптическое волокно для последующей передачи по волоконно-оптической линии связи. На приемной стороне выполняется обратный процесс демультиплексирования.
Световое излучение на всех длинах волн проходит одинаковый путь по массиву волноводов. Поэтому, вносимое затухание для мультиплексоров AWG на любой длине волны одинаково и составляет 5 – 7 дБ.
Почему стоит выбрать нас?
Обращайтесь к нам при необходимости срочного повышения производительности оптоволоконной сети или магистральной ВОЛС любого масштаба и протяженности. Наши менеджеры помогут выбрать оборудование, полностью соответствующее специфике проекта и особенностям топологии сети.