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

UniSoft

Свой
  • Постов

    209
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Весь контент UniSoft


  1. Tracealyzer для FreeRTOS

    если вдруг кому либо нужна крайняя версия: 4.8.1 взять можно тут: хттп://mega.nz/file/sxEixKqZ#t_g42QWDEINPr4ArKPogOaGmqX_ft5exCDUJ4bGKU3U поддерживает следующие RTOS: FreeRTOS SafeRTOS Keil RTX5 Micrium µC/OS-III On Time RTOS-32 OpenVX/Synopsys VxWorks ThreadX BareMetal Linux Zephyr UltraSoC
  2. Ну да, там и есть SHA-1... цифровая подпись ведь так и работает... Хэш данных шифруется несимметричным алгоритмом шифрования (обычно RSA, либо ECC). естественно один. Приватный ключ находится у девелоперов и они могут им подписывать данные. И соответствено, в прошивке (да и в dll'ке) лежит публичный ключ для дешифровки и проверки этой подписи.
  3. Конечно можно прочитать, только зачем? не правильно понимаете. Есть цифровая подпись (алгоритм RSA2048) и ею подписаны серийный номер и Unique ID. Подписать свои SN и Unique ID вы не сможете... потому, что нет приватного ключа. Вот потому и приходится делать патч, подменяющий Unique ID в рантайме. Сама прошивка также подписана... целостность прошивки проверяет как бутлоадер (прежде, чем передать ей управление), так и сама прошивка (проверяет сама себя). Подпись и Unique ID также считывается и проверяется самой dll'кой.
  4. Там не все так просто! Если сохранили серийный номер и uniqueID контроллера, то есть возможность сделать клон... вот только это будет клон а не оригинал, со всеми вытекающими! Придется найти прошивку клона, она понадобится в любом случае (в ней будет патч, подменяющий uniqueID). Ну и если так принципиально склонировать с тем же SN, то придется заменить в этой прошивке: SN, SN_Checksum, Signature на свои (с этим не сложно), а вот найти где лежит uniqueID для подмены будет не просто, придется дизассемблировать и изучать.
  5. Еще не ковырял его. Но вот что сразу заметил, так это то, что они задействовали уровень защиты CRP3 (ранее был CRP1), а это значит, что прошить его через USART - более невозможно (просто не войдет в ISP boot mode). Потому не рекомендую с ним особо заигрывать, в случае слета, возможности его восстановить нету. JTAG/SWD - отключен (при любом CRP). Ранее (при CRP1), хотя-бы можно было войти в ISP бут режим (установив низкий уровень на ноге P2_7), где был доступен ограниченный набор команд (включая полное стирание, а следовательно и снятие защиты). С V12 про это можно забыть.
  6. Потому и нету. Если нужно, то вот... Но исключительно на свой страх и риск! Так это не у меня нужно просить...
  7. Считали Моя утилита позволяет, но если это клон, то с большой вероятностью он помрет, патч не справится с новой версией.
  8. Обновил, но проверить не могу, по причине отсутствия v12... JLinkTool_v1.01_UNIS.zip
  9. Так это версия V11, там так и написано... По расположению дорожек (с данной стороны) и компонентов - один в один с версией V10.1 (мой EDU)... Видимо только программно отличается. У меня его не было, соответственно и поддержки нет.
  10. Зачем в личку? сюда кидайте, может и другим будет интересно...
  11. Не заморачивайтесь, обычно там стоит защита, а следовательно JTAG\SWD отключен. Вот что говорит даташит Так это единственный способ, иначе я бы не стал так заморачиваться и воспользовался JTAG/SWD (но, как уже написал, он отключен). Как это сделать описано в документации на контроллер. У них там свой бутлоадер... Очевидно, кривой бутлоадер (вероятно использует ту же область памяти, где хранятся настройки). Видимо еще и сам патч кривой. Один из методов патча (из тех, что я видел, как раз, последний) основывается на подмене вектора прерывания MemFault и настройкой MPU (Memory Protection Unit). При настройке MPU там нужно добавить все используемые страницы памяти. Ну кроме той, где лежит уникальный серийный номер. Так при попытке его считать и возникает исключение (прерывание), которое собственно и обрабатывается как нужно. Подозреваю, что доступ к памяти (0x10080000) сконфигурировали неверно, ну либо вообще забыли. PS: Не имея дампа на руках, я могу только предполагать и гадать.
  12. Это чисто китайский клон... схему на него не найдете. там всего несколько буфферов задействовано в каждом. часть сигналов работаю на ввод, часть на вывод. А SN74ALVC164245 не способна задать направление для каждого буффера, вот потому и две (одна на ввод, другая на вывод... одной не обойтись). Тут ключевое слово - КИТАЙСКИЙ... слепили из того, что было... каких 12? там всего максимум 8 сигналов выходят на разъем, и некоторые включены парралельно, ну т.е. на ввод/вывод.... и некоторые работают либо как вход, либо как выход. там либо на контроллер идет, либо на выход... проблем вызвонить нету... там такой возможности нет... JTAG/SWD/... - это серийные интерфейсы... Зря так решили! оно совершенно не подходит для этих целей. зачем? Все есть уже готовое... и стоит не на много дороже. https://aliexpress.ru/item/32944486685.html?sku_id=66180610257 если копнете чуть глубже, то удивитесь на сколько гибкая FT2232HL... на ней и UART и SPI/I2C можно реализовать (даже готовые библиотеки имеются на сайте), да и все, что угодно... Кодить (на PC) под нее тоже очень просто.
  13. bootloader.bin это оригинальный бутлоадер, второй файл - хрень какая-то самописная. чем отличается - не знаю, но для полноценного бутлоадера он слишком маленький, тратить время на его разбор у меня нет никакого желания (это не один час).
  14. так, только не нужно вам это... у вас уже все 5 лицензий установлены. добавив любое несуществующее, получите defected, без возможности удаления. для лицензий из кейгена нужно использовать JLinkLicenseManager.exe, так лицензии сохраняются в реестре а не в самом JLink'е
  15. не важно какую dll вы возьмете, бутлоадер все равно не даст понизить версию прошивки. Ну и некоторые прошивки теперь уже лежат в отдельных файлах и в том числе: .\Firmwares\JLink_V11.bin файл сжат, первые 512 байт содержат строку - идентификатор/версия/дата, ее менять нельзя, она потом сравнивается с тем, что в распакованном файле, иначе файл будет молча проигнорирован. invalidatefw помогло бы, если бы коннект проходил, но процедура подключения к j-link'у использует некоторые команды, которые не поддерживаются бутлоадером (их там нет), а любая неизвестная бутлоадеру команда заводит его в бесконечный цикл, и он перестает как-либо отвечать. Уж не знаю, они это сделали преднамеренно или просто так получилось... Вот потому вы и видите ту самую надпись: "Connecting to J-Link via USB..." и все... парам-парам-пам! Я попробовал на своем, прошился без проблем. если нужно вот: https://mega.nz/file/Ah8SGYCC#VfBVxJLw39h6_muKoqOqZFM2XdfozJQkkhpIswfzOFc Пока изучал ваш дамп за одно нашел почему и мой патч с V11 не работал... поправил и перешил в V11... моя утилита позволяет конвертировать V10<->V11, но я эти опции не стал документировать, убивали мой клон, теперь вот знаю почему.
  16. Посмотрел я ваш дамп, у вас использовали несколько иной подход. В общем работает он так: кастомный бутлоадер патчит пару векторов в прошивке: HardFault_Handler и MemManage_Handler, а также настраивает MPU, где ставит запрет на доступ к памяти 0x10400100...0x1040011F (это точка входа в IAP). Таким образом при первом же обращении к IAP, сработает исключение (один из тех самых подмененных векторов), а там в обработчике прерывания отключается MPU и настраивается FlashPatch, таким вот образом они обошли обнуление FlashPatch. Но беда вот в чем, теперь девелоперы добавили проверку векторов (считают SHA256 всего, даже дату, все кроме 3 байт месяца), с этим вообщем-то и связан вылет в бут режим.
  17. Так у вас версия V11 а не V10... Не помните какая последняя версия у вас работала? Старые версии вам ставить нет никакого смысла, они ничего не знают про V11 (его тогда еще не существовало), поэтому и ничего не делает, потому-что попросту не распознает его. Соответственно и комплект восстановления также не поможет, он только для V10. Можно конечно попробовать заменить в dll строки "J-Link V10 " на "J-Link V11 ", тем самым залив прошивку от V10, и уже потом сделать invalidatefw в последней рабочей версии. Я не знаю с какой именно версии появилась поддержка V11, надо ее искать и патчить, но это очень не просто, в ней прошивки уже упакованы. Гляну дамп, может что еще добавлю.
  18. Как именно? Должно видеть! Вы же сами пишете: "прогресс бар бежит"... Про это я уже писал, bootloader сравнивает версии и если она ниже или равна той, что уже прошита в jlink'е, то данные принимаются в холостую, без реальной записи во Flash. "exec invalidatefw" выполняет ту же процедуру прошивки, только проделывает маленький трюк, переводит месяц в верхний регистр. ну т.е. вместо "J-Link V10 compiled Jul 22 2022 11:40:29" сделает "J-Link V10 compiled JUL 22 2022 11:40:29" тет самым форсирует процесс записи. Что значит уже обнулен? в клоне есть кастомный код - патч (в бутлоадере), который собственно и настраивает FlashPatch, а затем стартует прошивка, которая (начиная с версии 6.32i) и обнуляет эти регистры, далее проверяется сигнатура, и соответственно проваливается (ведь uniqID не подменился), ну и уходит в boot mode. Куда копать спрашиваете? Ну причины этого просты: 1. Более новая версия прошивки, которая обходит/дезактивирует патч. (Я не могу знать какие еще есть патчи, я видел и разбирал только тот, что бы у меня в клоне). 2. Повреждена сигнатура 3. Поврежден серийный номер либо его контрольная сумма. --- Решения: пункт 1, обходится понижением прошивки (но нужно форсировать запись, увеличив например год), остальные 2 не имеют простого решения, кроме как полной перепрошивкой... Две страницы назад я выкладывал свою утилиту, можете запустите exe без параметров, что она напишет? Она проделывает все те-же проверки, что и в jlink, и выводит инфу, может что станет более понятно. Ну и дамп можете снять (мой email есть в readme). Это относится к V10 и выше... Для V9 можно вообще не заморачиваться, там особо нет никаких ограничений... даже серийный номер можно менять, и сигнатура не обязательна (допускается ее отсутствие если забита FF).
  19. Если кому нужно, написал утилиту... раз уж уже итак все слили и даже в исходниках, то и скрывать более нечего, хотя у меня немного другой подход... Что может: + позволяет слить полный дамп, как с оригинала (LPC4322), так и с клонов (LPC4337). + стереть\записать OEM штамп и встроенные лицензии. (избавиться от EDU, ну либо вернуть EDU) + сгенерировать и\или добавить лицензии, в любой из трёх путей (OTS, Config, Registry) https://mega.nz/file/g50FTbbT#u5U6o_PXUFCawGhKprBAh1Hwt1-9B9yyfbpN-Jg6IPI пaсc: electronix.ru Все операции вы делаете на свой страх и риск!!! Обязательно сохраните дамп, прежде чем что-либо делать! Хотя все операции итак сохраняют бэкап. Если не трудно, скиньте дамп на почту (смотрите в readme.txt), я посмотрю, что там такое.
  20. Эта софтина отсылает китайцам UID и сигнатуру вашего J-Link'а, после чего они могут делать клоны с вашим серийным номером.
  21. Ну если обновляли, значит у вас более новая версия патча. Как именно она работает, не знаю, не видел (нет ни дампа, ни самого такого клона). У меня свой патч. Я знаю несколько путей решения, как с использованием FlashPatch, так и без. Но дело не в этом. В вашем случае, никакого восстановления не нужно и не требовалось и нет никаких проблем с обновлением прошивки JLink. Достаточно было просто откатить драйвера назад до версии 7.56d (в более поздних версиях проверка в самой dll!!!) Никто не мешает поставить новые драйвера, обновить прошивку JLink, затем откатить драйвера до 7.56d. комплект для восстановления нужен только для первой версии патча и для вывода JLink из BOOT режима (красный светодиод моргает).
  22. FlashPatch есть во всех контроллерах Cortex, но может быть отключена производителем. Почему LPC4337 я уже писал тут. Отключение FlashPatch (в самой прошивке!) было введено начиная с версии 6.32i Потому версия 6.33h является самой последней, которая не имеет отключения FlashPatch. И да 6.33h (нечётное!), это BETA версия и она старше, чем 6.32i Еще раз, версия 6.33h самая последняя, которая содержит прошивку не имеющую отключения FlashPatch. Да, дата изменена, чтобы обмануть бутлоадер (который не позволяет понизить версию!), прикинувшись более новой версией. Ну отредактируйте, если больше нечем заняться, но результат я уже описал - получите кирпич.
×
×
  • Создать...