Easyelectronics.ru

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

Часовой пояс: 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
Сообщения: 3693
может, я не очень догнал, но... если вам известен алгоритм шифрования прошивки+ключ, вы можете сделать свою прошивку, которая сдампит любую память.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 3693
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 часов


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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