Ну, вот, настал момент, которого я ждал. Как всегда, интересное, познавательное видео, кстати. Большое спасибо за Ваш труд, надеюсь, не бесплатный. Мое знакомство с каналом началось с видео про микроконтроллеры (а может и нет, не помню точно), и сразу мне эта тема запала в душу. Отдельное спасибо харизматичному автору за это. В общем, это стало моим хобби. Естественно, пришлось прикупить кое-что: паяльник (Pinecil v1), макетные платы с проводами, программатор (EasyPro EZP2023+), тестер и "прочие иные предметы". Вдоволь наигравшись со всем этим добром, я уж было решил, что на этом все и закончится, но не тут то было... Был (и есть) у меня некий, весьма популярный, дешевый китайский принтер. Pantum P2200 называется. Картрижди у него с чипами, конечно же. И, вот, надоело мне чипы эти покупать при каждой новой заправке. Решил прошить принтер на бесконечность. Сделал кирпич, естественно. Прошивал по USB и, в процессе, комп завис. Оказалось, что оживить его можно, но только прошивкой микроконтроллера. Вот тут-то мне и пригодились все те, казавшиеся уже бесполезными, вещи. Процедура эта оказалась совсем не из легких, но тем интереснее же. Микросхема оказалась в SOIC исполнении, что меня сразу сильно напугало, потому что, капец, всё мелкое и компактно упакованное на плате. Выпаял, трясущимися руками, с пинцетом это чудо инженерной мысли и выдохнул с облегчением. Если бы я только знал что мне эту процедуру придётся повторить ещё раз пять, я бы, наверное, и не начинал. Ну, выпаял, а дальше что? Как в программатор её пихать? Вспомнил, что в комплекте к нему ещё что-то в пакетике болталось. Оказалось- точно, переходник. Но, на него микросхему нужно напаивать... В общем, мелкую моторику я потренировал знатно. Но, это оказалось не самым интересным приключением. Самое интересное было найти рабочий дамп именно для моей микросхемы моей модели принтера с моей версией платы. Оказалось, что, несмотря на то, что модель китайская и популярная, дампом делиться никто не хочет. Очень долго рыскал по форумам и прочим злачным местам. В итоге, мне помог человек, который торгует прошивками для принтеров (античип). Он дал ссылку на рабочий дамп. Но, перед этим я неоднократно прошивал не тот дамп и припаивал/выпаивал эту бедную микросхему. Счастью моему не было предела, когда я смог распечатать пробную страницу на принтере, который я своими руками сломал, а затем починил. Мораль: дурная голова рукам покоя не даёт (да, да, ногам, но и рукам тоже).
Да❗🤔 Но ведь сегодня, спустя 4,5 млрд. лет после Большого взрыва🎉 все принтеры стоят дешевле листка бумаги формата А4, на которых печатают всякую фигню, которую спустя некоторое время отправят на свалку.
А мне наоборот всё ясно. Нефиг тырить чужой труд.😂 Шутка. На самом деле бывают случаи когда разработчик или программист покинул наш мир и очень жаль что пропадает хорошая программка хотя копия по любому у кого то есть. А вообще лучше писать самому кто может так чтобы потом можно было и переделать/добавить или наоборот удалить некие команды.
Мой первый программатор как раз мог работать вообще без компа. ))) На обычных выключателях, просто перебираете адреса в ручную, и записываете туда информацию какую ни будь, и еще одна кнопка прожиг. ))))) Классный видос мужик, я подписался, лайк тебе. )
я первый раз смотрел на телефоне - мелкое не успел разобрать, но примерно подумал, что он написал именно то, что я подумал :)) отмотал, увеличил - точно :))
Молодец мужик! Разжевал всё для школьников. Ну а я получил массу удовольствия. Правда ещё один способ не указал - таблицы, но на это надо тоже огромная масса времени, а если таблицы более, чем двухмерные, то ещё и масса удачи.
Понятно, что ответ для самых начинающих, но рассказано и объяснено всё хорошо! Как именно работает лок-бит на физическом уровне, кстати, не знал. Благодарю!
Подкину, так сказать, возможное направление куда копать: Шьём в контроллер последовательно 0xff, но только в момент прошития формируем короткий импульс понижения питания контроллера так чтобы нарушить работу встроенного повышающего преобразователя, но в тоже время не сбросить сам контроллер. В результате стирание происходит не всегда. Последним шьём слово конфигурации со снятой защитой в обычном режиме. Далее вычитываем содержимое контроллера, и повторяем весь процесс ещё с десяток раз со свежими контроллерами естественно. Путём сравнения прошивок находим верный код. Недостаток метода в потрошении кучи девайсов компенсируется их последующим восстановлением, при удачном исходе конечно. По крайней мере один раз с одной известной маркой контроллеров этот метод сработал.
привет тебе от ассемблериста пикиста ))) сколько я раз хотел вскрыть чип и прочитать именно таким образом - благо доступ был к машинке уз-сварки TPT-HB05 но всеравно написать свое и лучше бывало в разы быстрее. на старых версиях типа pic16f877 бит лок был на верхнем уровне литографии. Сейчас уже вышли версии данного кристалла 877a со спрятанным на 4-5 слоев в глубь кристалла также и 887 версия тоже далеко глубоко запрятали линию эту - там суть лазером просто выжигалась полоска от элемента и все чип был с вечно снятой защитой.
Классная подача. Я получил все что не знал собрал все в кучу и выбросил в мусор. А читаются большинство а те что не читаются уходят в мусор вместе с изделием. По простой причине не надо покупать то что нельзя отремонтировать
Ура! Я почти достиг 90-го уровня!!! =)))))))) Да, это видео для "самых маленьких", некоторые вещи кажутся нам вполне себе очевидными, но ведь есть люди, которые в первый раз столкнулись с таким вопросом =)
Триколор, как я помню, dre cript, первые приемники не имели карт, а обновление ключей происходило по воздуху, обычно по умолчанию в 3 часа ночи, как у всех других. Привязка шла к железу. Даже сейчас есть, пару приемников с картами, телекарта, рикор ТВ. Но смысл в том, разблокировка опять происходит по звонку, оплате и диктованию серийного номера приемника. Это тоже самое, если друг дал логин и пароль от кабельного инета, сейчас идет привязка к MAC, чтобы инет заработал, нужно еще просить MAC, чтобы вписать его в настройках. ПО спутниковых приемников от оператора, даже не имеет эмулятора BISS ключей, хотя в глобальной версии прошивки, он имеется. Теоретически, если собрать свою прошивку, если приемник работает на ОС линукс, написать эмулятор железа, для удобства функцию переборщик серийников, если серийник невозможно достать у соседа, с помощью C++ используя кроссплатформенный gcc компилятор, набрав toolchain именно под свой процессор. Можно скомпилировать прошивку, которая будет сама, к примеру за ночь, находить рабочий серийник. Карты достать не сложно, у многих они валяются, так как многие побросали спутниковое ТВ. Другое дело банковские карты, но и здесь достаточно, обычного портативного бесконтактного терминала и пройтись в битком набитом автобусе.
А ещё можно, поломать логику микроконтроллера используя ненадежное питание (voltage glitch) или играя с частотой кварцевого резонатора (clock glitch) тем самым заставив ещё совершить ошибку в коде программы или ошибку в логическом элементе схемы. Метод называется Glitching. В ряде случаев это довольно успешный способ считать прошивку защищенного контроллера. Например если контроллер работает с USB, то подавая команду на чтение описания USB устройства (DeviceDescriptor) и указывая в пакете длину возвращаемого сообщения больше максимальной которую может вернут контроллер. В логике прошивки контроллера происходит сравнение длины возвращаемого сообщения с максимальной, если в момент проверки произойдет ошибка то контроллер может вернуть данные которые записаны после DeviceDescriptor то есть часть данных хранящихся рядом. Не всегда работает но и не требует растворять чип и "подпаиваться" к кристаллу кремния.
Видео было многообещающим и даже местами интересным 😁. Но интереснее было бы узнать что делать с считанным набором машинным команд чтобы перевести их в более человеческий язык, а с этим на сколько я понял как раз беда. Или есть таки способы если дело касается контролеров для которых программы для их программирования в свободном доступе?
Насколько знаю, в даташытах на авр описано, как записываются команды в память. Также есть коды команд Сам не делал, но возможно на каком-нибудь питоне, если прям прижмёт, можно сделать декодер на ассемблер, только смысл есть ли хз🤔🤔🤔
Доброго здравия. Для avr есть такой, Reavr называется. Дизассемблер. Но потом всё равно требуется много ручной работы. Которую как раз и можно автоматизировать с помощью питона. Ибо Reavr выдаёт следующий формат: адрес команды в памяти; сама ассемблерная команда и операнды (регистры). Если команда перехода, то там вместо метки будет стоять адрес. Удачи
Большую программу запаришься дизассемблировать сидеть, а маленькую проще самому написать с нуля.. Для починки какого-то прибора к примеру не надо ничего разбирать в коде, просто прошить дамп заново.. Для разработки устройства проще программу по кускам из библиотек собирать по форумам..
Я раньше тоже так считал пока мне на глаза не попалась книжка "Реверс-инжиниринг встраиваемых систем [2023] Усанов А.Е.". Оказывается возможностей для взлома гораздо больше. Не читал но бегло просмотрел
Редкая тупизна с претензией на юмор. Зачем я это смотрел? - Как прочитать прошивку? - Никак. Чтобы услышать это, понадобилось всего 13 минут терпеть боль в ушах.
Думаю уже скоро появятся переводчики из машинного кода в с++ или что там еще может быть. Даже не представляю сколько времени займет обучение такой нейронки, но оно того стоит.
Кстати, идея супер! Идея на миллион, не шучу! Беритесь за реализацию =))))))))) Хотя в целом, я такие эксперименты не одобряю, но об этом будет отдельный выпуск =)
@@СергейЗ-ю4я , да, есть переводчики обратно в си, но конечный перевод подчас настолько примитивен и "тяжел" для восприятия, что проще читать асм =))) Но это всего лишь мое имхо, как известно мнение редакции не всегда соответствует мнению читателей =)))) ПЛИС же вообще несколько другой мир, там, на мой взгляд, без дохренаканального анализатора логики нечего ловить =))))))) Хотя дела имел мало с ними, могу ошибаться =)
@@Gnevistj В реверсе программ есть нюанс. Если изначально прога была написана, например, на С и декомпилируют ее в С, то результат получается очень хороший, если же декомпилируют на язык, отличный от того, на котором изначально написали прогу, то результат может быть очень плохой. Про ПЛИСЫ. Написал программу. Скомпилировал. Поменял одну цифру в данных. Снова скомпилировал. Результат - разница в 81 байт!!!
Помню, для древнего языка Clipper была программная приблуда, позволявшая получить "дизассемблированную" программу, то есть почти исходную программу на языке Clipper с той только разницей, что имена переменных были не те что использовал программист, а условные. Но можно было разобраться, изменить логику и снова скомпилировать. Возможно есть что-то подобное для микроконтроллеров, чтобы переводить из машинных кодов на ассемблер? А ролику и спикеру зачет и подписка.
Да, дизассемблирование возможно, и программ для него пруд пруди, начиная от официальной среды разработки. Проблема в невозможности возврата к языку высокого уровня, а большие программы мало кто, точнее практически никто не пишет на асме =))))) И уж разобраться в этой на первый взгляд бессмысленной куче пересылок и перекладок из одного регистра в другой - мое почтение, трэшовая работа, проводил такое =))))))
@@Gnevistj ну, так то ghidra существует... да и hexrays для арма справится. возможно этот выхлоп будет даже читабельнее оригинального кода на с++ (если там был он, а не сишка).
@@v61kz настолько простые защиты встречаются разве что в нубских крякмисах или в винраре каком. а так да, трассировать и искать, чо где к чему относится и зачем в эту память лезет. в эмбеде еще попроще, там особо лютые варианты со всякими виртуалками (кхе-кхе, denuvo/vmprotect) не в моде еще. хотя вон, у cypress'овских cortex m0 уже гипервизор есть и используется. правда не столько для защиты, сколько для скрытия реализации флеш-контроллера- он там полусофтовый.
@@Gnevistj можно как то узнать язык на котором писалась программа из прошивки микроконтоллера?) в частности у меня есть прошивка от акпп , эбу бош, очень нужно ее разобрать, инфы нигде нет( удивительно но было маленькое тюнинг ателье в США которые под них прошивки писали, но они их уже не продают(
Выпуск интересный несомненно Лайк 👍 Но в вопросе считывания заЩишенной прошивки, в корне не соглашусь, есть группа программаторов которые отлично вычитывают из защищенных камней их прошивку : Xprog , Orange, Xhorse VVDI Prog и другие...
у современных контроллеров не один бит защиты а много, на каждый участок памяти свой бит,и ячейки этих битов спрятаны внутренним слоем, под основным кристалом
И можно ли с помощью программатора перезаписывать ПЗУ? И как его записывают вообще? И является ли "флешка" аналогом ППЗУ? И благодаря чему данные можно перезаписывать неоднократно?
СПАСИБО у Вас есть уникальная способность обяснять сложные вещи так чоб и медвежонок понял. Но давате следуещее видео про два путя как из этой битной каши читаемый код получить чтоб понять как там все устроено
Расскажите про шести польскую систему выпрямления более подробно особенно тпе 630 и про угол открывания тиристоров вы обещали про наши старые аналоговые тиристорники пожалуйста буду с нетерпением ждать ваш урок
Спасибо!Интересный маатериал.Понятно,что с компилированного hex. файла ничего не получится выяснить.Проще новую программу написать (или скачать готовую).Ещё ходят слухи,что ИИ gpt chat пишет всё что попросиш.Я попросил программу на с+ для регулировки частоты трёхфазного двигателя -он мне чтото бессвязное написал (наверное обматерил,на своем машинном языке).😀
Скорее всего ты просто задал "неполноценный вопрос", т.е. не указал на детали реализации (модель контроллера, двигателя, задействованные пины и т.п. ересь) 🤔 Только что потестил аналогичный запрос на гугловском _Bard_ и он со второй попытки выдал мне неплохой каркас для приложения. После первой попытки (я бы тоже назвал её "бессвязной") попросил его написать аналогичную программу, но с учётом добавленных деталей и получилось весьма неплохо. IMHO, если умеешь читать чужой код и сходу понимать логику, то даже текущие версии чат-ботов могут быть чрезвычайно полезны 👍 p.s.: прямо сейчас несколько крупных игроков на рынке разработки ПО -вливают тонны бабла- тренируют большие языковые модели, рассчитанные только на кодинг. Вполне может быть, что уже через пару лет, если не раньше, они релизнут что-то действительно крутое.
@@deniskhakimov Да,вы правы,я действительно не дал ему много параметров и скорее всего получил такой ответ.Но программиррвать уметь необходимо.Во первых ,чтобы понимать процесс и навеерное ,более важно-чтобы отдалить процесс умственной деградации (мозг должен упражняться).Иначе он заскучает🙂
Интересно. Футболка навеяла некие мысли. Атакующим может быть совсем не нужен код программы. В машинном коде, в виде байт, ими будут найдены ключи шифрования, например. А сама программа будет потом переписана под другой микроконтроллер.
Вскрыть корпус, подключиться к кристаллу, прочесть инфу -- совершенно рутинная операция на заводах по производству микросхем. Потому что им по работе этим надо заниматься. Для постороннего клиента это стоит около 10k$. Не так уж и много. Если это не какая-то секретная микруха, в которой есть архитектурная защита, сильно усложняющая такой взлом. Но это про военных. А с простыми МК, практически "дома на кухне", можно поступить так: Нужен немного усовершенствованный программатор, который может в нужный момент менять напряжение питания "пациента" прямо в процессе чтения. Нужна стиралка -- эквивалент ранешних УФ ламп -- но светящая мягким рентгеном, проходящим через корпус. Но не более 20 кэВ. Более жёсткий рентген повреждает кристалл. Цикл: Немножко стираем; Начинам чтение при самом высоком (допустимом) напряжении питания; В какой-то момент понижаем напряжение до минимального и читаем остальную память; Если получилась фигня, повторяем цикл. "Немножко стираем" -- немножко уменьшает заряды в ячейках памяти. Во всех, в том числе и в бите защиты. И в какой-то раз автомат чтения увидит, что бит защиты кода стёрт. И позволит инфе утечь во внешний мир. При высоком питании ячейкам памяти требуется больший заряд, чтоб прочесть "записано". А при низком питании требуется меньший заряд. Поэтому, когда бит защиты при высоком дотрётся до "можно читать", в остальных ячейках при низком питании зарядов хватит, чтоб прочесть правильную инфу.
Интересная тема🤔 получается производители защитили от взлома и чтения прошивку ? И получается поэтому если с микрокантраллерами в бытовой технике чтото случается они плату полностью меняют ?? Но я знаю что и прошивками они занимаются . Получается не все микрокантроллеры защещины ?? В будущем наверное вобще не будет возможности прошивать микроконроллеры ..
такой вопросик, можно ли на закрытом от чтения прошивки микроконтроллере сменить маленькую часть прошивки на свою, которая прочитает оставшуюся прошивку и выдаст её на одной из ног? или это зависит от микроконтроллера? (если да, и если иметь два контроллера с одинаковой прошивкой, то можно записать в два разных места, прочитать обе прошивки и восстановить недостающие блоки)
Насчёт отправки на "свалку истории" спец программаторов , автор конечно жжёт !)) Да и тема с обходом защиты не раскрыта, а тема в общем интересная и разнообразная , в силу разнообразия способов обхода. Несколько раз приходилось придумывать и реализовывать обход защиты на конкретных устройствах с процами вполне успешно. И ещё, - вот не понял я , в чём проблема дамп в асм "превратить" ?! ))
Вообще-то во многих микроконтроллерах есть недокументированные команды, используемые для отладки, они позволяют "поиграть" с битами флагов, отвечающими за защиту от считывания, банально сдвигая указатель при записи данных на контроллер на необходимый адрес.
С айфонами дела не имел, ибо я нищеброд, и у меня гнусмаС на андроиде =))) Но вдруг мой андроидный способ поможет и вам? Ловите лайфхак - после запуска игры отключаете вайфай и мобильные данные, проще говоря - включаете режим полета. Игра тыкается на сервант, связи нет - рекламы нет =))))) Работает конечно не со всеми (некоторые без рекламы не запускаются вовсе), но большая часть становится играбельными =)))))
Помимо прочего, есть один вариант: никак. Например, в AVR есть так называемый бит защиты. Если его установить при прошивке - считать уже ничего не получится. Постоянно пользовался этой функцией, когда делал приборы на продажу. P.S. Ролик ещё не посмотрел.
Есть ещё один способ: - "В жидком азоте, - считываются импульсы", но это жесть и ещё какая. Считывается куеву тучу раз, потом сигнал сводится и из аналога получается цифра, но нужен микроконтроллер с удалёной подложкой!😇 работает 100% если азот халявный то за неделю-две всё получится. (к слову корпус и подложка растворяется кислотами.)
Расскажите какие есть условные или косвенные признаки того что на неисправной плате вышел из строя именно тот или иной микроконтроллер а не какой-то транзистор или диод. А может есть и безусловные видимые признаки неисправности микроконтроллера. 💪🏼
Забыл упомянуть про физическую защиту от чтения. Когда на заводе физически выжигают условный транзистор в схеме контроллера, который отвечает за возможность чтения.
Парни,стоит в блоке комфорта m38747mct. По поиску находится как Mitsubishi Electric Semiconductor. Даташит на процессор есть.Чем его можно прочитать ? Какой софт и каким программатором ?
А если это микроконтроллер от советского калькулятора, то только изучая его под микроскопом можно понять принцип его работы? И как электрический разряд портит память микроконтроллера и мог ли я таким образом его повредить от разряда электрозажигалки на батарейках (в детстве экспериментировал так)?
Про выпайку паяльником можно было по подробней, при хорошем опыте, можно выпаять дедушкином паяльником и канифоли, без повреждений. Видео, конечно интересное, но это все просто, когда мы знаем, что за микроконтроллер и есть датащит. А как быть с нонейм китайскими устройсвами, пытаться определить по плате, что есть что. Но все равно мне кажется можно запутаться в ножках, это же не TTL, где всего Rx, Tx и земля, которую в принципе уже известно куда цеплять, а Rx, Tx определить не проблема. Про машинные коды, ASM в помощь, здесь нет ничего сверхъестественного, если уметь отлаживать программу, иногда даже программисты к этому прибегают, так как компилятор из высокоуровневого языка, может начудить.
Очень классная подача. Мотоциклисты часто обладают харизмой и способностью терпеливо учить. Пожалуйста не бросайте это Ваше полезное дело!
Ну, вот, настал момент, которого я ждал. Как всегда, интересное, познавательное видео, кстати. Большое спасибо за Ваш труд, надеюсь, не бесплатный. Мое знакомство с каналом началось с видео про микроконтроллеры (а может и нет, не помню точно), и сразу мне эта тема запала в душу. Отдельное спасибо харизматичному автору за это. В общем, это стало моим хобби. Естественно, пришлось прикупить кое-что: паяльник (Pinecil v1), макетные платы с проводами, программатор (EasyPro EZP2023+), тестер и "прочие иные предметы". Вдоволь наигравшись со всем этим добром, я уж было решил, что на этом все и закончится, но не тут то было... Был (и есть) у меня некий, весьма популярный, дешевый китайский принтер. Pantum P2200 называется. Картрижди у него с чипами, конечно же. И, вот, надоело мне чипы эти покупать при каждой новой заправке. Решил прошить принтер на бесконечность. Сделал кирпич, естественно. Прошивал по USB и, в процессе, комп завис. Оказалось, что оживить его можно, но только прошивкой микроконтроллера. Вот тут-то мне и пригодились все те, казавшиеся уже бесполезными, вещи. Процедура эта оказалась совсем не из легких, но тем интереснее же. Микросхема оказалась в SOIC исполнении, что меня сразу сильно напугало, потому что, капец, всё мелкое и компактно упакованное на плате. Выпаял, трясущимися руками, с пинцетом это чудо инженерной мысли и выдохнул с облегчением. Если бы я только знал что мне эту процедуру придётся повторить ещё раз пять, я бы, наверное, и не начинал. Ну, выпаял, а дальше что? Как в программатор её пихать? Вспомнил, что в комплекте к нему ещё что-то в пакетике болталось. Оказалось- точно, переходник. Но, на него микросхему нужно напаивать... В общем, мелкую моторику я потренировал знатно. Но, это оказалось не самым интересным приключением. Самое интересное было найти рабочий дамп именно для моей микросхемы моей модели принтера с моей версией платы. Оказалось, что, несмотря на то, что модель китайская и популярная, дампом делиться никто не хочет. Очень долго рыскал по форумам и прочим злачным местам. В итоге, мне помог человек, который торгует прошивками для принтеров (античип). Он дал ссылку на рабочий дамп. Но, перед этим я неоднократно прошивал не тот дамп и припаивал/выпаивал эту бедную микросхему. Счастью моему не было предела, когда я смог распечатать пробную страницу на принтере, который я своими руками сломал, а затем починил. Мораль: дурная голова рукам покоя не даёт (да, да, ногам, но и рукам тоже).
Да❗🤔
Но ведь сегодня, спустя 4,5 млрд. лет после Большого взрыва🎉 все принтеры стоят дешевле листка бумаги формата А4, на которых печатают всякую фигню, которую спустя некоторое время отправят на свалку.
Доброе дело делается бескорыстно, иначе ему, грош цена.
Смогли настроить принтер на бесконечность? 😊
@lifuhen9913 Естественно ♾️
афигенный у тебя стайл, друже.🕺 безтревожное проживание при СССР вспоминаю.
Спасибо за ещё один урок из жизни электроники, жаль вопросов меньше от этого не стало 😅.
А мне наоборот всё ясно. Нефиг тырить чужой труд.😂 Шутка.
На самом деле бывают случаи когда разработчик или программист покинул наш мир и очень жаль что пропадает хорошая программка хотя копия по любому у кого то есть. А вообще лучше писать самому кто может так чтобы потом можно было и переделать/добавить или наоборот удалить некие команды.
@@BioTech81 совершенно верно!
@@BioTech81 Разраб покинул, а ГитХаб остался..
@@BioTech81 Тырить? Там институты работают. Очень много кабинетов, специалистов... Гораздо интереснее, сходить в институт и получить образование.
@@Palladln
Ну если программу не надо дорабатывать и гифт не зашифрован то возможно.
Мой первый программатор как раз мог работать вообще без компа. ))) На обычных выключателях, просто перебираете адреса в ручную, и записываете туда информацию какую ни будь, и еще одна кнопка прожиг.
))))) Классный видос мужик, я подписался, лайк тебе. )
интересная подача инфы для зрителя, доступно коротко и понятна для формата канала.
Больше всего мне понравился момент на 3:45 с именем файла слитой прошивки )
Название слитой прошивки - топ!
я первый раз смотрел на телефоне - мелкое не успел разобрать, но примерно подумал, что он написал именно то, что я подумал :)) отмотал, увеличил - точно :))
😂
оооо мужик, давно таких каналов не встречал, где даже наверное и дилетант понял бы что и зачем. пожалуй подпишусь.
Браво! Прикольный стиль объяснения 😂
очень интересная информация, а подача просто превосходная) благодарю!)
Хорошее видео-жизнь показывает что чаще дешевле новый купить чем воскрешать прошивку старого!
Хорошее видео для базового изучения. Лайк однозначно.
ну если ты настолько ноль, то да.
@@shibkovumnij1977rb Сходи ещё на уроки пятиклассников - там ты оторвёшься.
Молодец мужик! Разжевал всё для школьников. Ну а я получил массу удовольствия. Правда ещё один способ не указал - таблицы, но на это надо тоже огромная масса времени, а если таблицы более, чем двухмерные, то ещё и масса удачи.
Понятно, что ответ для самых начинающих, но рассказано и объяснено всё хорошо! Как именно работает лок-бит на физическом уровне, кстати, не знал. Благодарю!
Подкину, так сказать, возможное направление куда копать:
Шьём в контроллер последовательно 0xff, но только в момент прошития формируем короткий импульс понижения питания контроллера так чтобы нарушить работу встроенного повышающего преобразователя, но в тоже время не сбросить сам контроллер. В результате стирание происходит не всегда. Последним шьём слово конфигурации со снятой защитой в обычном режиме. Далее вычитываем содержимое контроллера, и повторяем весь процесс ещё с десяток раз со свежими контроллерами естественно. Путём сравнения прошивок находим верный код.
Недостаток метода в потрошении кучи девайсов компенсируется их последующим восстановлением, при удачном исходе конечно.
По крайней мере один раз с одной известной маркой контроллеров этот метод сработал.
По началу думал че за нафиг, потом понял, что человек просто все компилирует на простолюдина, годный контент, красава ))
привет тебе от ассемблериста пикиста ))) сколько я раз хотел вскрыть чип и прочитать именно таким образом - благо доступ был к машинке уз-сварки TPT-HB05 но всеравно написать свое и лучше бывало в разы быстрее.
на старых версиях типа pic16f877 бит лок был на верхнем уровне литографии. Сейчас уже вышли версии данного кристалла 877a со спрятанным на 4-5 слоев в глубь кристалла также и 887 версия тоже далеко глубоко запрятали линию эту - там суть лазером просто выжигалась полоска от элемента и все чип был с вечно снятой защитой.
Классная подача. Я получил все что не знал собрал все в кучу и выбросил в мусор. А читаются большинство а те что не читаются уходят в мусор вместе с изделием. По простой причине не надо покупать то что нельзя отремонтировать
Сегодня будем учиться писать. Для этого вам понадобится: ручка, тетрадь, стул, стол, руки и как ни странно голова....
Большое спасибо за Ваш труд.
Столько воды про два фьюза защиты от копирования? 88-й уровень! Браво!
Ура! Я почти достиг 90-го уровня!!! =))))))))
Да, это видео для "самых маленьких", некоторые вещи кажутся нам вполне себе очевидными, но ведь есть люди, которые в первый раз столкнулись с таким вопросом =)
Я такой. Мне было очень интересно.
Лучше уж в мелочах изучать что либо изучаемое
@@Gnevistj видишь ли, если ты это объясняешь для какого-то экскурсовода, из третьяковки, есть подозрения, что прошивка ему всё равно не нужна)))
790 людей оценили лайком.
+1 мой
Konechno polezno i dohodchivo! Spasibo za horoshij jumor!
"Прищепка, для пополнения китайских кошельков" - 😂👍выпуск- супер.
Ролику зачет! 👍Любопытно было бы узнать как происходит кодирование карт тв доступа, триколор, телекарта...
Триколор, как я помню, dre cript, первые приемники не имели карт, а обновление ключей происходило по воздуху, обычно по умолчанию в 3 часа ночи, как у всех других. Привязка шла к железу. Даже сейчас есть, пару приемников с картами, телекарта, рикор ТВ. Но смысл в том, разблокировка опять происходит по звонку, оплате и диктованию серийного номера приемника. Это тоже самое, если друг дал логин и пароль от кабельного инета, сейчас идет привязка к MAC, чтобы инет заработал, нужно еще просить MAC, чтобы вписать его в настройках. ПО спутниковых приемников от оператора, даже не имеет эмулятора BISS ключей, хотя в глобальной версии прошивки, он имеется. Теоретически, если собрать свою прошивку, если приемник работает на ОС линукс, написать эмулятор железа, для удобства функцию переборщик серийников, если серийник невозможно достать у соседа, с помощью C++ используя кроссплатформенный gcc компилятор, набрав toolchain именно под свой процессор. Можно скомпилировать прошивку, которая будет сама, к примеру за ночь, находить рабочий серийник. Карты достать не сложно, у многих они валяются, так как многие побросали спутниковое ТВ. Другое дело банковские карты, но и здесь достаточно, обычного портативного бесконтактного терминала и пройтись в битком набитом автобусе.
Неужели в 7531-ом году сохранились питекантропы, которым до сих пор нужен телевизор❓❗🎃
А ещё можно, поломать логику микроконтроллера используя ненадежное питание (voltage glitch) или играя с частотой кварцевого резонатора (clock glitch) тем самым заставив ещё совершить ошибку в коде программы или ошибку в логическом элементе схемы. Метод называется Glitching. В ряде случаев это довольно успешный способ считать прошивку защищенного контроллера. Например если контроллер работает с USB, то подавая команду на чтение описания USB устройства (DeviceDescriptor) и указывая в пакете длину возвращаемого сообщения больше максимальной которую может вернут контроллер. В логике прошивки контроллера происходит сравнение длины возвращаемого сообщения с максимальной, если в момент проверки произойдет ошибка то контроллер может вернуть данные которые записаны после DeviceDescriptor то есть часть данных хранящихся рядом. Не всегда работает но и не требует растворять чип и "подпаиваться" к кристаллу кремния.
А играться с частотой кварцевого резонатора можно вскрыв его корпус ( в неочень стерильном помещении 😂) и воздействовать на кристалл парами йода.
Всегда знал, что надо стоять у истоков, а не пытаться очистить сточные 😂😂
Спасибо. Как всегда, доступно, объёмно и очень оригинально.
и нахуй не надо
Благодарю за интересный обзор!
Классно и интересно , но всё таки очень хотелось бы узнать ещё какой нибудь способ взлома !!! Конечно ЛАЙК !
Видео было многообещающим и даже местами интересным 😁. Но интереснее было бы узнать что делать с считанным набором машинным команд чтобы перевести их в более человеческий язык, а с этим на сколько я понял как раз беда. Или есть таки способы если дело касается контролеров для которых программы для их программирования в свободном доступе?
Насколько знаю, в даташытах на авр описано, как записываются команды в память. Также есть коды команд
Сам не делал, но возможно на каком-нибудь питоне, если прям прижмёт, можно сделать декодер на ассемблер, только смысл есть ли хз🤔🤔🤔
Доброго здравия. Для avr есть такой, Reavr называется. Дизассемблер. Но потом всё равно требуется много ручной работы. Которую как раз и можно автоматизировать с помощью питона. Ибо Reavr выдаёт следующий формат: адрес команды в памяти; сама ассемблерная команда и операнды (регистры). Если команда перехода, то там вместо метки будет стоять адрес. Удачи
Большую программу запаришься дизассемблировать сидеть, а маленькую проще самому написать с нуля..
Для починки какого-то прибора к примеру не надо ничего разбирать в коде, просто прошить дамп заново..
Для разработки устройства проще программу по кускам из библиотек собирать по форумам..
Дизассемблер IDA. Для пиков, авр и других.
@@v61kz прям таки на питоне?
Спасибо за труд. Очень полезный ролик.
Нужно было упомянуть о ChipWhisperer и как он работает.
Манера подачи навевает на мысль, что автор долго проработал воспитателем в детском садике...
Я раньше тоже так считал пока мне на глаза не попалась книжка "Реверс-инжиниринг встраиваемых систем [2023] Усанов А.Е.". Оказывается возможностей для взлома гораздо больше. Не читал но бегло просмотрел
Благодарю за инфо! Скачал, уже осилил вступление😂
Хы хы, вся правда о пиратстве) надо своему начальнику на работе показать😂
Редкая тупизна с претензией на юмор. Зачем я это смотрел? - Как прочитать прошивку? - Никак. Чтобы услышать это, понадобилось всего 13 минут терпеть боль в ушах.
Красавчик!
И по делу, и с юмором!
Думаю уже скоро появятся переводчики из машинного кода в с++ или что там еще может быть. Даже не представляю сколько времени займет обучение такой нейронки, но оно того стоит.
Кстати, идея супер! Идея на миллион, не шучу! Беритесь за реализацию =)))))))))
Хотя в целом, я такие эксперименты не одобряю, но об этом будет отдельный выпуск =)
Из машинных кодов в С или подобных уже давно есть и много. А вот в HDL, VHDL или AHDL нет и не будет.
@@СергейЗ-ю4я , да, есть переводчики обратно в си, но конечный перевод подчас настолько примитивен и "тяжел" для восприятия, что проще читать асм =)))
Но это всего лишь мое имхо, как известно мнение редакции не всегда соответствует мнению читателей =))))
ПЛИС же вообще несколько другой мир, там, на мой взгляд, без дохренаканального анализатора логики нечего ловить =))))))) Хотя дела имел мало с ними, могу ошибаться =)
@@Gnevistj В реверсе программ есть нюанс. Если изначально прога была написана, например, на С и декомпилируют ее в С, то результат получается очень хороший, если же декомпилируют на язык, отличный от того, на котором изначально написали прогу, то результат может быть очень плохой.
Про ПЛИСЫ. Написал программу. Скомпилировал. Поменял одну цифру в данных. Снова скомпилировал. Результат - разница в 81 байт!!!
@@СергейЗ-ю4я там же уже во время компиляции проходит несколько переводов между внутренними форматами?🤔
ну почему так мало и так редко мы видим этого многоуважаемого товарища?
Мну испытывает потребность извиниться за нерегулярность выхода новых выпусков, каюсь - завален другой работой по самое "не могу" =)))))))))))
Помню, для древнего языка Clipper была программная приблуда, позволявшая получить "дизассемблированную" программу, то есть почти исходную программу на языке Clipper с той только разницей, что имена переменных были не те что использовал программист, а условные. Но можно было разобраться, изменить логику и снова скомпилировать. Возможно есть что-то подобное для микроконтроллеров, чтобы переводить из машинных кодов на ассемблер? А ролику и спикеру зачет и подписка.
Да, дизассемблирование возможно, и программ для него пруд пруди, начиная от официальной среды разработки. Проблема в невозможности возврата к языку высокого уровня, а большие программы мало кто, точнее практически никто не пишет на асме =))))) И уж разобраться в этой на первый взгляд бессмысленной куче пересылок и перекладок из одного регистра в другой - мое почтение, трэшовая работа, проводил такое =))))))
@@Gnevistj ну, так то ghidra существует... да и hexrays для арма справится. возможно этот выхлоп будет даже читабельнее оригинального кода на с++ (если там был он, а не сишка).
@@Stedmiel а всякие защиты по наверное так и обходят? Меняют какой-нибудь адрес перехода функции и всё, нету модуля защиты🧐
@@v61kz настолько простые защиты встречаются разве что в нубских крякмисах или в винраре каком.
а так да, трассировать и искать, чо где к чему относится и зачем в эту память лезет. в эмбеде еще попроще, там особо лютые варианты со всякими виртуалками (кхе-кхе, denuvo/vmprotect) не в моде еще. хотя вон, у cypress'овских cortex m0 уже гипервизор есть и используется. правда не столько для защиты, сколько для скрытия реализации флеш-контроллера- он там полусофтовый.
@@Gnevistj можно как то узнать язык на котором писалась программа из прошивки микроконтоллера?) в частности у меня есть прошивка от акпп , эбу бош, очень нужно ее разобрать, инфы нигде нет( удивительно но было маленькое тюнинг ателье в США которые под них прошивки писали, но они их уже не продают(
да всеми согласен специалньо включил звонок чтобы не пропустить новый видео, вот бы так в универе объясняли клаассссссссс!!!!!!!
Супер, до конца ролика думал ждал дешевый метод обойти фьюзы, но увы. Хотя знаю что никак, но вдруг, может быть, как нибудь.....
Выпуск интересный несомненно Лайк 👍 Но в вопросе считывания заЩишенной прошивки, в корне не соглашусь, есть группа программаторов которые отлично вычитывают из защищенных камней их прошивку : Xprog , Orange, Xhorse VVDI Prog и другие...
Неповторимый оригинал и жалкая пиратская копия 😂😂😂😂 СИЛЬНО!!!
у современных контроллеров не один бит защиты а много, на каждый участок памяти свой бит,и ячейки этих битов спрятаны внутренним слоем, под основным кристалом
ДВА ПУТЯ! 👍 😀 А ОН ОДИН В ЖИЗНИ, ТОЛЬКО В ПЕРЁД ! УСЁ БУДЕТ ДОБРА! 🤣
И можно ли с помощью программатора перезаписывать ПЗУ? И как его записывают вообще?
И является ли "флешка" аналогом ППЗУ? И благодаря чему данные можно перезаписывать неоднократно?
12:48 И всё таки интересно было бы увидеть этот список.
Может и соберусь как-нибудь =))))
коротко ясно понятно ,большое спасибо
Эдди на дверях - это эпик! Up The Irons!
😂 окончание порадовало :) прям в точку
Благодарю за урок
жесткий чел.. сразу же отпало желание читать контроллеры после просмотра))))
СПАСИБО у Вас есть уникальная способность обяснять сложные вещи так чоб и медвежонок понял. Но давате следуещее видео про два путя как из этой битной каши читаемый код получить чтоб понять как там все устроено
IDA дизассемблер в помощь
@@zorrozorro2839 А кино про это чтоб и медвежонок понял?
@@ernisesama1636Не каждый программист разбирается в ассемблере. А тут речь идёт о дизассемблере!
Расскажите про шести польскую систему выпрямления более подробно особенно тпе 630 и про угол открывания тиристоров вы обещали про наши старые аналоговые тиристорники пожалуйста буду с нетерпением ждать ваш урок
за футболку отдельный респект )))
Спасибо!Интересный маатериал.Понятно,что с компилированного hex. файла ничего не получится выяснить.Проще новую программу написать (или скачать готовую).Ещё ходят слухи,что ИИ gpt chat пишет всё что попросиш.Я попросил программу на с+ для регулировки частоты трёхфазного двигателя -он мне чтото бессвязное написал (наверное обматерил,на своем машинном языке).😀
Скорее всего ты просто задал "неполноценный вопрос", т.е. не указал на детали реализации (модель контроллера, двигателя, задействованные пины и т.п. ересь) 🤔
Только что потестил аналогичный запрос на гугловском _Bard_ и он со второй попытки выдал мне неплохой каркас для приложения. После первой попытки (я бы тоже назвал её "бессвязной") попросил его написать аналогичную программу, но с учётом добавленных деталей и получилось весьма неплохо.
IMHO, если умеешь читать чужой код и сходу понимать логику, то даже текущие версии чат-ботов могут быть чрезвычайно полезны 👍
p.s.: прямо сейчас несколько крупных игроков на рынке разработки ПО -вливают тонны бабла- тренируют большие языковые модели, рассчитанные только на кодинг. Вполне может быть, что уже через пару лет, если не раньше, они релизнут что-то действительно крутое.
@@deniskhakimov Да,вы правы,я действительно не дал ему много параметров и скорее всего получил такой ответ.Но программиррвать уметь необходимо.Во первых ,чтобы понимать процесс и навеерное ,более важно-чтобы отдалить процесс умственной деградации (мозг должен упражняться).Иначе он заскучает🙂
ниче не понял, но посмотрел с удовольтсвием, лайк!
Интересно. Футболка навеяла некие мысли. Атакующим может быть совсем не нужен код программы. В машинном коде, в виде байт, ими будут найдены ключи шифрования, например. А сама программа будет потом переписана под другой микроконтроллер.
Отличное видео! Как с Вами связаться?
The Pirate Bay лайк однозначно сходу))
Всё чётко объяснено !
Вскрыть корпус, подключиться к кристаллу, прочесть инфу -- совершенно рутинная операция на заводах по производству микросхем. Потому что им по работе этим надо заниматься.
Для постороннего клиента это стоит около 10k$.
Не так уж и много.
Если это не какая-то секретная микруха, в которой есть архитектурная защита, сильно усложняющая такой взлом. Но это про военных.
А с простыми МК, практически "дома на кухне", можно поступить так:
Нужен немного усовершенствованный программатор, который может в нужный момент менять напряжение питания "пациента" прямо в процессе чтения.
Нужна стиралка -- эквивалент ранешних УФ ламп -- но светящая мягким рентгеном, проходящим через корпус.
Но не более 20 кэВ. Более жёсткий рентген повреждает кристалл.
Цикл:
Немножко стираем;
Начинам чтение при самом высоком (допустимом) напряжении питания;
В какой-то момент понижаем напряжение до минимального и читаем остальную память;
Если получилась фигня, повторяем цикл.
"Немножко стираем" -- немножко уменьшает заряды в ячейках памяти.
Во всех, в том числе и в бите защиты.
И в какой-то раз автомат чтения увидит, что бит защиты кода стёрт.
И позволит инфе утечь во внешний мир.
При высоком питании ячейкам памяти требуется больший заряд, чтоб прочесть "записано".
А при низком питании требуется меньший заряд.
Поэтому, когда бит защиты при высоком дотрётся до "можно читать", в остальных ячейках при низком питании зарядов хватит, чтоб прочесть правильную инфу.
Хитро придумано !
Согласен! Имея ТЗ, проще написать самому!
Интересная тема🤔 получается производители защитили от взлома и чтения прошивку ? И получается поэтому если с микрокантраллерами в бытовой технике чтото случается они плату полностью меняют ?? Но я знаю что и прошивками они занимаются . Получается не все микрокантроллеры защещины ?? В будущем наверное вобще не будет возможности прошивать микроконроллеры ..
такой вопросик, можно ли на закрытом от чтения прошивки микроконтроллере сменить маленькую часть прошивки на свою, которая прочитает оставшуюся прошивку и выдаст её на одной из ног? или это зависит от микроконтроллера? (если да, и если иметь два контроллера с одинаковой прошивкой, то можно записать в два разных места, прочитать обе прошивки и восстановить недостающие блоки)
Насчёт отправки на "свалку истории" спец программаторов , автор конечно жжёт !)) Да и тема с обходом защиты не раскрыта, а тема в общем интересная и разнообразная , в силу разнообразия способов обхода. Несколько раз приходилось придумывать и реализовывать обход защиты на конкретных устройствах с процами вполне успешно.
И ещё, - вот не понял я , в чём проблема дамп в асм "превратить" ?! ))
Вообще-то во многих микроконтроллерах есть недокументированные команды, используемые для отладки, они позволяют "поиграть" с битами флагов, отвечающими за защиту от считывания, банально сдвигая указатель при записи данных на контроллер на необходимый адрес.
Это как? Можно подробнее чуть-чуть?
Привет, как разобрать игры для айфона, чтоб отключить рекламы?))
С айфонами дела не имел, ибо я нищеброд, и у меня гнусмаС на андроиде =))) Но вдруг мой андроидный способ поможет и вам? Ловите лайфхак - после запуска игры отключаете вайфай и мобильные данные, проще говоря - включаете режим полета. Игра тыкается на сервант, связи нет - рекламы нет =)))))
Работает конечно не со всеми (некоторые без рекламы не запускаются вовсе), но большая часть становится играбельными =)))))
Классный контент! Давай больше!!!
Здравствуйте, а как можно эту прошивку потом перевести в си код например для правок ?
Помимо прочего, есть один вариант: никак. Например, в AVR есть так называемый бит защиты. Если его установить при прошивке - считать уже ничего не получится. Постоянно пользовался этой функцией, когда делал приборы на продажу.
P.S. Ролик ещё не посмотрел.
Теперь я знаю!!! Спасибочки! Лайкос!!
Спасибо завидео, уж заждался чесслово!
Круто! А из атмеги128 можно скачать прошивку (скетч) ?
Есть ещё один способ: - "В жидком азоте, - считываются импульсы", но это жесть и ещё какая. Считывается куеву тучу раз, потом сигнал сводится и из аналога получается цифра, но нужен микроконтроллер с удалёной подложкой!😇 работает 100% если азот халявный то за неделю-две всё получится. (к слову корпус и подложка растворяется кислотами.)
Я так понимаю на WIN11 нельзя установить дрова для AVR программ. Есть ли варианты совместимости? Или берем старый добрый WIN7?
Занимательно ...но не до конца...😊.а вот теперь до конца...😊
а я так надеялся увидеть чудо чудесное
А как же "Voltage Glitch" вполне себе способ. Есть ещё bus pirate. Или это и есть те самые "бытовые методы"?
Скажите пожалуйста а как свою программу защитить от копирования после прошивки ...что выставить надо в фьюзах ???
О, Хэтфилд в молодости.😅👍
Обещали показать в предедущем уроке про линейность значений чтоб показания не дергались
Я имею введу урок про шкалирования там значения постоянно изменялись вы общали показать как это можно исправить програмно спасибо за ваши видео 👍
В конце видева не хватает рекламы собственных курсов "по реверсу и ассемблеру для жаждущих обрести бинарное просветление"
😅
заждался чесслово! Спасибо ! 👍
Здравствуйте. подскажите. как узнать к какому микроконтроллеру какой программатор нужен?
Здравствуйте. Возможно ли извлечь прошивку из микроконтроллера с закороченными контактами по входному питанию 5 Вольт? stc 15w4k32s4 30i lqfp44
Расскажите какие есть условные или косвенные признаки того что на неисправной плате вышел из строя именно тот или иной микроконтроллер а не какой-то транзистор или диод. А может есть и безусловные видимые признаки неисправности микроконтроллера. 💪🏼
Именно по этому при необходимости микропрограмма добывается другими методами (убийство, шантаж, разбой, и тд...)
👍😀+5 За подачу материала
Можно взять лог анализатор и считать полный лог. А затем ручками кодировать. Уйдут месяцы работы, но возможно.
Забыл упомянуть про физическую защиту от чтения. Когда на заводе физически выжигают условный транзистор в схеме контроллера, который отвечает за возможность чтения.
Очень годно, лайк, подписка
у нас бы теперь официально на федеральном уровне реверсили бы западные железки
Ага. В мячтах!
Парни,стоит в блоке комфорта m38747mct. По поиску находится как Mitsubishi Electric Semiconductor. Даташит на процессор есть.Чем его можно прочитать ? Какой софт и каким программатором ?
Здравствуйте. А можно сделать наоборот, залить адруиновскую прошивку в pic?
Есть ещё один способ взлома микроконтроллера - терморектальным дешефрированием
Терморектальный дешифратор -это вообще универсальное средство для извлечения информации из секретных источников)
А если это микроконтроллер от советского калькулятора, то только изучая его под микроскопом можно понять принцип его работы?
И как электрический разряд портит память микроконтроллера и мог ли я таким образом его повредить от разряда электрозажигалки на батарейках (в детстве экспериментировал так)?
Про выпайку паяльником можно было по подробней, при хорошем опыте, можно выпаять дедушкином паяльником и канифоли, без повреждений. Видео, конечно интересное, но это все просто, когда мы знаем, что за микроконтроллер и есть датащит. А как быть с нонейм китайскими устройсвами, пытаться определить по плате, что есть что. Но все равно мне кажется можно запутаться в ножках, это же не TTL, где всего Rx, Tx и земля, которую в принципе уже известно куда цеплять, а Rx, Tx определить не проблема. Про машинные коды, ASM в помощь, здесь нет ничего сверхъестественного, если уметь отлаживать программу, иногда даже программисты к этому прибегают, так как компилятор из высокоуровневого языка, может начудить.
Раскажите, пожалуйста про ПИД регулирование в GCBasic