318сказали спасибо
Ну вот смотри: я выпаиваю флешку, программатором считываю из нее данные - это любой радиолюбитель может сделать. Далее загружаю все это в отладчик для этого процессора, прохожу отладчиком пошагово, смотрю какие условия проверяет код, чтобы запустить программу в полнценном режиме, выпилваю его нахрен, вместо него вкрячиваю JMP на нужный адресс, оставшееся место заполняю NoP'ами, после чего заливаю что получилось в ЭБУ без всяких Init'ов.
Любая защита без аппаратных средств криптографии имеет такую же эффективность, как и надувные танки. Это я говорю как профессиональный программист с опытом чуть меньше 20 лет. В еще в студенческие годы я таким макаром немало игр взломал, которые без оригинальных дисков запускаться отказывались, а там защита всяко посерьезней будет. Сложность представляли лишь те, что могли просечь, что работают под отладчиком, но это не про древний микроконтроллер.
Ну а при всем уважении, никто не взломал Р9 по той же причине, по которой никто не поймал Неуловимого Джо.
Скрытый текст
Прошивка конечно крутая, но кто умеет вскрывать защиту в таких мелочах не заинтересованы.
[свернуть]
Облом ожидает уже на этом этапе.... Это я говорю как профессиональный радиолюбитель с опытом чуть меньше 20 лет )))
А на сладкое - не уверен, что отладчик будет работать с компилированным кодом (правда я сам не проверял, но некоторых здешних обитателей не останавливает отсутствие собственного опыта от громких и уверенных заявлений )))
Само слово "профессиональный" и "радиолюбитель" немного взаимоисключающие) Либо профессионал, если эта деятельность приносит постоянный доход, либо все-таки любитель, это просто хобби. Но суть не в этом, это я так, к словам придираюсь.
Я тоже в этом кое-что понимаю, разрабатывал устройства на микроконтроллерах, писал под них прошивки и сейчас занимаюсь небольшим проектом. Считать данные из микросхемы флеш-памяти - это не проблема. Запретить чтение у флешки невозможно, поскольку тогда процессор к ней не сможет обращаться. Можно запретить считывание прошивки у микроконтроллера, у которого память для программного кода встроена в микросхему, но это не наш случай.
Ну а я, как профессионал в этой области, могу с уверенностью сказать, что отлично работает.
Вот пример как это выглядит, машинный код транслирован в ассемблер, с которым, при наличии некоторых знаний и опыта, не так уж сложно работать, хоть и немного сложнее чем с высокоуровневыми языками, типа языков семейства С
Чтобы программу было невозможно считать из устройства - необходимо наличие аппаратных средств защиты, коих в обычном ЭБУ нет.
Тут вся защита построена на том принципе, что типичный чип-тюнер, который шьет автомобили, не сможет без знаний и оборудования достать код из микросхемы, разобраться в нем и понять что нужно сделать, чтобы обойти защиту, а типичный тюнер всем этим, как правило, не обладает, у него знания в другой области.
И я считаю, что для защиты от непрограммистов (а программистам с этим возиться нафиг не упало) защита достаточная и свою роль выполняет, но это не значит, что с этим вообще ничего нельзя сделать.
Мне не 16 лет тратить бесплатно время чтобы что-то кому-то доказать я не стану, мне это не надо, хотите верьте, хотите нет. Нет ничего, созданного человеком, что было бы невозможно взломать, вопрос только в соотношении потраченных на это денег и времени к ценности полученного результата.
Вот пример считывания прошивки из flash (первое найденное видео на ютюбе)
Вот первый попавшийся пример взлома программы
https://www.youtube.com/watch?v=za-bshcViMA
В реальной жизни все чуть сложнее, но принцип не меняется. И еще для запуска программы для ЭБУ нужен будет эмулятор этого процессора и отладчик, заточенный под него, но все отладчики работают +- одинаково, различаются в основном количеством вспомогательных инструментов.
Тем не менее, если считаете, что знаете больше человека с многолетним опытом в разработке - ваше право, я не осуждаю.
Ну мне тоже...дабы просто так бла-бла...
Ну и что из того, что ты скрин с ИДА выложил, да тем более ни с тем процессором?
Ты бы хотя бы стоковую прошивку скорми ИДА и разложи ее и:
1. Укажи где производится расчет воздуха и топлива
2. Где, к примеру, обороты отсечки...
3. Где живет диагноза и вообще обмен со сторонним устройством...
4. ну пр.пр.
Джамперы он найдет!...дык чтобы даже их найти нужно еще постараться!
Даже если ты найдешь кучу переходов, то вот в девятке это будет дырка от бублика! Почему?...так задумано.
Ну вообщем удачи! А мне, думаю, тут вообще больше делать нечего, поскольку тут и без меня есть "профессионалы". Так что я покидаю эту площадку...
Последний раз редактировалось gorUgra; 07.12.2020 в 19:14.
Конечно не с с тем, я и написал, что это лишь пример. У меня серьезно нет ни времени ни желания, чтобы кому-то что-то доказывать. Я привел аргументы, а кто хочет - верит, кто не хочет - не верит.
Это особого значения не имеет. Да, я прекрасно понимаю, что там есть зависимость от состояния активации какие таблицы использовать, но достаточно понять как работает активация и все эти проверки, как бы они ни были реализованы, будет несложно вычистить, либо выставить переменную (условно), которая проверяется, в нужное значение. В любом случае, это всего лишь код на ассемблере, а любой код можно прочитать, проанализировать, понять и исправить. Это может быть небыстрый процесс, но это вопрос времени.
Так в чем проблема постараться-то?Я зарабатывают себе на хлеб уже много лет именно разработкой ПО. Я к автомобилям имею опосредованное отношение, это просто одно из моих увлечений, никогда денег мне не приносившее (делал что-то для других несколько раз, но то были копейки), а вот код, практически на любом распространенном языке, - это именно мой профиль, где у меня есть немалый опыт. И на основании этого опыта могу сказать, что была бы материальная мотивация - а вскрыть можно любой код, особенно, без криптозащиты.
Стратегия, с которой я бы начал, - зная, что некий ключ записывается в EEPROM, я бы отследил все обращения туда и попытался по коду понять, где лежит ключ. Либо можно заранее обнулить EEPROM, в чистую залить инит Девятки, потом, не заливая основную программу считать EEPROM и посмотреть что там лежит. Не уверен, но предполагаю, что данных адаптации там еще не будет, будет только ключ. Можно считать EEPROM с двух свежепрошитых ЭБУ, если ключ вычисляется динамически, только он будет вычисляться. Можно препарировать инит и посмотреть куда он пишет ключ при старте. Да много способов понять, где лежит ключ. А зная, где именно лежит ключ, можно найти все обращения туда, вычислить код, который читает и проверяет ключ, пошатать его немного и программа всегда будет думать, что ключ правильный.
Не уверен полностью, что сработает именно данный способ, но перебором вполне можно найти правильный путь.
Вот вы взрослый человек, а поступаете как ребенок. Я в ваш адрес ничего плохого не говорил, я не говорил, что Р9 плохая прошивка - напротив, я сам несколько лет на ней ездил - был полностью доволен, нескольким людям прошивал - они тоже были в восторге. Прошивка отличная. И защита тоже со своей задачей вполне справилась, раз никто прошивку не спер, пока ее в общий доступ не выложили. Всего-навсего, я усомнился в том, что защиту вообще нельзя вскрыть - вскрыть можно все, даже Wi-Fi успешно ломают, хотя там защита куда серьезнее.
Может выложить R9 для 8кл в свободный доступ ?