Easyelectronics.ru

Электроника для всех
Текущее время: 24 сен 2020, 06:09

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 110 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 02 ноя 2019, 13:12 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Atomic-dm писал(а):

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


Плюсую... никто не будет пытаться взломать несложный код.

Что касается предложенного автором алгоритма защиты - по мне он абсолютно оправдан. Заливаешь бутлоадер и закрываешь проц. Только имей ввиду если STM32, закрывать изнутри рисковано, при анлоке, не всегда выполняется Mass Erase, я с этим случайно столкнулся, даже видео заснял.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 02 ноя 2019, 23:00 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5883
RepStosw, у тебя появляются адекватные мысля, все же ты небезнадежен, хоть и из волшебной страны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 03 ноя 2019, 21:51 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
forummailandlogin писал(а):
zacher писал(а):
Плюсую... никто не будет пытаться взломать несложный код.
Говори за себя, и откуда ты знаешь на сколько он сложен?


Я и говорю за себя, так как в своё время занимался много реверсом, и знаю что это за труд.
Если шибко умный, и можешь легко всё на свете реверсить, могу предложить задачку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 03 ноя 2019, 23:02 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Если задаться целью, можно взломать и раскопать любой код, благо, в микроконтроллерах его не слишком много. Доказательства - да вон еще в недавнем прошлом, всего то лет 10 назад мы все жили на "крякнутом" ПО для компутеров, которое являлось весьма сложным и объемным. 10 лет назад мы даже не думали, что ПО надо покупать - да мы все пользовались "поломанным" - от операционки до плееров.
Так что, как ни шифруйся - всё равно поломают, была бы цель. Можно только несколько усложнить процесс от взлома "с наскоку", прописывая ключ не напрямую, а через математические и комбинаторные операции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 03:17 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Господа!

А что мы ходим вокруг да около?
Вот конкретная задача. Есть дамп процессора H8SX https://cloud.mail.ru/public/veCa/257tvqGGB.
Найдите где тут реализован UDS протокол на CAN шине.
Ида вам в помощь, процессор этот там поддерживается.
Так сказать, перейдём от теории к практике ;-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 03:25 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 682
Откуда: Санкт-Петербург
может лучше уж для примера какой-нибудь код на stm32 ?
было бы даже любопытно если бы кто-нибудь показал свой опыт в дизассемблировании хотя бы какой-нибудь простого кода на stm32


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 09:16 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Для этого надо хорошо знать структуру и систему команд этого процессора и иметь опыт чтения листинга.
Например, если мы имеем опыт в СТМ32, то там очень легко найти реализацию этого вашего КАН. Для этого надо найти цифры адресов, принадлежащих регистрам КАН.

Для СТМа:
например мы видим в тексте строчку:
40021000 .word 0x40021000
ага, это базовый адрес регистров RCC. Значит, где-то рядом, обычно выше по тексту, будет работа с RCC. Изучаем текст:
ldr r2, [pc, #92]
ну да, вот оно, первое обращение к регистрам RCC - загрузка базового адреса RCC.
Ну и так далее. Если знать систему команд (ассемблер), то можно прочитать по шагам все действия. Можно IDA-й получить даже сишный более-менее текст.

Таким образом, если иметь цель и опыт, то нет ничего невозможного. И яркий практический пример - вы пользуетесь "крякнутым" Кейлом, "поломаной" IDA-й, а лет 10 назад мы все пользовались пиратской Виндой и другими прогами. Да и сейчас - кто-то из вас покупает тот же фотошоп? Так что скажем спасибо целеустремленным энтузиастам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 11:46 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 682
Откуда: Санкт-Петербург
BusMaster писал(а):
Для этого надо хорошо знать структуру и систему команд этого процессора и иметь опыт чтения листинга.

еще нужно иметь кучу терпения и огромную кучу времени. Особенно если в коде есть какие-то стандартные математические функции, операции с флотами или (не дай бог) go to. Плюс по моим наблюдениям даже на разных компиляторах и разных уровнях оптимизации код может очень сильно отличаться. Также знание ассемблера должно быть на очень хорошем понимании. Не в плане каких то простых функций типа положить , считать, сложить, а в плане уметь заметить что к примеру идет приведение типов из uint8_t в signed int или float.

Я вот армы не смотрел, но пару недель назад разбирал код АВР. Понял что все можно, но от скуки я бы этим заниматься не стал точно. И это при том что с авр в плане адресов переферии все намного проще чем с СТМ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 11:50 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 682
Откуда: Санкт-Петербург
BusMaster писал(а):
Таким образом, если иметь цель и опыт, то нет ничего невозможного. И яркий практический пример - вы пользуетесь "крякнутым" Кейлом, "поломаной" IDA-й, а лет 10 назад мы все пользовались пиратской Виндой и другими прогами. Да и сейчас - кто-то из вас покупает тот же фотошоп? Так что скажем спасибо целеустремленным энтузиастам.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 12:00 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Ну например запрос серийника сравнительно легко обнаружить по поведению. Что делает МК, когда серийник не совпадает? МК просто не работает дальше, а висит в бесконечном цикле или сбрасывается. Как это проще всего обнаружить? Прошиваем МК исследуемой прошивкой дожидаемся зависания, определяем отладкой, где завис. Дальше копаем участок кода, выпиливая из него запрос серийника. Проще всего это сделать, подменив инструкцию перехода в бесконечный цикл инструкцией перехода дальше, в рабочую часть. Тут даже перекомпиляция не нужна - просто меняем байты в прошивке.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 13:35 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3558
Откуда: Китай, Пекин
случайно нарвался контору, которая тут в китае, потрошит всякие чипсеты/контроллеры.
они были через коридор, от другой компании, куда я пришел и которая вытягивает инфу с убитых дисков.

заметил у них под это дело туева хуча специализированного софта понаписано.
взламывают ли они именно stm32 не интересовался, но не думаю, что это сложнее того, что они делать уже умеют.

хорошо быть лаоваем, заходишь с улицы и тебя не разгоняют.. и даже расскажут.

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 14:22 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 982
Откуда: Earth
cheblin писал(а):
...хорошо быть лаоваем...

Хорошо, говорите ?))
https://ru.wikipedia.org/wiki/%D0%9B%D0 ... 0%B0%D0%B9
"Традиционно «иностранец» — это второе значение слова «лаовай» в словарях. Первое же место уверенно держит тройка «профан», «неопытный», «невежда»."


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 14:27 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Так он же правду и написал - "хорошо быть невеждой и чужаком", он им и является, и это чистая правда!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 14:31 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
forummailandlogin, :))) ты б чо посложнее показал, чтоль :))) А то таблица прерываний и дефолтные зацикленности в обработчике - дело нехитрое, ёлки...
Коммент "Выделяем память данных, чтобы ее видно было" - конечно очень информативный такой :))) Вообще-то, по уму оное называецца "инициализация переменных" - глобальных и статических, и еёйная сцуть заключается в копировании констант из флеша в ОЗУ. Записывается она в исходниках и без того на ассемблере и не требует особых разбирательств, эти действия - дефолтные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 04 ноя 2019, 16:40 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 2062
http://akb77.com/g/stm32/fix-jlink-ob-09262016/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 05 ноя 2019, 16:59 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2587
Цитата:
Чтение микропрограмм (прошивки) защищенных микроконтроллеров

Исследование защиты микроконтроллеров

Восстановление исходного текста программы и алгоритма на языке Си или Ассемблер

Установка дополнительной трехуровневой защиты микросхем от считывания.

Копирование ПП, а также восстановление схем и полной документации для производства ПП.


https://russiansemiresearch.com/ru/

120000 руб и поломают STM контроллер

Как они это делают?


Последний раз редактировалось Pingvin 05 ноя 2019, 17:30, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 05 ноя 2019, 17:13 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Pingvin писал(а):
120000 руб и поломают мой контроллер
Как они это делают?


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

Что касается снятия защит - тут есть много разных способов.
Например, способ 1-ый. STM например, при установке защиты, не защищяет RAM (во всяком случае так было для многих старых серий процов). Поэтому, умельцы, создали небольшое устройство, которое ресетит твоё устройство на установленное количество мкс, и выдирает RAM. Таким образом можно узреть состояние программы на разных этапах её запуска...
Способ 2-ой. Для установки защиты на проц, в OPT байты прописывается CC или другое, отличное от AA число, чтобы проц закрылся нужным уровнем защиты. Зная, где во FLASH лежит физически эта ячейка, можно её "выжечь", и таким образом проц может вернуться в состояние AA. Это необратимая процедура, и при этом можно сильно повредить основной FLASH но тем не менее такой способ тоже сбрасывать со счетов не стоит.

В любом случае это всё очень непросто, как и разбор самого FLASH, хотя, да, многое может стать понятнее, если имеешь на руках HEX (BIN).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 05 ноя 2019, 17:59 
Старожил
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 710
Что делает контроллер, когда лезет читать бут? Что мешает делать тоже самое, вооружившись мелкоскопом и подключившись к нужным шинам? Вопрос лишь в наличии оборудования и его цене.

В первом приближении - извлечь и не повредить кристалл, восстановить пережжёные фьюзы. Но это моё предположение.

Опасения Pingvin вполне оправданы. Вот тут сделали хак и китайцы уже скопировали:

https://www.emu-land.net/forum/index.ph ... msg1377325

https://ru.aliexpress.com/item/32853761023.html

Поделка Пигвина - следующая :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 05 ноя 2019, 18:12 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 3558
Откуда: Китай, Пекин
Цитата:
Как они это делают?

тупо переправляют в китай чувычкам, про которых я писал. этим и живут
Цитата:
«лаовай» в

это полупренебрежительно/шутливо в третьем лице об иностранцах. типа простак.
официозно же будет - вайгожен, да.

вот и использую именно то - как китайцы всех инстранцев меж собой называют, и ваще не гружусь.
это как быть фарангом в тайланде. буквально нигерами всех называют... горе то какое!!!

срочно на родинку, услышать такое знакомое- "эй, йба-семки-есть"

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 05 ноя 2019, 18:43 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 682
Откуда: Санкт-Петербург
Pingvin писал(а):
https://russiansemiresearch.com/ru/
120000 руб и поломают STM контроллер
Как они это делают?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 05 ноя 2019, 18:56 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 537
Откуда: Киев
зачем жуликам красивый сайт. Они говорят наша компания бла, бла, бла... а мыло заканчивается на @ya.ru. Да и деятельность разве законная?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 06 ноя 2019, 12:19 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2587
Если при запуске бутлоадера каждый раз выставлять бит защиты от чтения - это не повредит контроллеру?
Нет ограничений на количество записей этого бита?

А как проверить из прошивки - выставлен он уже или ещё нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 06 ноя 2019, 13:00 
Заглядывает иногда

Зарегистрирован: 19 май 2015, 01:52
Сообщения: 71
Pingvin писал(а):
Если при запуске бутлоадера каждый раз выставлять бит защиты от чтения - это не повредит контроллеру?
Нет ограничений на количество записей этого бита?

А как проверить из прошивки - выставлен он уже или ещё нет?


я же сказал, не работает эта хрень.

я писал даже на форум ST. ниче толком не ответили.
Вот видос https://youtu.be/PGn5OuPbnVU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 06 ноя 2019, 14:22 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2587
Разобрался.
Код:
if (FLASH_GetReadOutProtectionStatus() == RESET)                // Проверяем, установлена ли защита
           {                                                               // Если нет:
                   FLASH_Unlock();                                         // Разблокируем память Flash
                   FLASH_ReadOutProtection(ENABLE);                        // Устанавливаем защиту от чтения
                   FLASH_Lock();                                           // Блокируем память Flash
           }


Вроде работает.
Во всяком случае ST-Link не читает

Уже реализовал проверку ключа и бутлоадер с шифрованием.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Реверс инженеринг. Насколько легко получить исходный код?
СообщениеДобавлено: 06 ноя 2019, 14:24 
Старожил

Зарегистрирован: 02 ноя 2015, 19:21
Сообщения: 682
Откуда: Санкт-Петербург
zacher писал(а):
я же сказал, не работает эта хрень.


мне кажется ты сам что-то в коде напутал.

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


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


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


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

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


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

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

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