Как стать автором
Обновить

Практический опыт реверс-инжиниринга печатной платы: зачем, как и когда это нужно?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров10K
Всего голосов 43: ↑42 и ↓1+56
Комментарии73

Комментарии 73

В тексте градусы поехали все. Например «150-1550С» вместо 150° А потому что не надо использовать вместо значка градуса ноль в режиме верхнего индекса. Берите что-то типа «раскладки Бирмана» для исправления (градус там на Alt+D), в целом достаточно по шагам пройтись по тексту с автозаменой 0C на °С

Дочитал, любопытно, спасибо.

Вопрос по 3д-модели. Она получается разборная? В смысле один компонент == один объект? Или всё в одну свалку без группировки? Интересует преобразование для визуала в полигональную модель.

Спасибо, что заменили, что поехали градусы( Поправили! По 3D-модели вернёмся в скором времени!

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

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

Файл из программы выгружается в формате STEP, это по сути сборка из множества компонентов включая плату. Слить всё в единую модель можно в Компасе.

А можно было бы рентген сделать...

Можно было бы.... Только на моей практике была пара-тройка случаев, когда ребята из центра аттестации по ИБ покупали новые железки взамен (сервер был и пара роутеров-коммутаторов) после просветки на рентгене аттестуемых железок....

это вас так лицензиат или само ведомство засветило?

Не все устройства можно безболезненно разбирать.

А как это вышло? Железки рентген не выдерживают? А как же прохождение таможни?

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

В зивертах измеряется эквивалентная и эффективные дозы в СИ для рентгеновского, гамма- и бета-излучения можно в первом приближении считать, что 1 Зиверт равен 1 Грею. Грей единица измерения поглощенной дозы ионизирующего излучения, равная 1 Дж/кг. Бэр это "биологический эквивалент рада". Рад старая единицы измерения поглощенной дозы ионизирующего излучения 1 Грей = 100 рад.

Вы правы, я то на ходу с телефона написал, если кто реально заинтересован - быстро найдет соотношения.

Фигня получится. На ДПП-шке ещё куда ни шло, а разобраться, что и куда идёт в шестислойной плате, на рентгене вообще не вариант, проверено.

Работа, несомненно, достойна уважения.

Но грустно как-то — тупо "реверс" вместо собственного, как ни крути. А нужно бы действительно своё. Или вся отрасль ушла в только "реверс", никаких других новостей нет?..

В СССР в 80-ые (а наверное и раньше) этим занимались целые отделы в П/Я. Платы конечно были в разы сложнее, и практически все вручную. Долго и тщательно, в несколько параллельных потоков для выявления ошибок. У товарища родители работали в таком отделе, много интересного рассказано было...

Да. Но и закончилось всё вовсе не радостно, мягко говоря.

Всё за счёт того, что приходил большой начальник(тм) с вышестоящей организации и спрашивал - а на западе такое есть? Нет - наТБМ, а если есть по свойствам близкий, но по качественным характеристикам не очень - делайте как там и пофиг на всё.
Например - (было в конце 90 на форуме club.azlk.ru, тогда много разработчиков оттуда там в открытую очень тепло отзывались о такой политике...)
Так и те же автозаводы, АЗЛК сделал свой переднепривод с продольным расположением, после 412 москвича, но сказали наТБМ, в итоге мудернизировали М412, получили М2140.
Когда пошли массово передний привод на западе с продольным, у VAG, в основном... - дали добро на подготовку к конвееру.
Подготовили, но - нет, в этот момент была Crysler-SIMCA машиной года - сделайте кузов как у симки.
В итоге 2141 выглядит от лобового стекла назад как симка, а по технической структуре свое.
Как и выбирали в своё время классику ВАЗа - не то что FIAT-124 был чем-то выдающимся, но итальянские товарищи попросили спасти от банкротства, вот и весь СЭВ был за счёт СССР оснащён заводами от ФИАТ, у нас это АвтоВАЗ.

"Своё" должно быть на переднем крае науки. Колесо изобретать не нужно заново, оно уже изобретено, бери и пользуйся. А текущая маразматичная система патентов - выкидыш торговой войны, когда лидер отрасли закрывает путь конкурентам нерыночными методами и покупкой законов (лоббированием)...

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

интересно, как Вы себе представляете жизнь без патентов, предположим Вы изобрели что-то типа транзистора потратив пару лет, к Вам приезжает делегация из Китая, просит показать документацию и производство, что Вы ответите?

предположим Вы изобрели что-то типа транзистора потратив пару лет, к Вам приезжает делегация из Китая, просит показать документацию и производство, что Вы ответите?

Стандартные торги, мы вам эту технологию, вы нам другую. Или деньгами. Вы можете внедрить шпионов, сами разреверсить технологии, понять, как это продать - но это будет едва ли дешевле, чем купить у автора готовенькое. Просто автор уже не сможет сказать от фонаря "я хочу миллиард золотом в секунду и твою душу" или "не продам, потому что ты негр", его скотские желания уймёт свободный рыночек.

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

В таком случае, если нет большой дубинки - только утираться.
В частности, та же британская империя, когда что-то стоящее попадалось, у них не патентовалось оригинальное, т.к. случайно у них появлялся местный Ньютон, который это тоже примерно в это время описал и приоритет у него. А пока он не описал - задержка, согласования и прочее, благо, до 20 века всё было очень неспешным.

верно, "закон тайга, прокурор медведь" = назад в средние века, типа подходящего феодала надо искать, без дубины изобретать смысла нет

сначала посмотрю на репутацию. а так были истории - когда Китайцы проводили M&A и технология становилась их. Вспоминается команда по Wi-Fi из Израиля и dr. Doron Ezri. если не вспоминать рф кейсы...

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

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

холивар не надо, и так все очевидно :)

"Своё" должно быть на переднем крае науки. 

Ну так и надо делать своё. В чём проблема?

Копирование чужого (особенно ещё и нелицензированное) — никак не является "достижением науки". Достижение копировальщиков — но никак не науки. Пустой пшик.

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

Нет, по одельным направлениям копирование никогда не умрет - это, в основном, направления продажи понтов - лакшери бренды. Но тут их проблемы, понты для общества в целом вредны...

Это в идеале. В реальности "нормальные" могут и не появиться, так и останутся только "копировальщики" - иллюстрации в истории найти не сложно.

Для того чтобы появились нормальные - необходимо не только понять что, но и понять почему так, и на основе этого выработать - а как лучше сделать.

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

Дело даже не в том что реверс, дело в том, что это абсолютно вторичный род деятельности. А с первичным созиданием в СССР все было очень туго. По сути никак. Даже утюги и пылесосы были цельно тянутые с филипсов и прочих грюндиков.

"Кто сдает продукт вторичный, тот питается отлично!".

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

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

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

Грустно, но много таких импортозаместителей, говорящих что их условный трактор на 98% сделан из отечественных деталей, но на самом деле там импортный двигатель, импортная коробка и 98 отечественных болтов.

Свое много кто делает. В самых разных отраслях. Больше того - своего на порядки больше, и именно реверс исключение. Просто про "свое" писать или грустно, или нельзя. Вот тут цикл был про процессорный модуль на RK3568. Чем не свое?

А реверс платы - да, отдельный навык. И как многие навыки в реальном производстве радиоэлектроники по сути уникальный. Нет специалистов, нет спроса. И неизвестно что первично, а что вторично. Но уж если понадобилось... То хочешь не хочешь а решать придется. Что до здесь, то полагаю это скорее освоение нового навыка, чем практическая необходимость. И с этой позиции все хорошо и правильно.

Понимаем ваши беспокойства о "реверс", но это лишь один из примеров нашей работы, и в данной статье наш коллега Андрей решил поделиться своими наработками и опытом с аудиторией Habr – кому-нибудь будет обязательно полезно, тем более про такое мало кто говорит😉

И не хотим спойлерить, но у нас на подходе ещё несколько статей про разработки🙃

Реверс - это не только про "содрать подчистую".

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

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

Согласны с вами🙂

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

Почему не смыть маску раствором гидроксида натрия, или диметилсульфоксидом? Это безопаснее получается для дорожек, чем вручную наждачной тереть. В любом случае это все достаточно просто получается, можно даже не смывать, а поиграться со светом при фотографировании. А как быть если плата многослойная? Можно рентгеном просветить? Какой рентген для этих целей нужен, подозреваю, что медицинский слишком мягкий и медные полигоны не просветит. Ну или вот так стирать каждый слой, и фотографировать. Но тут думаю лучше каким-то фрезерным станком это делать. Так-же видел видео как плату лазером "травили", но мне как-то с трудом в это верится, как так медь испаряется, а текстолит при этом не обугливается, думаю это какой-то обман. Или может быть лазер, с подходящим для этого излучением?

Показывал на примере простой платы, есть опыт в разборки 8ми слойных плат на слои. На станке сточить не получиться, потому что высоты у платы разные, теоретически плата ровная, на самом деле перепады в микроны и даже точные станки вам ровно не снимут. Нужна карта высот для платы вообщем i это дорогое удовольствие. Стачивать наждачкой - это более щадящий вариант, так как можно контролировать процесс постоянно. Вариант с химией может негативно повлиять на структуру платы, и она вспучится. Рентген не вариант, проверено, так как сложно на просвете определить перекрытия и наложения. Можно и лазером, если подобрать точно настройки, так уже делал, игра с огнём по сути, перестарался и сжёг лишнее, но когда плата в единственном экземпляре хочется выбрать надежный вариант, проверенный.

Плата то простая, куда приятнее было бы сделать самому.
Характеристики описать по требуемым входным и выходным напряжениям, токам, пульсациям. Изучить типовые варианты реализации, доступные компоненты и их даташиты, нарисовать схему, погонять ее в эмуляторе, почитать книжку по разводке плат, нарисовать плату изготовить, испытать, отладить.
В итоге сами бы знали как работает и в случае чего могли бы быстро подправить, полученный опыт позволил бы перейти на уровень выше и разрабатывать более сложные вещи. А так построите сервер на иной комплектухе чем та на которую рассчитана эта плата и не заработает и никто не знает даже откуда начинать искать проблему.

ЗЫ: а так вообще статья - признание в преступлении как-бы

То, что сделал один человек может сделать и другой. Я вот, например, вместо того чтобы купить кронштейн крепления радиатора охлаждения двигателя открутил старый, почистил, измерил, нарисовал чертёж и изготовил из металлической пластины новый. Потому что новый или не купить или цена на него абсолютно неадекватная. Но ведь это не преступление - это будни ремонта. В статье разве не аналогичная ситуация? Представьте себе большое устройство в котором не работает рассматриваемый блок - вот его и восстановили.

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

Это какое-то тупое клонирование. Много чего я нареверсинжинирил в своей практике, включая осциллографы с гигагерцовыми АЦП и плисинами в BGA. Ни разу не было необходимости полностью разбирать плату и снимать маску, даже с многослойными платами. Схемы включения чипов мало отличаются от схем из даташитов, все соединения достаточно очевидны если представляешь что это за устройство и как оно должно работать. Чтобы повторить устройство нет необходимости копировать плату 1 в 1. Начинаю я со схемы, разбирая только не самые очевидные места. Если элементная база известна, то большая часть соединений очевидна, она как правило не отличается от даташита.

Бывает что приходит большой начальник и говорит - строго как это, 1 в 1.

Начальник тупой, ему простительно не понимание того, что в данной точке планеты в данное время доступны другие технологии и элементная база. Часто даже и получше. И нет никакого смысла копировать 1 в 1. Ну разве что совсем не понимаешь как оно устроено и работает.

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

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

Я могу оправдать реверс только в одном случае, когда девайс есть, а сервис мануалов нет, а производитель при этом тебе в ответ на обращение говорит, что то типа того: "Эту фигню №17, настоятельно рекомендуем заменить на фигню №18, по цене раза 2-3 выше фигни №17".... тогда может быть и то не факт, я лучше постараюсь заменить производителя... :)

Верно я понимаю, что в KiCAD такое не провернуть? Там, вроде бы, без схемы нельзя начать рисовать плату.

И второй вопрос. Если снимать с плат компоненты типа миниатюрных ОУ, не поплывут ли их характеристики от нагрева феном (если не превышать температуру?).

Почему это нельзя? Я реверс сейчас только в KiCad и делаю.

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

Но я обычно захожу именно со схемы. Идентифицировать основные компоненты, накидать их в схему, потом посмотреть как ноги соединяются. Подписать их функции в схеме, обновить, соединить.

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

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

Бесполезно. Ломается всё, был бы в этом смысл. Самое простое микроконтроллер с защищённой прошивкой. Только в большинстве случаев проще не ломать защищённую прошивку, а написать новую.

Спасибо.

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

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

Не надо ничего шлифовать. Большинство соединений очевидно, надо только заглянуть в даташиты на компоненты. Остальные находятся элементарно тестером.

Прикольная работенка. Хотя что-то мне подсказывает что конкретно этот оригинал вернуть не получится. Стерся )

Устанавливаем на нашем фене температуру 300°С

А температуру нижнего подогрева указывать не обязательно?

М, вновь читать статью, там, имхо, было указано 125-150*С для исключения термоудара.

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

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

Интересно, а как идентифицировать какие-нибудь элементы, которые нельзя измерением определить? Какие-нибудь мелкие без маркировки стабилитроны, диоды, варикапы, и т.п. Ведь нельзя определить, например, какой это полевик, на 50 ампер или на 80, если маркировки нет, да и другие характеристики не узнать (только косвенно).

Второй нюанс с прошивками - как быть с теми чипами, в которых нельзя прочитать прошивку? Да, в некоторых случаях можно всякими манипуляциями (питание, температура и т.д.) обойти это, и прочитать как-то. Но в остальных случаях как быть? В технологически сложных штуковинах чаще всего и маркировку чипа убирают, и прошивка решает 90% функционала устройства (без неё ничего не сделать). Особенно если есть несколько модулей, и каждый со своей прошивкой (кофе-автоматы, и прочие вендинговые, игровые автоматы, всякие контроллеры на силовые агрегаты в промышленности и т.д.)

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

Паяльная маска растворяется толуолом

Как это по варварски! Много раз приходилось реверсить платы многократно бОльшего размера и всегда как-то подразумевалось что после срисовывания плата должна остаться как минимум работоспособной, а желательно еще и не сильно потерять во внешнем виде. Всякие наклейки отклеиваются/приклеиваются взад. Отпайка компонентов случается, но только по необходимости когда 4 слоя и куча переходов.
А тут - распаять, да потом еще и шлифмашинкой... Честно, первый раз такое вижу. Немного в шоке. Извините..

Вы просто не спускались на уровень ниже. Для вас все логично, двухслойная плата довольно простая, и можно ее вернуть к жизни. Но есть и 4 и 8 слойные платы. Как вы их решите реверсить, топологию полигонов внутри? Там даже рентген мало поможет. Наклейки какие то отклеить. Вы компьютерный мастер что ли? Знаем таких...

Чего такого вы там ожидаете увидеть секретного на внутренних слоях? Там обычно питание. Прозванивается тестером, всегда очевидно куда может идти а куда нет. На просвет часто вполне виден следующий слой, если он не закрыт медью.

Было бы здорово, но есть и двухномерное количество слоев :(

Должен оговориться, что тут я больше вижу дизайн у коллег, а не делаю реверс

Вам удалось увидеть то, что вам не приходилось никогда делать, разве это не замечательно? На моём варианте получается более полный разбор платы с целью подробного изучения, ведь многим интересно что как устроено.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий