Что такое обратная разработка и где она применяется

Обратная разработка — метод разборки объекта, который помогает понять, как сконструировано ранее созданное устройство, процесс, система или часть программного обеспечения. Инженер разбирает продукт на части, чтобы понять, как он работает, а потом воссоздать похожее или идентичное решение. Разработчик отвечает на вопрос: «Какие процессы провоцируют именно такое поведение продукта?».
Таким способом не удастся получить точный исходный код, но инженеры смогут понять общую логику работы и повторить функционал.
Часто встречаются названия «обратное проектирование», «обратный инжиниринг», «реверс-инжиниринг» — они означают одно и то же.
Где применяется реверс-инжиниринг
Обратный инжиниринг применяют в компьютерной инженерии, геймдеве, машиностроении, дизайне, электронной инженерии, разработке программного обеспечения, химической инженерии и даже системной биологии.
Компании часто используют обратный инжиниринг старых электронных компонентов, снятых с производства. Если у части компьютерного оборудования были функции, потерянные из-за изменений в технологии, реверс-инжиниринг позволяет производителям открыть и обновить эти формулы. Также метод помогает разрабатывать компоненты, соединяющие новое и старое, чтобы подключать устаревшее оборудование к новому.
В IT обратная разработка программ применяется для исследования софта и железа, их элементов и принципов работы.
Объектами могут быть:
- файлы — чтобы узнать, как именно работает приложение;
- часть операционной системы — чтобы использовать недокументированные функции;
- формат данных — чтобы получить структуру файлового формата;
- сетевой протокол — чтобы восстановить формат пакетов данных и последовательность обмена данными.
Для чего используют обратную разработку:
- поиск и исправление ошибок в программах, к исходному коду которых у разработчиков нет доступа;
- анализ вирусов для создания антивирусного программного обеспечения;
- улучшение функциональности приложения, когда связаться с предыдущим разработчиком не получается — например, компания-разработчик перестала существовать;
- описание механики игры, когда разработчик берет в пример существующую игру, наблюдает за ее развитием, анализирует сценарий и предлагает свой вариант;
- обучение: если разработчик не понимает какую-то часть своего продукта, он может проанализировать чужую и сделать выводы о ее функционировании.
Реверс-инжиниринг также применяют для нелегальных целей — кражи кода, обхода технических средств защиты авторских прав, бесконечного использования бесплатных версий приложения.
Типы реверс-инжиниринга
Существуют десятки видов обратной разработки, поскольку процесс может разбить объект на части по-разному — например, анализ системного уровня, извлечение схемы и разборка продукта.
Принципы обратной разработки
Процесс обратной разработки регулируют общие принципы:
- 1. Не путать гипотезы с выводами. Обратный инжиниринг дает гипотезы. Разработчик должен полностью понять приложение, прежде чем делать выводы.
- 2. Получить несколько интерпретаций. Альтернативные интерпретации данных могут давать разные результаты. Чем больше информации доступно, тем меньше должны различаться суждения реверс-инженеров.
- 3. Понимать, что результаты приблизительны. К примеру, 80% информации девелопер получит благодаря обратной разработке. Чтобы получить оставшиеся 20%, нужно использовать методы прямого проектирования, например, опрос пользователей.
- 4. Не удивляться странным конструкциям. Инженер не сможет воссоздать полную и точную модель, потому что такой модели до этого, возможно, не существовало.
- 5. Следить за единым стилем. Продукт разрабатывают с использованием последовательной стратегии, которую нужно найти и понять.
Этапы реверс-разработки на примере исполняемого файла:
- 1. Запустить и протестировать исполняемый файл, ознакомиться с приложением и его возможностями.
- 2. Проанализировать взаимодействие файла с внешним миром: библиотеками, процессами, системными API, файловой системой, сетевыми взаимодействиями, физическими портами и т. д.
- 3. Детально изучить код. Для этого применяют трансляцию двоичного кода на язык ассемблера, чтобы затем извлечь структуры, инструкции и вызовы функций.
Реверс-инжиниринг
Реверс‑инжиниринг (реинжиниринг, reverse‑engineering) – процесс копирования объекта по уже готовому образцу, способ получения 3D‑моделей и чертежей готового изделия по данным 3D‑сканирования.
Метод обратного проектирования применим для любой сферы промышленности и широко используется в машиностроительной, аэрокосмической, судостроительной и других областях производства.
Компания Twize оказывает услуги обратного проектирования деталей, оборудования, зданий и архитектурных сооружений (BIM‑моделирование), когда требуется:
- восстановление утраченных деталей
- восстановление изношенных или вышедших из строя деталей
- сохранение информации об объектах для их дальнейшего ремонта или воспроизведения

Обратный инжиниринг: этапы работы
Обратный инжиниринг в машиностроении и других отраслях применяется, если производитель исходного изделия не предоставляет сведений о структуре, методах создания объекта, или они были утеряны. Чтобы получить всю необходимую информацию об объекте, обратное проектирование изделий проходит несколько этапов:
- разборка готового изделия на детали (при необходимости)
- определение применяемых в производстве материалов
- трехмерное сканирование и получение CAD‑модели
- снятие размеров других элементов устройства (при необходимости)
- создание рабочей модели, подгонка и проверка
- разработка чертежей
Реверс-инжиниринг важен, когда вы хотите создать новые детали, которые ссылаются или включают более старые проекты, где исходный проект САПР недоступен.
Также процесс обратного проектирования используется в импортозамещении.
Преимущества реверс‑инжиниринга заключаются в том, что он позволяет сократить затраты за счёт локализации производства, оптимизации логистики и других факторов; происходит снижение стоимости изготовления изделия при производстве партиями или сериями. Также важно многократное воспроизведение документации, полученной в ходе реверс‑инжиниринга: изделия можно изготавливать неограниченное количество раз на любых производствах в зависимости от ваших задач.
И самое важное преимущество, особенно в последнее время, — надёжность поставок независимо от санкционных ограничений или курса валют.
Вы можете создавать запасные детали, которые соответствуют оригинальному дизайну поврежденных существующих деталей, или использовать процессы обратного инжиниринга для интеграции сложных поверхностей из существующих объектов в 3D‑печатные устройства, которые полезны при модификации изделий массового производства и изделий ручной работы.

Технология реверс‑инжиниринга
В комплекс входят три последовательные операции:
- измерение и фиксация параметров реального изделия
- моделирование и компьютерный анализ полученных данных
- создание чертежей, каталога деталей и руководства по эксплуатации
Работа начинается с составления технического задания и плана работ. Далее выбираются оптимальные методы измерения и построения моделей с учетом требований ТЗ, конструкции изделия и предполагаемой технологии изготовления конструкторской документации.
Следующий шаг – измерение, уточнение структуры и номинальных размеров отдельных деталей объекта и их взаимного расположения. Достаточно одного физического образца для осуществления всех измерительных операций. Для построения сложных поверхностей мы применяем сканирование. Модель, полученная в результате сканирования, требует тщательной проработки для воссоздания функционального прототипа.
После фиксации номинальных размеров источника производится расчет и построение размерных цепочек.
На основе всех полученных данных с использованием системы автоматизированного проектирования (САПР, CAD‑система) создается параметризованная 3D‑модель.
В итоге этих операций формируются чертежи объекта и другая конструкторская документация.
Обратное проектирование в машиностроении: 4 условия успешного внедрения

Прежде всего напомним, что реверс‑инжиниринг (обратное проектирование) – это процесс исследования физического или виртуального объекта (детали, устройства или программы), а также документации на него с целью понять принцип его работы, внести изменения или воспроизвести этот объект с аналогичными функциями. Самый эффективный способ формирования виртуальной модели – 3D‑сканирование с последующей обработкой в специализированном ПО.
Главная функция реверс‑инжиниринга применительно к машиностроительной отрасли – получение конструкторской документации на детали, узлы или иные изделия для того, чтобы их можно было воспроизвести и эксплуатировать.
Согласно данным компании BlueWeave Consulting, мировые продажи 3‑Dсканеров за 2021 год составили 3 млрд долларов США, а к 2028 году объемы продаж, по прогнозам, вырастут почти до 8 млрд – в 2,5 раза © blueweaveconsulting.com
Реверс‑инжиниринг и импортозамещение в машиностроении
Современные реалии промышленного производства бросают новые вызовы и ставят перед специалистами все более ответственные задачи. Многие производители и заказчики услуг испытывают сложности с поставками запчастей для импортного оборудования, а также больших сложных деталей и узлов, которые невозможно воспроизвести самостоятельно. Поставки либо невозможны, либо обходятся в 2-5 раз дороже, чем раньше. По этой причине сегодня на фоне санкций наблюдается небывалый рост спроса на обратное проектирование.
В то же время производители специализированных решений для реверс‑инжиниринга, стремясь идти в ногу со временем, постоянно разрабатывают и совершенствуют свои продукты. В ближайшем будущем стоит ожидать, что обратный инжиниринг станет применяться в том или ином производственном процессе повсеместно.
Основные этапы обратного проектирования
Универсальное решение для 3D‑сканирования с целью реверс-инжиниринга – ручное лазерное устройство метрологического класса ZG AtlaScan. В ближайшее время сканер будет внесен в Государственный реестр средств измерений РФ
1. Сбор данных об объекте
У нас есть определенный физический объект. Требуется измерить все его основные поверхности и получить размеры. Здесь есть один немаловажный момент, актуальный для предприятий машиностроения, который не всегда принимают во внимание: сложные или многоэлементные детали, в том числе несущие большое количество нагрузок, обычно изготавливаются из сложносоставных легированных сталей и сплавов. Многие посадочные поверхности закаливаются и имеют твердость, отличную от всей остальной конструкции, поэтому процесс исследования первичного объекта должен включать анализ материала и структурный анализ.
2. Получение и обработка облака точек
В результате 3D‑сканирования мы получаем облако точек или полигональную модель объекта и выполняем первичную обработку данных.
3. Создание CAD‑модели
Цифровая модель импортируется в специализированное программное обеспечение, где производится построение CAD‑модели. Если на производстве есть 3D‑принтеры, эту CAD‑модель можно оперативно отправить на печать и после постобработки провести испытания изделия на месте.
Данные 3D‑сканирования и CAD‑модель
4. Анализ модели и получение отчета
В ПО проводятся исследования на предмет соответствия CAD‑модели данным сканирования, которые были получены на первом этапе, и формируется метрологический отчет.
5. Испытания готового изделия
После анализа отчета принимается решение о запуске производственных испытаний. При необходимости CAD‑модель предварительно дорабатывается.
Хотите опробовать программные продукты для обработки данных 3D‑сканирования и аддитивного производства? Закажите бесплатную демоверсию:
Что нужно для измерений: традиционные инструменты vs 3D‑сканеры
Для измерений несложных и небольших деталей, имеющих набор стандартных поверхностей, вполне можно обойтись традиционными метрологическими инструментами, которые есть на каждом производстве, – штангенциркулями, микрометрами, угломерами, нутромерами и пр.
Плюсы классических инструментов:
- невысокая стоимость;
- привычны в использовании для любого инженера.
- субъективность показаний;
- не подходят для сложных измерений.
Обратное проектирование корпуса клапана
Оборудование: портативный 3D‑сканер ZG AtlaScan
Время сканирования: 10 минут
Время получения твердотельной модели: 4 часа
Допустим, при измерении внутреннего диаметра полумуфты микрометрическим нутромером тремя разными операторами мы получим статистическую ошибку, которая не статична и имеет большое отклонение от основной линии средних измерений. А если необходимо проанализировать взаимное расположение поверхностей этой же детали? Задача для обычного измерительного прибора нетривиальная, потребует много времени для получения показаний, близких к истине. Для сложных измерений такие инструменты не годятся.
Когда речь идет о крупногабаритных стандартных деталях машин (к примеру, валах длиной 1,5‑2 метра), деталях или узлах с большим количеством поверхностей и отверстий – корпусных или каркасного типа, сложносоставных деталях, трубопроводах, – штангенциркулем явно не обойдешься. Необходимо понимать, в какой плоскости лежит то или иное отверстие, какие присутствуют основные несущие поверхности и поверхности двойной кривизны. На помощь приходят оптические системы контроля измерений – 3D‑сканеры.
Новинка 2023 года – ручной лазерный 3D‑сканер ZG CereScan. Этот «малыш» размером чуть больше смартфона отлично справится со сканированием как внутренних поверхностей и труднодоступных участков, так и крупногабаритных объектов
Плюсы оптических систем измерений:
- лучшее соотношение цена/точность;
- высокая скорость получения данных;
- надежность и высокая повторяемость измерений;
- возможность автономной работы;
- простота в эксплуатации.
Основным ограничивающим фактором 3D‑оборудования является его высокая стоимость, однако сокращение времени рабочего процесса в несколько раз приводит к экономии издержек и позволяет окупить инвестиции в достаточно короткие сроки.
Смотрите серию видеообзоров ручного лазерного 3D-сканера ZG AtlaScan: от распаковки до финализации данных
Переходим к 3D‑моделированию: полигональные и твердотельные модели
К распространенным форматам выходных данных 3D‑сканирования относятся:
- облако точек;
- полигональная модель (stl‑модель).
Что из себя представляет полигональная модель? Точки, получаемые во время 3D‑сканирования с поверхности объекта, объединяются в треугольники (полигоны). С помощью треугольников можно описывать абсолютно любую поверхность – это геометрический закон, который работает в 3D‑пространстве.
Основной параметр полигональной сетки – ее разрешение. Условно, это расстояние между точками, их концентрация на условную единицу площади или длина катета данного полигона. Разрешение позволяет по мере увеличения концентрации точек на выделенной площади получать больше информации о сложной поверхности. Здесь необходимо отметить, что повышение разрешения непременно ведет к увеличению нагрузки на рабочую станцию, поэтому данным параметром не стоит злоупотреблять.
Слева: полигональная модель – точки с заданными координатами в пространстве, связанные между собой полигонами
Справа: CAD‑модель (твердотельная/математическая/параметризованная): комплекс геометрических объектов, описываемых математическими функциями
Второй компонент основных задач для 3D‑сканирования – твердотельная CAD‑модель, появляющаяся в процессе конструкторской разработки изделия. Сейчас большинство конструкторов, помимо основных трех видов и изометрии в чертеже, в современных САПР‑программах ведут построение именно 3D‑модели, на основании которой можно получить полную информацию об изделии – чертежи, виды, разрезы, сечения и прочее.
При наличии параметрической CAD‑модели 3D‑сканер может быть также использован для контроля геометрии. По нашему опыту, спрос на реверс-инжиниринг с помощью 3D‑сканирования сейчас даже несколько выше, чем на контроль геометрии.
Итак, когда у нас нет ни CAD‑модели, ни чертежей, мы можем получить CAD‑модель на основе stl‑модели с привязкой к основным поверхностям.
Реверс-инжиниринг металлического кронштейна для ремонта производственной оснастки (проект компании RangeVision)
Кронштейн оцифрован 3D‑сканером RangeVision PRO 2M, построена параметрическая модель, исключающая все коробления и деформации формы изделия
Задача выполнена полностью за 2 рабочих дня. Значительно сокращены сроки подготовки к ремонту, т.к. измерение детали традиционными методами заняло бы более продолжительное время, а результат был бы менее точным
Как подобрать комплекс решений для реверс-инжиниринга
Для успешного внедрения 3D‑решений для обратного проектирования должны соблюдаться четыре главных условия.
1. Грамотно выбранный измерительный прибор
Если мы четко проанализировали свои потребности в плане реверс инжиниринга, мы точно знаем, какие детали в определенный период эксплуатации оборудования нуждаются в замене. Если они простые, то приобретать дорогостоящие сложные высокоточные системы нет смысла – они не окупятся. Мы можем обойтись либо традиционным инструментом, либо более бюджетными решениями (в том числе 3D‑сканерами). Но если из строя выходят объекты сложные, емкие по количеству поверхностей и требовательные к точности измерения, необходимо выбрать высокотехнологичный прибор, такой как портативный или стационарный 3D‑сканер метрологического класса.
Портативный 3D‑сканер ZG HyperScan с оптическим трекером. Отличительные особенности модели – в возможности беспроводной работы и в наличии гибридного режима, то есть сканировать можно как без меток с трекером, так и с помощью лишь сканирующего зонда без трекера по меткам в труднодоступных зонах габаритного объекта
2. Оптимальная рабочая станция
Для работы с данными сканирования – сбора данных, их обработки и выгрузки – требуется правильно подобранная рабочая станция. Ее мощность должна обеспечить надежную и бесперебойную работу, без зависаний и прочих неполадок. Уточнить аппаратные и программные требования можно в спецификациях соответствующего 3D‑оборудования и софта.
3. Специализированное ПО
При поломке простого изделия мы производим измерения штангенциркулем, рисуем эскиз и отдаем токарю. Но когда мы сталкиваемся со сложным объектом, без специализированного ПО не обойтись.
Большинство популярных САПР поддерживают функцию импорта полигональной модели с 3D‑сканера, однако для полноценного выполнения реверс-инжиниринга или контроля качества нужны программные продукты, обладающие специализированным функционалом обработки модели по результатам сканирования. Такие программы имеют полный набор всех необходимых инструментов и функций, чтобы оптимально и в короткие сроки получить необходимую СAD‑модель.
ПО PointShape Design от компании DREAMTNS (Южная Корея) совместимо с основными CAD‑программами, предлагает интеллектуальные инструменты для автоматизации рабочих процессов и имеет интуитивно понятный и удобный интерфейс. По своим возможностям и функционалу программа в целом может заменить западные аналоги, которые сейчас недоступны в России, в частности, Geomagic Design X
Читайте обзор Реверс-инжиниринг – в ваших руках: демонстрация ПО PointShape Design
4. Квалифицированный инженер
За 3D‑сканером, компьютером и ПО стоит человек, именно он принимает решения, интерпретирует результаты, проводит конструкторскую разработку детали, которая в дальнейшем пойдет на производство, будет функционировать в комплексе оборудования и сэкономит компании деньги. Чтобы этот процесс прошел в адекватные сроки и с адекватным качеством, безусловно, нужен квалифицированный инженер.
В идеале, в части метрологического исследования, это должен быть инженер-метролог, который выдаст правильные и четкие результаты, а со стороны создания СAD‑моделей – инженер-конструктор, знакомый с основными методами 3D‑моделирования и владеющий специальным набором инструментов.
Для управления комплексом 3D‑решений обычно достаточно от одного до трех специалистов, которые могут либо замещать друг друга, либо нести функцию универсального инженера – в данном случае по обратному инжинирингу. В отечественных компаниях, где созданы центры аддитивных технологий, такие специалисты уже есть.
Итак, ремонт и воссоздание деталей и комплектующих для машиностроительного оборудования – одна из актуальных задач производства в условиях санкций. Сложности с поставками или их прекращение поставили под удар само функционирование производств, однако с помощью 3D‑технологий и при минимальных трудозатратах утраченные или вышедшие из строя детали реально воссоздать за срок от нескольких часов до нескольких дней.
Обратитесь к экспертам iQB Technologies! Мы подберем оптимальный комплекс оборудования и ПО под ваши задачи, проведем первичное и дополнительное обучение.

Статья опубликована 25.08.2023 , обновлена 25.08.2023
Об авторе

Рустэм Галиулин Продакт-менеджер по 3D‑сканерам и программному обеспечению в компании iQB Technologies
Реверс-инжиниринг (обратное проектирование)
Реверс-инжиниринг (обратное проектирование) — это процесс создания цифровой модели объекта (детали, изделия, прототипа) по имеющемуся образцу. Применение реверс-инжиниринга позволяет воспроизвести размеры и форму объекта в сжатые сроки со сложной конфигурацией, которую сложно измерить стандартными методами измерений. На следующем этапе возможно получение чертежей, конструкторской документации на изделие для его производства или внесения изменений.
Для чего необходим реверс-инжиниринг:
- Разработка конструкторской документации на имеющееся изделие — рабочая документация, чертежи для дальнейшего производства
- Получение редактируемой 3D-модели объекта для дальнейшей работы с ней
- Ремонт поврежденного изделия или его части
- Разработка новых деталей на основе имеющейся детали, внесение изменений в имеющуюся деталь
Этапы работ:
- Подготовка детали / изделия к 3D-сканированию — разбор сложносоставного узла на детали, очистка, матирование, нанесение меток
- Проведение 3д-сканирования объекта
- Получение полигональной нередактируемой 3D-модели в формате *.STL (сетка)
- Работа с полученными данными — построение параметрической редактируемой модели, редактирование, анализ конструкции, внесение изменений
- Создание 3D-модели с деревом построений в CAD-формате — последовательность объектов, составляющих модель, представленная в графическом виде.
- Создание конструкторской документации
Некоторые пункты могут быть пропущены в зависимости от задачи и исходных данных для проведения работ.
Результатом работы реверс-инжиниринга могут быть
- Твердотельные и/или поверхностные 3D-модели без дерева построений в форматах *.step, *.stp, *.igs, *.x_t
- Твердотельные и/или поверхностные 3D-модели с деревом построений в форматах *.sldprt, *.sldasm, *.ipt (САПР Solidworks, Inventor, Catia, КОМПАС)
- Конструкторская документация