Разное

Обратное проектирование: Реверс-инжиниринг. История. Моя / Хабр

Содержание

Реверс-инжиниринг. История. Моя / Хабр

Всем привет,

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

Начало

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

Сначала я начал разбирать все машинки на батарейках, которые у меня были (даже те, что были у брата). Конечно, не всегда удавалось собрать, но, интерес был превыше. Потом нашёл какой-то старый радиоприёмник-магнитофон у отца в кладовке, и разобрал его тоже. Ещё были тамагочи. Но там я вообще ничего не мог понять: микросхема, «капля» и экран. Хотя да, экран я разбирал на слои.

Конечно же, за всё несобранное я получал по шапке.

Sega Mega Drive

Отец купил мне её на день рождения: обычная пиратка, ибо лицензионных тогда не было, плюс картридж «Contra: Hard Corps«. Уверен, момент покупки приставки для многих детей 90-х не забыт до сих пор (ромхакеры и ретрогеймеры — привет!), а именно для меня он стал ещё и ключевым в будущем. Но обо всём по-порядку.

Время шло, я рос. В школе всегда была интересна информатика и физика (ещё химия). Ассемблеру там, конечно, не учили, но программировать в алгоритмической среде «ИнтАл» (белорусская разработка для школ) — очень даже. И, для меня было шоком, когда я пошёл на районную олимпиаду по информатике, и, у всех, кроме меня, были синие окошки Turbo Pascal, а у меня — белое — Интал. Но, тогда я занял почётное третье место.

11-й класс

(прим. автора: тот самый компьютер, только куда позднее)

Осенью 2005-го года мне купили компьютер. С первых дней я начал играть в игры. Учёба в школе просела, но держалась на нормальном для гимназии уровне. А спустя полгода играть надоело. Тогда и свершился переломный момент!

Негеймер

Именно тогда, в 2006 году, как мне кажется, начался варезный бум. Куча сайтов с кряками, кейгенами, патчами. Каждый старался перепаковать инсталлятор так (привет сборкам Винды), чтобы скачавшему ничего лишнего делать не нужно было: установилось и работает, правда иногда добавляя что-то от себя.

И я был таким. Правда сам «таблеток» не делал, а лишь находил их, рисовал NFO-шку, перепаковывал инсталлер (чаще всего это были Inno Setup), а дальше вы знаете.

Переводчик

Так вот, тогда мне почему-то не нравилось, что далеко не все программы переведены на русский язык, и захотелось это исправить. Накачал разных редакторов ресурсов, типа Resource Hacker, начал открывать все exe и dll-файлы программ что находил в Program Files, и смотрел, какие строковые ресурсы можно перевести. Переводил, паковал в установщик .lng или .RUS файл, и выкладывал (так и не узнал, как эти rus-файлы работали). Но так продолжалось до тех пор, пока мне не повстречались упакованные и защищённые файлы.

cracklab.ru

Ныне exelab.ru. Именно там я узнал, что исполняемые файлы бывают упакованными (а порой и защищёнными), а так же как с этим бороться. И, так как авторы часто упоминали в своих статьях такие штуки как «ассемблер«, «дизассемблирование«, «рассылка Калашникова«, пришлось углубляться в матчасть.

Скачал для экспериментов себе парочку «крэкмисов» (программы, специально написанные для того, чтобы их реверсили, обучаясь при этом взлому и защите). Попробовал — очень понравилось! Всё получилось с первого раза, чему я был несказанно рад.

В итоге, простые защиты снимались на раз-два с помощью патчинга (от слова patch — заплатка), а вот с теми, что посложнее (я решил попробовать эротические шашки и поддавки) как-то уже стало тяжело, и я остановился, решив вернуться к переводам.

Ромхакинг

Иногда играя в Сегу, мне попадались картриджи на русском языке, на титульных экранах игр которых были такие надписи как «Группа перевода SHEDEVR«, «Перевод NEW-GAME.RU«. Разработчики ли это, или же какие-то сторонние организации я не знал, но у них явно был доступ к каким-то манускриптам, древним текстам шумеров, в которых рассказывалось, как переводить игры на русский язык. И мне захотелось овладеть этими знаниями.

Так я открыл для себя форум «Шедевра«.

У них были статьи, были программы — всё необходимое для того, чтобы сделать твою любимую игру ещё и «твоей любимой игрой на русском языке«. Правда, статьи были только для NES (Nintendo Entertainment System, или по-народному: Денди, Сюбор). Но всё равно круто! И я погрузился в новые и увлекательные для себя темы: Ромхакинг и эмуляция ретро-консолей на ПК.

Если вкратце, то ромхакинг — это любое изменение образа или файла игры, с какой либо целью: перевод, исправление кода, графики.

Это был очень занимательный процесс: сидишь, перерисовываешь квадратики игрового шрифта пиксель за пикселем, переводишь и вставляешь с помощью программы для перевода PokePerevod текст, и смотришь что получилось. Правда, никакого тебе ассемблера, только хардкор! Но это уже было планкой, через которую очень немногие могли перепрыгнуть (судя по количество активных на форуме Шедевра).

Я учитель

Сделав какие-то переводы «в стол», а какие-то и в народ, я вернулся к исполняемым файлам Windows. Ещё немного поднаторев в ассемблере, я понял, что «секретных» знаний во мне теперь чересчур много, и мне есть что рассказать из своего опыта, есть чем поделиться, и что ещё не было описано в имеющихся статьях. Хотелось передавать знания таким же новичкам, каким я был сам (видимо, сказывается то, что мама — учитель).

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

Получив положительные отзывы, я писал ещё и ещё, понимая, что спрос есть.

Инструменты

При написании каждой статьи я старался использовать только самые свежие и удобные программы на тот момент: Olly Debugger с плагинами, PEiD, PE Explorer, и кучу других. Никаких тебе SoftICE, HIEW и DEBUG.COM, коими привыкли пользоваться большинство авторов, хотя пользоваться ими в современном мире было сплошной болью.

Тем не менее, на то время я никогда не пользовался IDA Pro. Она мне казалась сложной, непонятной, в ней очень трудно было заниматься отладкой, а простейшие вещи типа FS[0x30] и LastError, как в Olly Debugger, узнать было очень сложно.

А в универах учат реверсу?

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

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

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

Первая работа

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

Реверсишь малварь, клепаешь сигнатуры, изучаешь принципы работы вредоносного ПО, пишешь расшифровщики для ransomware (если получается), попутно улучшаешь ядро.

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

Другой ассемблер

Однажды я узнал, что кроме ассемблерного кода Intel (16-, 32-, 64-битного) бывает и другой, по-началу кажущийся совершенно непохожим на тот, что ты знаешь. Это произошло в тот момент, когда я добрался до перевода своей любимой игры — «Thunder Force III«, в которую брат играл лучше меня.

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

Поэтому я стал гуглить, наткнувшись в итоге на работу одного француза, который как раз разобрал алгоритм сжатия игры. Я связался с этим человеком, поинтересовавшись, как же он изучал принцип работы алгоритма сжатия, на что он скинул мне мою первую IDB-шку (это файл базы данных IDA Pro), в которой были разобраны многие моменты кода игры, что меня очень впечатлило!

Так я погрузился в дебри IDA Pro и ассемблера Motorola 68000, из которых не выбрался (и не хочу) до сих пор.

P.S. Thunder Force III я так и не перевёл, но написал редактор уровней к ней.

Sony Playstation

Да, следующей была «первая плойка«. У неё также был другой ассемблер — MIPS, с другими регистрами, опкодами, адресами. И на этой приставке всё так же были игры с пожатыми ресурсами, которые нуждались в локализации.

Обратное мышление и первый кейген

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

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

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

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

Статья о кейгене

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

Крякерские команды

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

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

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

Тогда в чём профит, спросите вы? В том, чтобы зарелизить раньше другой команды (FFF, CoRE и многие другие). Очень хорошо эта тема была раскрыта в веб-сериале «Scene (Сцена)».

Проблемы с законом?

Да, за распространение кряков и кейгенов всё таки есть вероятность загреметь (особенно если программа популярная и стоит много денег). В любой момент может произойти контрольная закупка: тебе напишет дядя, который хочет «взломать Adobe/1C Бухгалтерия сколька будит стоеть» (реальная история). Но ребята хотят выживать, особенно если работы нет, а «навык«-то применять хочется, не важно пока куда. И начинают идти на крайности…

… барыжат ломаным софтом, взламывают программы за деньги.

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

Честно заработанный лицензионный ключ

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

В те годы я как раз учился «слепой» печати, и искал адекватные программы для этого. Шахиджанян взрывал мозг своим «Соло на клавиатуре«, поэтому я начал искать альтернативы. Наткнулся на Typing Reflex. Она была платной, но очень хорошей.

Тогда я перевёл программу на белорусский язык, и отправил автору языковой файл. За что получил в ответ лицензионный ключ на своё имя! Мой первый лицензионный ключ.

Что дальше?

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

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

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

Нирвана

Насмотревшись на различного рода платформы, ассемблерный код (Intel, ARM, PowerPC, M68K, 6502, MIPS, 65c816, Blackfin, IA64 и какие-то ещё, не помню), приходишь к выводу, что принцип у всех ассемблеров практически одинаковый (ну, кроме разве что Итаниума), и начинаешь смотреть на эти бесконечные листинги по-другому: в первую очередь находишь команды прыжков, move-команды, возврат из функции, с какой стороны source, с какой dest, и дальше уже по обстоятельствам. Так и достигаешь нирваны…

Реверс-инжиниринг, обратное проектирование изделий, механизмов

Проводим обратное проектирование – разработку 3D моделей и чертежей по имеющимся деталям и готовым изделиям.

Реверс-инжиниринг (обратный инжиниринг, обратное проектирование) узлов, изделий, механизмов — одно из основных направлений нашей специализации.

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

Реверс изделия и детали

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

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

Стоимость реверс-инжиниринга зависит от сложности изделия и наличия исходных данных.

Реверс-инжиниринг изделий без механизмов

Пример изделий без механизмов: уличная мебель, мангал, корпус прибора.

Обратное проектирование будет заключаться в следующих этапах работ:

  1. Разборка изделия, ингода с применением специальных средств. Производитель может защитить свои изделия секретками или запаянными соединениями, которые нужно высверливать или открывать специальным инструментом в особых условиях (например, под давлением).
  2. Определение используемых материалов. При этом конструктор должен определить, материалы каких частей являются критичными, а какие можно подобрать исходя из функции той или иной детали. Для критически важных деталей делается лабораторная экспертиза материала.
  3. 3д сканирование деталей со сложными поверхностями, получение 3д модели.
  4. Снятие размеров с остальных деталей, получение 3д моделей.
  5. Создание общей сборки, подгонка, проверка собираемости.
  6. Выпуск чертежей.

Реверс-инжиниринг механизмов

Мы разрабатываем КД на устройства и механизмы различной сложности: от машины для мойки бутылок до испытательного стенда.

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

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

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

Этапы реверс-инжиниринга механизма:

  • эскизное проектирование,
  • поиск технических решений,
  • 3д моделирование на основе образца,
  • выпуск КД,
  • изготовление опытного образца,
  • испытания и доработка КД по результатам (возможно неоднократно).


Особенности механизмов, влияющие на сложность работ по обратному инжинирингу:

1. Наукоемкость

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

2. Наличие большого количества разных систем – электрической, гидравлической, пневматической, магнитной и пр.

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

3. Накопление погрешностей при копировании деталей.

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

4. Авторские права

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

Резюме

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

Качественное и быстрое воссоздание сложного изделия по образцу возможно при наличии хорошего ТЗ, полных исходных данных, самого изделие в наличии и специалиста, разбирающегося в технологии его работы. 

Реверс-инжиниринг на производстве при помощи 3D-сканирования


Что такое реверс-инжиниринг | Процесс обратного проектирования | Реверс-инжиниринг в проектах iQB Technologies


Интервью с экспертом по 3D-сканированию Георгием Казакевичем



– Если мы хотим понимать, что такое реверс-инжиниринг, что нам нужно знать в первую очередь?


– Прежде всего надо разобраться, в чем состоит задача 3D-сканирования. Термин этот на самом деле расплывчатый, поскольку 3D-сканирование как таковое подразумевает просто сбор информации, которую надо обработать. «Сырые» данные не дают нам никакого практического результата.


Вспомните, какими были компьютерные игры лет пятнадцать-двадцать назад: на плоском экране прыгает несколько пикселей. Компьютеры того времени не могли обсчитать информацию больше, чем на эти несколько пикселей. За прошедшие годы вычислительные мощности неимоверно возросли. У любого из нас в кармане мобильный телефон, который мощнее, чем компьютер, который рассчитывал полет американцев на Луну. Поэтому сейчас, сидя за своим рабочим столом, вы можете обрабатывать колоссальные массивы информации. А 3D-сканирование, как я уже сказал, – ничто иное, как сбор информации.


– С какой целью мы собираем эту информацию?


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



Обратное проектирование – миссия конструкторского отдела. Его применяют, если необходимо отмасштабировать или изменить геометрию изделия, а конструкторская документация отсутствует. Объект сканируется, и на основе данных сканирования мы получаем CAD-модель, которую можно редактировать. То есть обратное проектирование – это, условно говоря, перевод материального объекта в цифровую форму. Но это не только заимствование, но также и возможность перенести сделанный вручную объект в чертежи.


Обратное проектирование в промышленном дизайне в автомобильной промышленности


– Значит, обратное проектирование – не всегда копирование?


– Да, не всегда. И здесь мы имеем дело с промышленным дизайном. Возьмем автомобильную промышленность. Во-первых, корпуса автомобилей создаются дизайнерами. Во-вторых, очень важно, чтобы поток воздуха правильно распределялся вокруг машины – это влияет на экономию топлива. Естественно, есть цифровые модели, которые позволяют производить продув в виртуальной аэродинамической трубе и проверять корпус на обтекаемость. Но любая цифровая модель – это всегда допущение. Удешевление технологии сканирования позволяет крупным производителям, таким как BMW или Mercedes, использовать ее для разработки новых корпусов. Они воссоздают полноразмерный макет машины и продувают его в реальной трубе. После этого они могут провести какую-то мелкую дополнительную обработку, чтобы добиться оптимальной схемы потока воздуха. Потом корпус просто сканируется и переносится в CAD/CAM-систему. То есть из реального объекта мы получаем виртуальный, который потом тиражируется. Это как раз наглядный пример того, что реверс-инжиниринг – не только копирование.




Но если вы где-то будете рассказывать про обратное проектирование, обязательно найдутся люди, которые скажут: «Так делают в Китае. Это плохо». Почему плохо, они объяснить не могут, и с ними не имеет смысла спорить. Просто нужно смотреть на показатели. Факт в том, что Китай сейчас – одна из самых быстрорастущих мировых экономик. Последние десять лет эта страна занимает первое место в мире по использованию 3D-сканеров.


Возьмем тот же самый BMW. Чертежей у вас нет, но вы можете их получить с помощью 3D-сканера. Да, безусловно, методика производства вам не будет известна, ее придется разрабатывать. И это еще один ответ тем, кто говорит, что обратное проектирование – это просто копирование. На самом деле, это лишь подсказка, в каком направлении надо двигаться. Нормальному предприятию очень важно разработать технологию производства, а это стоит гораздо больших денег, чем создать чертеж.


Процесс реверс-инжиниринга



– Давайте поговорим о том, что в себя включает  процесс обратного проектирования.


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


В качестве примера мы взяли крыльчатку, которая является компонентом узла, используемого на нефтегазовых предприятиях. Допустим, этот узел иностранного производства (что встречается сплошь и рядом). Поскольку нефтегазовый сектор сейчас находится под санкциями, многие предприятия пытаются самостоятельно изготавливать запчасти для устройств, которые раньше поставлялись из-за рубежа. Итак, у нас есть узел, он исправно работает, но у него сломалась крыльчатка. А новую закупить мы не можем. Если приобрести отечественную, значит, придется менять всю периферию вокруг. Соответственно, если есть такой же узел с исправной крыльчаткой, мы можем ее отсканировать и создать 3D-модель в CAD. Затем, в зависимости от желаемого метода производства, либо экспортируем модель в САМ-систему, чтобы обработать стандартным образом на станке с ЧПУ, либо передаем на аддитивную установку. Во втором случае, как видим, производственный цикл сокращается. К тому же, надо понимать, что экспорт в САМ-систему и создание CAM-модели происходят не в автоматическом режиме (хотя для этого существует специальное ПО). Это всё трудозатраты человека. 


Нижняя часть корпуса насоса и ее CAD-модель



– Расскажите, пожалуйста, о Вашем практическом опыте реверс-инжиниринга.


– Упомяну несколько интересных проектов, выполненных экспертами компании iQB Technologies. 


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


Обратное проектирование картера трансмиссии


Еще один пример. Заказчик предоставил нам картер трансмиссии. Была поставлена задача получить CAD-модель и чертежи с реально существующей трансмиссии, что нами и было сделано.


3D-сканирование и получение 3D-модели цоколя фонарного столба


А здесь вы видите цоколь фонарного столба, знакомый всем москвичам. Существует проект по замене всех таких цоколей в Москве. Требовалось получить модель современного цоколя и внести в нее определенные изменения. Мы создали 3D-модель и полностью ее оцифровывали. Зачем это делалось? Необходимо было соблюсти точные размеры, поскольку под цоколями находится электрика и разнообразное дополнительное оборудование. Кроме того, крепежи, которые смыкаются на столбе, заменены не будут. Таким образом, проект нового цоколя с применением обратного проектирования позволил минимизировать изменения и, соответственно, сократить расходы на них.


Защита картера двигателя мотоцикла


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


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



Во второй части интервью Георгий Казакевич рассказывает о контроле геометрии при помощи 3D-сканирования. Следите за обновлениями в нашем блоге!


Статья опубликована 10.07.2017 , обновлена 21.09.2020

Что такое «Метод обратного проектирования»?

Думаю,
каждый инженер хотя бы раз в жизни слышал это выражение – «метод обратного проектирования»
— но не каждый сразу понял, что оно значит.

Изначально
метод «обратной разработки» означает буквально то, что и вытекает из его
названия – разработка устройства не с нуля по чертежам из головы разработчика,
а методом исследования готового изделия и копирования его частей. Английский
вариант этого понятия звучит как «reverse engineering»,
и довольно часто его можно слышать в среде программистов и прочих разработчиков
электроники. Зачастую под ним подразумевается взлом программного продукта с
целью выделить исходные коды и повторить программу. Естественно, такие методы
незаконны, так как зачастую нарушают законодательство в части защиты авторских
прав как минимум.

Можно
выделить, пожалуй, три основных направления в сфере обратной разработки в
исконном ее значении:

  1. Обратная разработка в сфере машиностроения.
    То есть копирование различных механизмов и их частей с целью использования в
    своих разработках. Как примеры таких разработок можно рассматривать советский
    бомбардировщик ТУ-4, который является практически полной копией американского
    Боинга В29. Ну и китайцев, само собой, с их «недорогими аналогами Ленд-Роверов»
    и прочими копиями известных брендов.
  2. В части электроники можно рассмотреть
    различные радиолампы из той эпохи, когда они еще были в ходу – многие из них
    были копиями американских. Туда же можно отнести и некоторые советские
    микросхемы.
  3. Программное обеспечение. Здесь для
    обратного проектирования очень много применений: это и просто копирование
    интерфейсов и функционала программ, и взлом интерфейсов обмена данными
    (протоколы общения мессенджеров для сторонних клиентов), взлом протоколов
    общения между клиент-серверными приложениями с целью внедрения сторонних команд
    или кражи данных, взлом закрытых форматов хранения данных… Продолжать можно
    бесконечно.

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

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

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

Так
что, если когда-нибудь вам доведется услышать из уст коллеги, особенно в
возрасте старше среднего, выражение «обратная разработка» — не удивляйтесь.
Скорее всего, он будет иметь в виду принцип «трехмерная модель – документация».

Обратный инжиниринг

Олег Лукманов

В общем случае обратный инжиниринг (Reverse engineering) означает процесс создания техничес­кой документации на основе имеющейся детали или конструкции. Иными словами, процесс проектирования идет в обратном направлении — от физического объекта к его абстрактному представлению.

Применение обратного инжиниринга

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

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

В этих и других ситуациях посредством обратного инжиниринга получают цифровые 3D­модели, по которым с помощью аддитивных технологий может быть быстро изготовлена новая деталь.

Современный обратный
инжиниринг

В настоящее время термином «обратный инжиниринг» по большей части обозначается процесс получения цифровой 3D­модели реального изделия с использованием автоматизированных систем проектирования. Процесс начинается с 3D­сканирования, при котором форма объекта преобразуется в математический образ в виде облака точек. Для этого применяются лазерные сканеры, устройства структурированного белого или синего света, координатно­измерительные машины (КИМ) и компьютерная томография.

Наивысшей точностью (порядка 0,005 мм) обладают КИМ; оптические и лазерные сканеры отстают от них примерно на порядок. Однако для реверсного инжиниринга КИМ используются редко ввиду низкой скорости сканирования, а следовательно, проблем с получением большого количества точек.

Результаты сканирования выдаются в виде файлов измерений или файлов фасетной 3D­модели в форматах OBJ, PLY, WRL, STL, AOP, ASCII и др. Следует подчеркнуть, что после 3D­сканирования в распоряжении инженера имеется только полигональная модель. Это очень важный момент, поскольку он существенно влияет на дальнейшие процессы обратного инжиниринга.

Дело в том, что реальное 3D­сканирование никогда не даст идеального результата, и причины тут могут быть разными. В частности, есть проблемы со сканированием внутренних карманов. На рис. 1 в качестве примера показана сеточная модель с такими недостатками.

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

Необходимость доработки фасетной модели возникает не только из­за погрешностей сканирования. Редактирование может понадобиться в связи с модификацией детали, внесением каких­то изменений в конструкцию. Этим фактом обусловлена одна из сложностей обратного инжиниринга, поскольку большинство САПР работают с точным (BREP), а не с фасетным представлением.

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

Первой из таких систем стала Solid Edge® ST10 компании Siemens PLM Software. В ней была впервые использована технология объединенного моделирования с одновременным применением BREP и фасетного представления в одной и той же модели. В результате этап редактирования модели стал выглядеть так, как показано на схеме, приведенной на рис. 2.

Рис. 2

В Solid Edge ST10 редактирование фасетной модели сводится к применению привычных инструментов проектирования для работы с BREP­представлением.

После того как работа над цифровой моделью завершена, деталь может быть изготовлена с помощью аддитивных технологий. Если в распоряжении пользователя ST10 имеется подключенный 3D­принтер, печать можно начинать сразу, используя встроенный интерфейс для 3D­печати.

Если принтера нет, то можно воспользоваться встроенным интерфейсом онлайн­сервиса 3D­печати 3YOURMND. Здесь есть возможность выбрать поставщика с нужным материалом и цветом печати, подходящей оплатой и сроками поставки. Изготовленная деталь будет получена почтой, и на этом цикл обратного инжиниринга можно считать законченным.

В описании процессов обратного инжиниринга акцент делается на аддитивные технологии как наиболее быстрые, удобные и перспективные. Однако это не значит, что здесь не могут быть использованы традиционные способы обработки металлов. После того как получена точная модель, для подготовки производства достаточно воспользоваться САМ­приложением. Таким образом, современный обратный инжиниринг позволяет быстро получать цифровые модели физических объектов, а затем создавать их дубликаты с помощью всех доступных технологий. 

По материалам компании Siemens PLM Software

Запись онлайн­демонстрации технологии обратного инжиниринга можно скачать с сайта www.cad­expert.ru

8 проектов реверс-инжиниринга, которые повысили прибыльность предприятий

Автозапчасти: проект 1 | Автозапчасти: проект 2 | Пластмассы | Литые детали | Вставки в пресс-формы | Изделия из стекла | Бытовая техника | Мебель | Преимущества применения 3D-сканирования и ПО для реверс-инжиниринга

Используя новейшие технологии лазерного 3D-сканирования и программное обеспечение 3D CAD, можно произвести реверс-инжиниринг в короткие сроки с максимально эффективным результатом.

Давайте посмотрим, как это работает, на примере египетской компании Promech Engineering, оказывающей услуги по обратному проектированию. Специалисты Promech обрабатывают данные 3D-сканирования и создают редактируемые твердотельные CAD-модели, совместимые с программным обеспечением CAD заказчика. Полученные цифровые данные (полигональная сетка) преобразуются в CAD-файл, с помощью которого можно изменить форму и топологию модели в соответствии с замыслом. Ниже описаны некоторые проекты, выполненные Promech для заказчиков из разных отраслей. Узнайте преимущества 3D-технологий на практических примерах!

Автозапчасти: проект 1

Задача

Изготовитель комплектного оборудования в Египте поставил задачу локализовать один из продуктов General Motors, который предполагалось производить здесь же, в Египте. Большая часть данных САПР отсутствовала, но имелись оригинальные детали. Моделирование поверхностей класса А, соблюдение условий производства и точность – таковы были основные требования заказчика. 

Решение

Для выполнения оцифровки физической детали и создания ее высокоточной трехмерной модели использовались новейшие технологии 3D-сканирования Creaform. С помощью процесса цифровой сборки все элементы были совмещены и собраны вместе. Затем, в соответствии с проектным замыслом, были созданы CAD-модели – все с одной и той же контрольной точкой, которая является центром тяжести модели автомобиля.

Результат

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

Автозапчасти: проект 2

Задача

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

Решение

Точность и поверхности класса А – задачи первоочередной важности при выполнении работ для этого заказчика. Creaform HandySCAN 700, самый быстрый и самый точный лазерный 3D-сканер на рынке, позволил получить цифровую модель деталей и создать точный и выверенный CAD-файл, готовый к запуску в производство, с учетом всех требований к изготовлению пластмассовых деталей – таких, как толщина, размеры ребер и углы сходимости.

Результат

Promech обеспечила для AKL идеальное решение – доступный и точный метод получения высококачественных данных поверхности для использования в производственном процессе. Клиенту была предоставлена модель CATIA V5 для создания пресс-формы для детали. Теперь запасная часть выпускается без каких-либо проблем. 

Пластмассы

Задача

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

Решение 

Было необходимо осуществить 3D-сканирование и реверс-инжиниринг, создав параметрическую CAD-модель этого корпуса, а также подготовить модель корпуса в сложенном и разложенном виде, чтобы дополнительно проверить сборку и точность размеров модели. Это не потребовало особых усилий, учитывая опыт Promech и применение новейших технологий 3D-сканирования и обратного проектирования. 

Результат 

Эффективность и гибкость 3D-сканирования и реверс-инжиниринга позволили заказчику сэкономить значительное количество времени и денег в процессе проектирования. Благодаря 3D-сканеру компания Elios получила высококачественные данные и точные 2D-чертежи, которые обеспечили надежный процесс изготовления, и деталь была собрана с первой попытки. 



Литые детали

Задача

Одно из ведущих мировых литейных предприятий Shakespeare, производящее литые детали для большинства отраслей промышленности, нуждалось в повторном изготовлении детали при отсутствии оригинального CAD-файла. 

Решение

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

Результат

Проект был завершен, и теперь деталь выполняет свою функцию в тормозной системе. Процесс работы продемонстрировал возможности 3D-сканирования и моделирования сложных внутренних и внешних поверхностей литейных форм с высокой точностью, с использованием 3D-сканеров Creaform и САПР CATIA. 

Вставки в пресс-формы

Задача

HSCO – компания, которая занимается оказанием инжиниринговых услуг и изготовлением пресс-форм. Главным требованием была точность CAD-файла. В данном случае клиент HSCO хотел внести некоторые изменения в деталь, поэтому была поставлена задача модернизировать вставку в пресс-форму. При этом ее линия разъема должна была быть такой же, как и в первоначальном изделии. 

Решение

HSCO напрямую связалась с Promech для сканирования этой детали и внесения изменений, необходимых клиенту. Деталь оцифрована с высокой точностью (до 0,03 мм) с помощью HandySCAN 700, а модернизированная CAD-модель создана в Geomagic Design X.

Результат

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

Изделия из стекла

Задача

Solid Engineering – поставщик инженерных услуг для обслуживания крупногабаритных станков, а также производитель стекла. Заказчик столкнулся с некоторыми проблемами при моделировании деталей, которые имеют сложную структуру и поверхности произвольной формы. 

Решение

С помощью технологии сканирования была получена цифровая версия стеклянного изделия, затем конвертированная в CAD-файл в программном обеспечении Geomagic Design X. Изделие было прозрачным, но Promech объединила свой опыт с новейшими технологиями для того, чтобы получить его плотную полигональную модель достаточно высокой точности и качества для моделирования поверхностей произвольной формы. 

Результат

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

Бытовая техника

Задача

Компании Bouri, одному из крупнейших в Египте дистрибьюторов бытовой техники, понадобилось создать подробный CAD-файл на основе 2D-чертежей корпуса миксера для яиц, чтобы использовать их для производства и контроля. 

Решение

Bouri связалась с Promech, чтобы осуществить обратное проектирование обеих частей корпуса. Благодаря новейшим технологиям 3D-сканирования был получен файл с высокоточными данными сетки и размерами детали. После получения данных обе части были соединены в цифровом виде в соответствии с реальным процессом сборки, затем был использован выровненный и соединенный цифровой файл для создания параметрического файла в CATIA V5. 

Результат

Итогом проекта реверс-инжиниринга стало получение идеальной модели двух частей корпуса в CATIA V5. Компания Bouri получила возможность использовать модель CATIA и двухмерный чертеж для повторного производства и проверки изготовленных деталей. 

Мебель

Задача

Mohm – египетский производитель мебели. Дизайнеры создают новые концептуальные модели из глины и стекловолокна, которые переводятся в формат CAD после устранения недостатков ручной работы. 

Решение

Было предложено полное сканирование и реверс-инжиниринг моделей свободной формы, а также возможность скульптурного 3D-моделирования изделий, включая мониторинг требований к производству и соблюдению симметрии. Продукт был отсканирован, и с помощью CATIA V5 была создана CAD-модель. 

Результат

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


Как видим, все вышеперечисленные компании из различных отраслей промышленности, которые воспользовались услугами 3D-сканирования и реверс-инжиниринга, получили впечатляющие результаты. Это стало возможным благодаря применению инновационных 3D-технологий, в том числе ручного 3D-сканера Creaform HandySCAN 3D и программного продукта Geomagic Design X.

Основные преимущества использованных технологий: 

  • быстрота и простота 3D-сканирования и обработки данных в ПО;
  • высокая точность сканирования и моделирования, включая работу со сложнейшими формами и фактурами; Как результат – идеальное соответствие полученной модели оригинальному изделию;
  • значительная экономия времени и производственных расходов.

 Вы хотите заказать услугу реверс-инжиниринга, контроля геометрии, тестового 3D-сканирования или 3D-печати? Обращайтесь к высококвалифицированным специалистам RP-центра компании iQB Technologies! Оставьте вашу заявку прямо сейчас:

Закажите консультацию 3D-экспертов


Материалы предоставлены компанией Promech Engineering


Статья опубликована 26.06.2018 , обновлена 09.04.2020

Реверс-инжиниринг на производстве при помощи 3D-сканирования

Интервью с экспертом по 3D-технологиям Георгием Казакевичем

– Если мы хотим понимать, что такое реверс-инжиниринг, что нам нужно знать в первую очередь?

– Прежде всего надо разобраться, в чем состоит задача 3D-сканирования. Термин этот на самом деле расплывчатый, поскольку 3D-сканирование как таковое подразумевает просто сбор информации, которую надо обработать. «Сырые» данные не дают нам никакого практического результата.

Вспомните, какими были компьютерные игры лет пятнадцать-двадцать назад: на плоском экране прыгает несколько пикселей. Компьютеры того времени не могли обсчитать информацию больше, чем на эти несколько пикселей. За прошедшие годы вычислительные мощности неимоверно возросли. У любого из нас в кармане мобильный телефон, который мощнее, чем компьютер, который рассчитывал полет американцев на Луну. Поэтому сейчас, сидя за своим рабочим столом, вы можете обрабатывать колоссальные массивы информации. А 3D-сканирование, как я уже сказал, – ничто иное, как сбор информации.

– С какой целью мы собираем эту информацию?

– Для решения задач по двум направлениям – контроля геометрии и обратного проектирования (реверс-инжиниринга). Это два совершенно независимых процесса, и ими обычно занимаются разные отделы. Обратное проектирование – миссия конструкторского отдела. Его применяют, если необходимо отмасштабировать или изменить геометрию изделия, а конструкторская документация отсутствует. Объект сканируется, и на основе данных сканирования мы получаем CAD-модель, которую можно редактировать. То есть обратное проектирование – это, условно говоря, перевод материального объекта в цифровую форму. Но это не только заимствование, но также и возможность перенести сделанный вручную объект в чертежи.

Обратное проектирование в промышленном дизайне в автомобильной промышленности

– Значит, обратное проектирование – не всегда копирование?

– Да, не всегда. И здесь мы имеем дело с промышленным дизайном. Возьмем автомобильную промышленность. Во-первых, корпуса автомобилей создаются дизайнерами. Во-вторых, очень важно, чтобы поток воздуха правильно распределялся вокруг машины – это влияет на экономию топлива. Естественно, есть цифровые модели, которые позволяют производить продув в виртуальной аэродинамической трубе и проверять корпус на обтекаемость. Но любая цифровая модель – это всегда допущение. Удешевление технологии сканирования позволяет крупным производителям, таким как BMW или Mercedes, использовать ее для разработки новых корпусов. Они воссоздают полноразмерный макет машины и продувают его в реальной трубе. После этого они могут провести какую-то мелкую дополнительную обработку, чтобы добиться оптимальной схемы потока воздуха. Потом корпус просто сканируется и переносится в CAD/CAM-систему. То есть из реального объекта мы получаем виртуальный, который потом тиражируется. Это как раз наглядный пример того, что реверс-инжиниринг – не только копирование.

Но если вы где-то будете рассказывать про обратное проектирование, обязательно найдутся люди, которые скажут: «Так делают в Китае. Это плохо». Почему плохо, они объяснить не могут, и с ними не имеет смысла спорить. Просто нужно смотреть на показатели. Факт в том, что Китай сейчас – одна из самых быстрорастущих мировых экономик. Последние десять лет эта страна занимает первое место в мире по использованию 3D-сканеров.

Возьмем тот же самый BMW. Чертежей у вас нет, но вы можете их получить с помощью 3D-сканера. Да, безусловно, методика производства вам не будет известна, ее придется разрабатывать. И это еще один ответ тем, кто говорит, что обратное проектирование – это просто копирование. На самом деле, это лишь подсказка, в каком направлении надо двигаться. Нормальному предприятию очень важно разработать технологию производства, а это стоит гораздо больших денег, чем создать чертеж.

Процесс реверс-инжиниринга

– Давайте поговорим о том, что в себя включает процесс обратного проектирования.

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

В качестве примера мы взяли крыльчатку, которая является компонентом узла, используемого на нефтегазовых предприятиях. Допустим, этот узел иностранного производства (что встречается сплошь и рядом). Поскольку нефтегазовый сектор сейчас находится под санкциями, многие предприятия пытаются самостоятельно изготавливать запчасти для устройств, которые раньше поставлялись из-за рубежа. Итак, у нас есть узел, он исправно работает, но у него сломалась крыльчатка. А новую закупить мы не можем. Если приобрести отечественную, значит, придется менять всю периферию вокруг. Соответственно, если есть такой же узел с исправной крыльчаткой, мы можем ее отсканировать и создать 3D-модель в CAD. Затем, в зависимости от желаемого метода производства, либо экспортируем модель в САМ-систему, чтобы обработать стандартным образом на станке с ЧПУ, либо передаем на аддитивную установку. Во втором случае, как видим, производственный цикл сокращается. К тому же, надо понимать, что экспорт в САМ-систему и создание CAM-модели происходят не в автоматическом режиме (хотя для этого существует специальное ПО). Это всё трудозатраты человека.

Нижняя часть корпуса насоса и ее CAD-модель

– Расскажите, пожалуйста, о Вашем практическом опыте реверс-инжиниринга.

– Упомяну несколько интересных проектов, выполненных экспертами компании iQB Technologies.

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

Обратное проектирование картера трансмиссии

Еще один пример. Заказчик предоставил нам картер трансмиссии. Была поставлена задача получить CAD-модель и чертежи с реально существующей трансмиссии, что нами и было сделано.

3D-сканирование и получение 3D-модели цоколя фонарного столба

А здесь вы видите цоколь фонарного столба, знакомый всем москвичам. Существует проект по замене всех таких цоколей в Москве. Требовалось получить модель современного цоколя и внести в нее определенные изменения. Мы создали 3D-модель и полностью ее оцифровывали. Зачем это делалось? Необходимо было соблюсти точные размеры, поскольку под цоколями находится электрика и разнообразное дополнительное оборудование. Кроме того, крепежи, которые смыкаются на столбе, заменены не будут. Таким образом, проект нового цоколя с применением обратного проектирования позволил минимизировать изменения и, соответственно, сократить расходы на них.

Защита картера двигателя мотоцикла

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

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

Компания iQB Technologies приглашает вас на выставку «Металлообработка-2019» в ЦВК «Экспоцентр»! Мы представим уникальные 3D-решения на нашем стенде в павильоне 5.1, а также проведем практическую конференцию с демонстрацией 3D-сканирования и моделирования (29 мая с 11:00 до 14:00). Подробности и регистрация на конференцию по ссылке.

новейших вопросов «обратного инжиниринга» — Stack overflow на русском

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

.

Что такое реверс-инжиниринг? — Определение от WhatIs.com

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

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

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

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

Содержание продолжается ниже

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

код
и проникнуть в компьютерную систему или причинить другой вред.

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

Другой тип реверс-инжиниринга включает создание трехмерных изображений изготовленных деталей, когда отсутствует чертеж для восстановления детали.Чтобы реконструировать деталь, деталь измеряется координатно-измерительной машиной (КИМ). Согласно измерениям, 3-D

проволочный каркас
изображение создается и отображается на мониторе. После завершения измерения

проволочный каркас
изображение имеет размер. С помощью этих методов можно реконструировать любую деталь.

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

.

Обратный инжиниринг — Википедия

Обратный инжиниринг (englisch; deutsch: umgekehrt entwickeln , rekonstruieren , Kürzel: RE ; auch Nachkonconstruktion bestemengentegenstegentegentegentegentegenentegruzen) Produkt durch Untersuchung der Strukturen, Zustände und Verhaltensweisen die Konstruktionselemente zu extrahieren. Aus dem fertigen Objekt wird somit wieder ein Plan erstellt.

Im Gegensatz zu einer funktionellen Nachempfindung, die ebenso auf Analysen nach dem Black-Box-Prinzip aufbauen kann, wird durch Reverse Engineering angestrebt, das vorliegende Objekt weitgehend exakt abzubilden.

Oft wird versucht, zur Verifikation der gewonnenen Einsichten eine 1: 1-Kopie des Objekts anzufertigen, auf deren Basis es grundsätzlich möglich ist, Weiterentwicklung zu betreiben.

Оборудование [Bearbeiten | Quelltext Bearbeiten]

Um Hardware zwecks Nachbau zu untersuchen, wurden z.B. in der DDR Methoden entwickelt, bei denen ein Chip-Die lagenweise abgetragen wurde (durch Schleifen oder selektives Ätzen) и dann die Ebenen per Mikroskop untersucht wurden, um die Funktionalität und ihre Hardwarebasis herauszufinden. Auf diese Weise Entstand ein Z80-Nachbau as U880. Diese Berichte sind glaubhaft, da einige Firmen noch heute solche Dienste anbieten und erfolgreich erbringen.

Программное обеспечение [Bearbeiten | Quelltext Bearbeiten]

Speziell bezogen auf Software wird darunter meistens einer der drei folgenden Vorgänge verstanden:

Im ersten Fall werden oft Decompiler eingesetzt, die den Quellcode eines Programms weitestgehend automatisch aus seinem Binärcode zurückgewinnen.Ist dieses nicht durchgehend möglich, так что канн дер аус дем Binärcode des Programms direkt mit einem Disassembler ermittelbare Maschinencode auch manuell analyysiert werden, был аллергеном eine merkliche Erschwernis bedeutet. Es kann i. d. R. nicht der gesamte Programmequellcode ermittelt werden, da z. B. Kommentare nie und lokale Objektnamen nur selten im verfügbaren Binärcode enthalten sind. Oft ist das Ergebnis trotz allem für den jeweiligen Zweck ausreichend, z. B. zur Verhaltensanalyse eines Softwaresystems или Hilfe beim Beheben eines Fehlers.

Обратный инжиниринг — это не все, что нужно знать, Венн этва ди Энтвиклер еинес Бетрибсистемс, хорошее программное обеспечение ист, фюр еин бестиммес Герат Эйнен Герэтетрайбер шрайбен воллен, ден дас дафюр невендиге Виссен Феллен Хаймэн. Aber hier genügt of das Sniffen der Kommunikation zu und von dem betreffenden Gerät, также die zweite Methode. Disassemblieren oder Dekompilieren eines vorhandenen Gerätetreibers, etwa von einem nicht-freien Betriebssystem, ist in der Regel nicht notwendig.

Ein weiteres Anwendungsfeld sind Quelltext-Rekonstruktionen von Abandonware gewordenen Computerspielklassiker, wie z. B. Другой мир [1] [2] , um u. а. Portierungen auf aktuelle Plattformen vornehmen zu können.

Beim dritten Fall spricht человек jedoch в Abgrenzung Цум Reverse Engineering insbesondere während де Softwareentwicklungsprozesses фон Code-Rückführung , Венна AUS етег Entwurfsspezifikation gewonnener Quellcode Manuell modifiziert унд дер modifizierte Quellcode Wieder в дас Modell дер Entwurfsspezifikation übernommen вирда, гм Дорт weiterverarbeitet Werden цу können (vor allm bei Single Source CASE-Werkzeugen).Dies ist auch möglich, wenn bei bereits fortgeschrittenen und umfangreichen Software-Projekten gar keine Entwurfsspezifikation beispielsweise в UML existiert und nachträglich erzeugt werden soll. [3]

Maschinenbau [Bearbeiten | Quelltext Bearbeiten]

Der Reverse-Engineering-Prozess am Beispiel eines Silberpfeils, Baujahr 1954. Vom Original (1) wurde in 14 Stunden Messzeit eine Punktewolke (2) mit 98 Millionen Messpunkten erzeugt. Diese wurden auf achsparallele Schnitte im Abstand von zwei Zentimetern reduziert (3), auf denen in etwa 80 Arbeitsstunden ein CAD-Modell (4) konstruiert wurde.Auf Basis des CAD-Modells wurde schließlich ein Nachbau (5) im Maßstab 1: 1 angefertigt.

Im Maschinenbau werden insbesondere Objekte mit Freiformflächen einem Reverse Engineering unterzogen. Freiformflächen kommen im Maschinenbau hauptsächlich in der Kraftfahrzeugtechnik (Automobilkarosserie), Ur- und Umformtechnik und im Energiemaschinenbereich (Turbinen- und Verdichterschaufeln) vor.
Es geht hier im engeren Sinne um die Digitalisierung gewachsener, d. час natürlich entstandener Objekte wie zum Beispiel von Hand bearbeiteter Objekte aus dem Designbereich des Automobilbaus oder händisch erstellter Designstudien, die einer weiteren rechnergestützten Bearbeitung, z.B. Fertigung, Strömungs- oder FEM-Simulation, zugänglich gemacht werden sollen. Die Anwendung dieser speziell für den Maschinenbau entwickelten Lösungen auch für andere Bereiche, wie z. B. der Medizin oder Kunst, hat schon seit einigen Jahren Einzug gehalten. In der heutigen Zeit werden immer komplexere oder durch Designer verschönerte Objekte entwickelt. Dabei kann das Reverse Engineering in der Entwicklung viel Zeit und Geld Sparen.

Eine weitere Reverse-Anwendung ist der Soll – Ist-Vergleich.Dabei wird z. B. ein Spritzgussteil am CAD modelliert, gefertigt, durch Reverse Engineering wieder digitalisiert und am Computer mit dem Sollteil verglichen.

Reverse Engineering umfasst sowohl die Rückführung der Merkmale eines Objektes in ein воспроизводство Ausgangsmodell als auch die Strategischen Überlegungen, wie diese Rückführung abzulaufen hat. Dies schließt sowohl die Auswahl einer Anzahl physisch vorhandener Objekte, aus denen ein optimales Objekt statistisch ermittelt wird, als auch die funktionelle Berücksichtigung von Interaktionsstellen mit korrespondierenden Objekten ein.Nur so können die ursprünglichen Herstellungstoleranzen und damit eine Verschlechterung der rückgeführten Daten minimiert werden. (Vermeidung des Prinzips «Stille Post»)

Zur Digitalisierung bieten sich meist fotooptische oder lasergestützte 3D-Scanner an. Der eigentliche Reverse-Prozess siedelt sich nach dem Scannen an. D. h., Er bildet die Schnittstelle zwischen der durch den Scanner erzeugten Punktewolke und einem CAD-Modell mit bestimmten Objekt- und Flächeneigenschaften. [4] Автоматическое 3D-сканирование и геометрическая геометрия, собственное качество и качество продукции.

Dabei geht es zunächst nicht darum, bestehende Konstruktionen zu kopieren, im Sinne einer Industriespionage. Die Methoden, die beim Reverse Engineering angewendet werden, sind aber für eine Produktpiraterie prinzipiell geeignet.

Die Erzeugung der Geometrieeigenschaften kann in zwei Kategorien unterteilt werden:

  • Parametrisierte Rückführung: Dabei werden einfache Geometrieelemente auf die Punktewolke gelegt und zu einem Ganzen zusammengefügt. Dabei handelt es sich vorwiegend um Kugeln, Kreise, Flächen zweiten, dritten und vierten Grades usw.
  • Nicht parameterrisierte Rückführung: Dieses Verfahren wird bei Objekten verwendet, die keine Expiziten Geometrieeigenschaften aufweisen. Dabei wird über das gesamte Objekt eine Art Netzstrumpf gezogen. Dabei bilden die Maschen des Strumpfes die Flächen des CAD-Modells. Diese Flächen besitzen keine eigentlichen Geometrieelemente mehr und sind durch eine Vielzahl kleinerer Flächen sogenannter Grids unterteilt.

Программное обеспечение [Bearbeiten | Quelltext Bearbeiten]

Viele Firmen untersagen das Reverse Engineering ihrer Produkte durch entsprechende Lizenzbedingungen.Die Analyze von Protokollen ist davon rechtlich nicht betroffen, weil dabei die Software selbst gar nicht Gegenstand der Untersuchung ist. Zudem sind solche Lizenzklauseln in vielen Ländern generell ungültig, da den Nutzern einer Sache gesetzlich das Recht zusteht, zur Überprüfung der Anwendungssicherheit (siehe auch Trojanisches Feferdinerbeein zehe auch Trojanisches Feferdinerbeein eurbee, zuru). Das reine Untersuchen von Dingen, die einem selbst gehören, darf man gegebenenfalls der Freiheit der Forschung zuordnen, так dass ebenfalls entsprechende Lizenzklauseln nicht greifen.

Oftmals dienen solche Lizenzklauseln eher dem Zweck der Abschreckung und sind somit als einseitige Willensäußerung oder je nach Form als prophylaktische, einseitig vorgetragene Rechtsauffassunge keengéngée. Im Softwarebereich spricht man of the von der im deutschen Raum generell zweifelhaften sogenannten «Лицензия на термоусадочную пленку» -Vereinbarung.

Allerdings kann man sich ggf.per Vertragsstrafe zu Zahlungen im Fall der entdeckten Zuwiderhandlung verpflichtet haben. Dieser Form der Individualuellen Vertragsbindung kann man sich unter Umständen sehr wohl vollkommen legal unterworfen haben, wobei es hier meistens um Prototypen oder Kleinserien geht, die noch erhebliche Mengen an Geschäftsgeheimnissen enthalten. Oftmals werden aus diesem Grund Rabatte zugunsten des Käufers eingeräumt (im Gegenzug zur verminderten Nutzungsmöglichkeit), oder es wird versucht, durch die oben angeführte Vertragsstrafe echte Risiken des Verkäufers (im Gegenzug zur verminderten Nutzungsmöglichkeit), или es wird versucht, durch die oben angeführte Vertragsstrafe echte Risiken des Verkäufers (im Gegenzug zur verminderten Nutzungsmöglichkeit)B. durch Geheimnisverrat) zumindest in gewissem Umfang abzudecken. Weiterhin findet bei sensiblen Objekten auch die Methode der zeitlich beginzten leihweisen Überlassung statt.

Schon lange wird auch Verschlüsselung und Verschleierung in der Computertechnik eingesetzt, wobei hiermit natürlich primär das Reverse Engineering erschwert werden soll, aber zunehmend auch, weil dadurch die novellierpheberzugzungendendenderefenzungrezünenzünenzününüünüüüüüüüüBeispielhaft sei hier die Anklage des Russen Дмитрий Скляров в den USA unter den Gesetzeswerk DMCA wegen Dekodierung von geschützten Textdokumenten im Jahr 2001 angeführt. Im Oktober 2003 ließ der US-Kongress jedoch vier Zusätze zu dem DMCA passieren, welche u. а. den Zweck der Archivierung von digitalen Werken als zeitlich gotrenzte Ausnahme Definierten und Dafür notwendige Techniken wie das Reverse Engineering wieder erlauben.

«3. Компьютерные программы и видеоигры, распространяемые в форматах, которые уже устарели и для которых в качестве условия доступа требуются оригинальные носители или оборудование.… Реестр пришел к выводу, что в той мере, в какой библиотеки и архивы желают делать копии для сохранения опубликованного программного обеспечения и видеоигр, которые были распространены в форматах, которые (либо потому, что физический носитель, на котором они распространялись, больше не используется, либо потому, что использование устаревшей операционной системы), такая деятельность не нарушает авторских прав и регулируется разделом 108 (c) Закона об авторском праве ». [5]

Im Ноябрь 2006 г. hat die Library of Congress der USA einer dauerhaften Ausnahme bezüglich des DMCA zugestimmt, welche das Umgehen eines Kopierschutzes von Software erlaubt, welche nicht länger vom Urheberrechtsinhaber und Erddungsinhaber verkauüftzungtunter vor Rechtsverfolgung möglich ist. [6]

Benutzt man das Ergebnis des Reverse Engineerings zum gewerblichen Nachbau, so wird man sich mit der großen Menge der gewerblichen Schutzrechte (z. B. Plagiat) в ähnlicher Weise konfrontier, ergeanzsen, en normalen eigenständigen Forschung und Entwicklung der Fall sein kann (z. B. durch Patente).

Technik und Elektronik [Bearbeiten | Quelltext Bearbeiten]

Das Reverse Engineering zum Zweck des Nachbaus von technischen Objekten hat of t das Ziel, Entwicklungskosten und -risiken zu verringern sowie fehlendes eigenes Know-how zu kompensieren.Es wird deshalb vom Originalhersteller of nicht hingenommen oder sogar bekämpft. Dabei geht es auch um Produkthaftung, denn oft fehlt es Nachahmerprodukten an Qualität. Daher schützen sich Originalhersteller vor Nachahmung durch Verschleierung oder sichern ihre Originalität durch verdeckte Produktkennzeichnung (Tags) rechtlich ab. Der Nachbau ist mindestens immer dann незаконно, wenn fremde Patente verletzt werden oder wenn das Produkt als Originalteil gekennzeichnet ist. Aber auch, wenn ungeschütztes Gedankengut anderer benutzt wird, kann eine Urheberrechtsverletzung vorliegen. [7] Hochintegrierte Schaltkreise entziehen sich dem reverse engineering durch ihre Strukturgrößen im Nanometerbereich. Auf Leiterplatten werden oft Bezeichnungen der verbauten integrierten Schaltkreise entfernt.

Das Reverse Engineering unterscheidet sich vom technischen Re-Engineering dadurch, dass bei letzterem die technische Dokumentation vorliegt und die Funktionalität mit modernen Mitteln nachgebildet oder erweitert werden soll. [7]

  • Денис Юричев: Обратный инжиниринг для начинающих. Электронная книга: http://beginners.re/ Немецкая версия: https://beginners.re/RE4B-DE.pdf
  • Памела Самуэльсон, Сюзанна Скотчмер: Закон и экономика обратного проектирования. В: Йельский юридический журнал. Том 111, № 7, май 2002 г., С. 1575–1664. (PDF) (Memento vom 15. Februar 2012 im Internet Archive )
  • Э. Эйлам: Реверсирование: секреты обратного инжиниринга. John Wiley & Sons, 2005, ISBN 0-7645-7481-7.
  • Х. Дж. Ван Зуйлен: The REDO Compendium.Обратный инжиниринг для сопровождения программного обеспечения. John Wiley & Sons, Чичестер u. а. 1993, ISBN 0-471-93607-3.
  • Маттиас Пирсон, Томас Аренс, Карстен Фишер: Recht des geistigen Eigentums . Verlag Vahlen, 2007, ISBN 978-3-8006-3428-6.
  • Маркус фон Велзер, Александр Гонсалес: Marken- und Produktpiraterie, Strategien und Lösungsansätze zu ihrer Bekämpfung. Wiley-VCH, 2007, ISBN 978-3-527-50239-4.
  • Винеш Раджа, Киран Дж. Фернандес: Обратный инжиниринг — промышленная перспектива. Springer, 2008, ISBN 978-1-84628-855-5.
  • Christine Schöne: Reverse Engineering für Freiformflächen in Prozessketten der Produktionstechnik. Dr Hut, 2009, ISBN 978-3-86853-103-9.
  1. ↑ Блейк Паттерсон: Захватывающий взгляд под капотом «Другой мир». toucharcade.com, 26 декабря 2011 г., abgerufen am 14. октября 2013 г.
  2. ↑ Фабьен Санглард: Обзор кода «Другой мир». fabiensanglard.net, 23. декабря 2011 г., abgerufen am 14.Январь 2013 (englisch): « Я потратил две недели на чтение и обратное проектирование исходного кода Another World (« Out Of This World »в Северной Америке). Я основывал свою работу на начальном реверс-инжиниринге «двоичного кода в C ++» Грегори Монтуара из исполняемого файла DOS. Я был поражен, обнаружив элегантную систему, основанную на виртуальной машине, интерпретирующей байт-код в реальном времени и генерирующей полноэкранный векторный кинематографический фильм, чтобы создать одну из лучших игр всех времен.
  3. ↑ стр.Лемпп, Р. Дж. Торик: Обратный инжиниринг программного обеспечения: подход к получению надежного программного обеспечения. 4-я ежегодная совместная конференция по качеству и производительности программного обеспечения, Crystal City, VA; 1. – 3. März 1988.
  4. ↑ C. Teutsch: Модельный анализ и оценка наборов точек с оптических 3D-лазерных сканеров. , том 1, Shaker Verlag, 2007, ISBN 978-3-8322-6775-9.
  5. ↑ Освобождение от запрета на обход систем защиты авторских прав для технологий контроля доступа (PDF)
  6. ↑ Эмма Бойс: Отказ от ПО теперь разрешен. gamespot.com, 27 ноября 2006 г., abgerufen am 11 января 2013 г. (на английском языке).
  7. a b https://sciencing.com/what-is-the-difference-between-reverse-engineering-and-re-engineering-12749441.html В чем разница между обратным проектированием и ре- Инженерное дело? auf Sciencing, abgerufen am 4 ноября 2019 г.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *