Easyelectronics.ru

Электроника для всех
Текущее время: 27 июн 2016, 18:06

Часовой пояс: UTC + 5 часов




Начать новую тему Ответить на тему  [ Сообщений: 293 ]  На страницу 1, 2, 3, 4, 5 ... 12  След.
Автор Сообщение
 Заголовок сообщения: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 05 авг 2011, 22:17 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Для чего? Хочу вытащить из него полную прошивку, попробовать из огрызка Discovery сделать полноценный (ну почти) ST-Link. Естественно, есть аппаратные различия, но они преодолимы - приделать преобразователь уровней и по мелочи всего прочего.
Минут за 15 (код дольше писать ;), чем реверсить) выяснил, что STM8S-Discovery представляется как ST-Link v1.
Вопрос вот в чем - не занимаюсь ли я повторением того, что уже сделано ;)? И будет ли кому результат интересен.

UPD1. Прошивка вытащена, но она зашифрована. Ключ типа уже нашел, реверсирую алгоритм шифра. Схема полного ST-Link тоже похоже нашлась на одной из девборд от ST.
UPD2. Не поверите. Расшифровал :). Теперь надо STM32F103 надыбать (стремно на Дискавери проводить эксперименты :)) и попробовать. Если есть смелые люди с готовой платкой под это дело - обращайтесь, интересно потестить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 14:27 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Так, осталась еще одна часть - идентификационная и то, что не заменяется при прошивке - 0х4000 байт в начале флеша. Есть идеи, как достать?
Пока могу сказать, что можно перешить ST-Link на дискавери в полноценный, но вот склонировать с нуля - надо искать метод дампа этих начальных байт флеша.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 16:01 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3687
может, я не очень догнал, но... если вам известен алгоритм шифрования прошивки+ключ, вы можете сделать свою прошивку, которая сдампит любую память.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 19:24 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Ink писал(а):
может, я не очень догнал, но... если вам известен алгоритм шифрования прошивки+ключ, вы можете сделать свою прошивку, которая сдампит любую память.

Тоже склоняюсь к этому... К тому же там шифрование только в прошиваторе. В самом ST-Link прошивка некриптована.
Прошерстив инет, все больше убедился в полноценности встроенного ST-Link: в STM32VL-Discovery точно такой-же, но обрезаный с другой стороны :) программно тип 0x4a - JTAG Debugger, а в STM8 тип 0x53 - SWIM Debugger, а возможен и там, и там тип 0x4D - JTAG+SWIM Debugger.
Вот бы еще живого владельца ST-Link v1 найти, да попросить пару прог прогнать, было бы полегче.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 20:06 
Старожил
Аватара пользователя

Зарегистрирован: 05 сен 2010, 07:23
Сообщения: 564
Откуда: Томск
У меня версия V1.J12.S3 JTAG+SWIM Debugger

_________________
ZiBlog.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 20:49 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Zheleznjakov писал(а):
У меня версия V1.J12.S3 JTAG+SWIM Debugger

Это, как я вижу по маркировке, именно ST-Link, так? И именно v1. Не возражаете, если я через пару дней закину программок на запустить? Только прочитать, не более. Может и удастся сделать народный отладчик для всех STM :).

PS. Подпаял JTAG к дискавери, флешку, как и следовало ожидать, напрямую не читает, редиска :). А вот в ОЗУ писать/читать дает. Счас ваять буду прожку, чтоб скопировать кусочек флеша в ОЗУ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 21:11 
Старожил
Аватара пользователя

Зарегистрирован: 05 сен 2010, 07:23
Сообщения: 564
Откуда: Томск
да, это фирмовый ст-линк.
шлите...

_________________
ZiBlog.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 21:31 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Даблфолт при чтении флеша... Надо курить устройство защиты.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 21:51 
Старожил
Аватара пользователя

Зарегистрирован: 05 сен 2010, 07:23
Сообщения: 564
Откуда: Томск
я думаю нужно мутить заглушку которая бы имитировала оригинальный на поддельном и потом через оригинальный прошивальщик перешивать или просто записать логи при прошивке девайса

_________________
ZiBlog.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 22:08 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Zheleznjakov писал(а):
я думаю нужно мутить заглушку которая бы имитировала оригинальный на поддельном и потом через оригинальный прошивальщик перешивать или просто записать логи при прошивке девайса

Нет, к сожалению первые 0х3С00 никак не перешиваются. Похоже там зашита логика DFU, и ее еще не правили. Структура прошивки такова:
1. 0х8000000 - 0х8003С00 - ХЗЧ. Предположительно DFU-код, никак не переписывается.
2. 0х8003С00 - 0х8004000 - конфигурационный блок.
3. 0х8004000 - ... - зависит от версии и типа отладчика
4. 0х800D000 - присутствует только в v1, не зависит от типа отладчика.
Есть в наличии 3,4 и частично 2. Надо узнать только блок 1.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 22:38 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3687
DareDen писал(а):
Даблфолт при чтении флеша... Надо курить устройство защиты.

чтение в данном случае - это из запущенной внутри программы? или через jtag?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 22:42 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Ink писал(а):
DareDen писал(а):
Даблфолт при чтении флеша... Надо курить устройство защиты.

чтение в данном случае - это из запущенной внутри программы? или через jtag?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 22:58 
Старожил

Зарегистрирован: 01 июл 2010, 15:30
Сообщения: 467
Откуда: Энгельс
Мне кажется, что гораздо полезнее было-бы зареверсить USB транспорт ST-Link-а, протокол отладчика, чтоб написать свою версию пришивки (часть работы уже сделана в проекте http://www.versaloon.com ) и/или реализовать свой gdb сервер.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 06 авг 2011, 23:08 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
neiver писал(а):
Мне кажется, что гораздо полезнее было-бы зареверсить USB транспорт ST-Link-а, протокол отладчика, чтоб написать свою версию пришивки (часть работы уже сделана в проекте http://www.versaloon.com ) и/или реализовать свой gdb сервер.

Транспорт там примитивный - на основе SCSI команд. Вот что я нашел, пока гуглил: http://code.google.com/p/arm-utilities/ - там многое сделано со стороны поддержки STM32, STM8 - в versaloon и OpenOCD. Но пореверсить можно, вы правы.

ЗЫ. Будет немного свободного времени - сделаю прокси для STLinkUSBDriver.dll - тогда можно будет более полно увидеть, что же происходит в процессе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 07 авг 2011, 10:56 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Хе, вы не поверите... В первом блоке находится... диск FAT16 :). Или его эмуляция, что более вероятно - должно же что-то отрабатывать команды DFU и передачу управления на отладчик (что тоже кстати делается через SCSI-команду). Так что содержимое 2.5к из 16ти доподлинно известно, осталось достать остатки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 07 авг 2011, 12:50 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Цитата:
В первом блоке находится... диск FAT16 :)
Он тоже прикидывается флешкой, когда его подключаешь? А можно там ярлычки переделать? На EE например :)

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 07 авг 2011, 13:01 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
dcoder писал(а):
Он тоже прикидывается флешкой, когда его подключаешь? А можно там ярлычки переделать? На EE например :)

Флешка - это его основной режим. Через него осуществляется прошивка, отладка и прочее. Вообще на мой взгляд сомнительная практика, но работает. Ярлыки поменять в самопальном можно будет элементарно, оригинальный флешер эту область не проверяет. В оригинальном теоретически тоже можно, но для этого надо снять дамп, чтоб знать где менять.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 07 авг 2011, 15:11 
Старожил
Аватара пользователя

Зарегистрирован: 28 авг 2010, 22:21
Сообщения: 353
Откуда: 200км от Москвы
DareDen, если получится - это будет просто шикарно! Как-раз раздобыл дискавери stm8l. Еще есть отладочная плата тыц (сам брал за 22$). Ну я думаю вы понимаете, для чего мне все это нужно: хочу отладчик, для платы с ebay!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 07 авг 2011, 15:44 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
У меня сейчас две задачи:
1. Переписать конфигурационную область, чтоб прошиватор сам принял урезаный ST-Link за полный. Пишу прогу для дампа этой части, запись вроде ясно как сделать - этот вариант выглядит самым реальным.
2. Закинуть "подсадного", чтоб по одному из вызовов дампил память. Как - пока непонятно. Скорее всего изучу оригинальный файл прошивки чтоб найти кончик, за который точно дернут. Если удастся - будет полный клон. Пока вариант из далекого будущего :).
Сдамплеными файлами готов поделиться при условии, что все наковыренное не будет использовано в коммерческих целях и будет доступно всем желающим (короче копилефт :)).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 17 сен 2011, 13:07 
Старожил
Аватара пользователя

Зарегистрирован: 09 ноя 2010, 11:05
Сообщения: 1900
Откуда: Казань
DareDen, ну что заглох проект ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 17 сен 2011, 13:40 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
Не, не заглох. К сожалению, в сутках только 24 часа :), поэтому он слегка задерживается. Сегодня вечером попробую первый способ обмана прошивателя (если не будет еще какого форс мажора в дополнение к произошедшим).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 17 сен 2011, 14:47 
Старожил
Аватара пользователя

Зарегистрирован: 22 апр 2010, 09:08
Сообщения: 623
есть дискавери-8S, которую не жалко, но хотелось бы перепилить на JTAG/SWD/SWIM, помогу в тестировании если нужно


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 17 сен 2011, 16:32 
Старожил
Аватара пользователя

Зарегистрирован: 02 янв 2011, 20:45
Сообщения: 311
Откуда: Саратов, Дубна
marvin_yorke писал(а):
есть дискавери-8S, которую не жалко, но хотелось бы перепилить на JTAG/SWD/SWIM, помогу в тестировании если нужно

Ок, сегодня-завтра ждите прогу для тестирования :). Почту в личку киньте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 23 сен 2011, 18:28 
Свой человек
Аватара пользователя

Зарегистрирован: 15 янв 2011, 02:13
Сообщения: 81
DareDen, салют! Как проходит реверс инжиниринг прошиватора от ST? Когда уже начинать травить плату под полноценный swd/jtag ? =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверсинг прошивателя ST-Link
СообщениеДобавлено: 23 сен 2011, 19:40 
Старожил

Зарегистрирован: 10 авг 2011, 19:26
Сообщения: 632
Кстати, кто-нибудь пробовал прошивку Versaloon ? Пробовал на двух разных демо-платках разные варианты хекса - при подключении устройство не опознано. Вот вывод dmesg:
Код:
[433880.788081] usb 3-3: new full speed USB device using ohci_hcd and address 26
[433881.196066] usb 3-3: device not accepting address 26, error -62
[433881.372084] usb 3-3: new full speed USB device using ohci_hcd and address 27
[433881.780048] usb 3-3: device not accepting address 27, error -62
Похоже на аппаратную ошибку обмена данными, но проверял железо на обрывы/питание и никаких проблем не обнаружил


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 293 ]  На страницу 1, 2, 3, 4, 5 ... 12  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: moto261


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB