Матрицы для мониторов

Матрицы для мониторов

Сначала подумал прикол какой то или шутка (как то раньше не встречался с таким, хотя это есть и в предыдущих версиях Виндовс), попробовал — все работает.

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

Матрицы для мониторов

Можно также создавать на рабочем столе папки, которые обеспечат быстрый доступ к отдельным настройкам компьютера. Имена, определяющие их назначение, и ключи доступа:

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

Кто знал о таком?

Вот еще из интересного компьютерного : вот говорят, что Intel против AMD: развязка близка, а вот 25 хитростей на YouTube, о которых мало кто знает. Давайте я вам еще напомню про Простые, но эффективные приёмы для ускоренной работы в Excel/ А вот еще полезности для вас:  вот например Как «гуглить» правильно и эффективно !, а вот некоторые Экспериментальные функции браузера Google Chrome. Знаете ли вы к тому же Зачем нужна «лишняя» кнопка Win?

Матрицы для мониторов

Как известно, в операционной системе Windows Vista, 7, 8 и 10 есть своеобразная пасхалка — GodMode (режим Бога). Начиная с версии Vista можно создать папку со специфическим именем, которая перенаправляет на настройки Windows или служебные папки, такие как «Панель управления», «Компьютер», «Принтеры» и проч.

Очень удобная фича для управления настройками в системе и для системного администрирования.

К сожалению, режим Бога используют не только сисадмины, но и авторы вирусов.

Специалисты из антивирусной компании McAfee Labs рассказывают о трояне Dynamer, который использует режим Бога, чтобы скрыться от обнаружения в системе.

Dynamer при установке записывает свои файлы в одну из таких папок внутри %AppData%. В реестре создаётся ключ, который сохраняется после перезагрузки, запуская каждый раз бинарник зловреда.

Матрицы для мониторов

Вот содержимое папки, если открыть её в проводнике.

Матрицы для мониторов

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

Матрицы для мониторов

Аналогично, удаление невозможно из консоли.

Матрицы для мониторов

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

Троян Dynamer впервые обнаружен несколько лет назад, но Microsoft до сих пор считает его «серьёзной угрозой» для пользователей Windows.

В качестве бонуса.

Список имён папок (GUID) в режиме Бога для быстрого доступа к отдельным настройкам Windows

Полный список GUID с указанием поддерживаемых версий Windows см. в документации Microsoft.

Матрицы для мониторов

Подопытным оказался 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. Про него в описании сказано следующее:

  • Flash memory version
  • 128 KBytes + 4K (дополнительные 4K — так называемый блок А в подарок пользователю для хранения данных, но может хранить и программу)
  • V-ver. (автомобильное исполнение с диапазоном +125°C)

Как вытащить из устройства то, что разработчики втащили

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

Матрицы для мониторов

Вход в режим работы загрузчика обеспечивается определенной комбинацией на входах 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кГц, для упрощения процедуры измерений. После чего идентификатор был успешно подобран и ПО было извлечено.

Первый блин — граблями

Матрицы для мониторов

Когда при старте загрузчика вход 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) — просто «мигалка» для индикации работы. Возможно вообще аппаратный сигнал готовности приемопередатчика, оттого и удивительная точность его поднятия.

Успех!

Матрицы для мониторов

Этого оказалось более чем достаточно для успешной идентификации. Вот так выглядит перебор одного байта:

Матрицы для мониторов

Матрицы для мониторов

  • https://www.dataman.com/media/datasheet/Renesas/M16C6N5Group.pdf
  • https://hackaday.io/project/723-reverse-engineering-toshiba-r100-bios/log/51302-ec-firmware-dumped
  • https://q3k.org/slides-recon-2018.pdf

Матрицы для мониторов

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

Замена матрицы на мониторе

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

Типы матриц для мониторов

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

  • TN матрица – простейшая технология, имеет меньшее время отклика среди современных матриц и невысокую себестоимость, но цветопередача и углы обзора гораздо ниже, чем у следующих 2 типов
  • IPS матрица обладает увеличенным углом обзора, высокой контрастностью и цветопередачей, но в то же время имеет низкое время отклика.
  • *VA матрицы – значительно превышают характеристики двух предыдущих по глубине цветов и точности их воспроизведения, обладают бОльшим углом обзора

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

Матрицы для мониторов

Оцените статью
Huawei Devices
Добавить комментарий