Меню
Главная
Случайная статья
Настройки
|
Обратная разработка (англ. reverse engineering), также обратное проектирование, обратный инжиниринг или реверс-инжиниринг — исследование некоторого готового устройства или программы, а также документации на него с целью понять принцип его работы; например, чтобы обнаружить недокументированные возможности (в том числе программные закладки), сделать изменение или воспроизвести устройство, программу или иной объект с аналогичными функциями, но без прямого копирования.
Применяется обычно в том случае, если создатель оригинального объекта не предоставил информации о структуре и способе создания (производства) объекта. Правообладатели таких объектов могут заявить, что проведение обратной разработки или использование её результатов нарушает их исключительное право по закону об авторском праве и патентному законодательству[1][2].
Содержание
Машиностроение, автомобилестроение, авиация
Примеры:
- Советский грузовик АМО-3 был практически полной копией американского грузовика «AutoCar-SA».
- Советский лодочный мотор «Москва» был практически полной копией очень удачного американского мотора ScottAtWater.
- Пример неудачного выбора прототипа для обратной разработки — советский лодочный мотор «Вихрь», копия немецкого мотора Koening.
- Практически все бензиновые двигатели, установленные на мотоблоках, генераторах и других малогабаритных машинах китайского производства — копии японских моторов Honda GX[источник не указан 519 дней].
- Знаменитые японские АКПП Aisin A130 и A140 — несколько доработанные нелицензионные копии АКПП Chrysler 1940—1950-х годов, которые производились американской компанией на заводах в Японии после Второй мировой войны
- Первые китайские внедорожники Admiral
Часто при реверс-инжиниринге все таки приходится вносить изменения в конструкцию, что может быть связано с отличиями технологии производства или устранением недостатков оригинала. Например, двигатели Honda GX имеют алюминиевый безгильзовый цилиндр с никосилевым напылением. Китайские клоны имеют чугунную гильзу.
Реверс-инжениринг в современном машиностроении напрямую связан с развитием технологии трёхмерного сканирования объектов. Благодаря трёхмерному сканеру весь объём данных о геометрии изделия может быть представлен в виде STL-файла. Дальнейшее построение конструкторской параметрической модели осуществляется на основе STL в специализированных САПР. В конечном итоге применение 3D-сканеров позволяет получать конструкторскую документацию, необходимую для изготовления копии изначального образца. Часто (например, при копировании различных несложных запчастей) конструкторская документация и вовсе не разрабатывается, а полученный результат сканирования сразу же загружается в обрабатывающий центр.
Электроника
Обратная разработка электронных устройств (clean-room design / dark-room technique) появилась ещё на заре радиотехники. В 1920—1930 годах различные фирмы копировали друг у друга радиолампы и схемотехнические решения их применения. Именно с обратной разработкой, а не с лицензионным производством, связано то, что радиолампы одного назначения почти всех производителей оказались унифицированными и взаимозаменяемыми. Например европейская лампа EL95 — клон более ранней американской лампы 6KA5. Есть и обратные примеры: американские 6CA5 и KT88- Советская игра «Ну, погоди!» («Электроника ИМ-02») является нелицензионной копией японской игры Nintendo EG-26.
- Копирование различных электронных блоков без фактической разработки. Известно[3], что многие элементы, в частности, ТТЛ различных компаний и национальных стандартов, взаимозаменяемы. Например, американская серия интегральных схем 7400 и её советский аналог К(Р)155.
Промышленность
Обратная разработка продукта конкурента с целью узнать его устройство, принцип работы и оценить возможности создания аналога.
Военная промышленность
Известными примерами обратной разработки являлись:
- Туполев Ту-4 — несколько американских бомбардировщиков B-29 при осуществлении вылетов в Японию совершили вынужденную посадку в СССР. Советские военные, не имевшие подобных стратегических бомбардировщиков, решили скопировать B-29. Через несколько лет они разработали Ту-4, практически его полную копию[4]. В то же время двигатели, вооружение и радиоэлектронное оборудование Ту-4 не были копиями соответствующих систем В-29.
- Советская управляемая ракета «воздух-воздух» К-13 являлась нелицензионной копией американской AIM-9.
- Тепловоз ТЭ1 — в 1945 году тепловоз RSD-1 (Да) (поставлялся в СССР по ленд-лизу) привёл литерный поезд Сталина на Потсдамскую конференцию. Сталин высоко оценил данный локомотив, поэтому в 1947 году начался выпуск советской копии американского тепловоза — ТЭ1. Несмотря на некоторые отличия в размерах и отдельном оборудовании, ТЭ1 оказался практически идентичен Да[5]. Все нынешние российские маневровые тепловозы — потомки американского тепловоза.
- Автомат Калашникова — недавно
- Немецкие канистры для бензина — в британских и американских войсках заметили, что немцы имели очень удобные канистры. Они скопировали эти канистры, и те получили название Jerry cans (от слова «gerrys» — от «Germans»)[7].
Программное обеспечение
Исследование и обратная разработка программ обычно осуществляются с целью дальнейшей модификации, копирования, или, например, написания генераторов ключей, алгоритм работы которых получен на основе анализа алгоритма их проверки. Также исследование программ применяется с целью получения некоторых закрытых сведений о внутреннем устройстве программы — о протоколе сетевого обмена с сервером, аппаратным средством, ключом защиты или о взаимодействии с другой программой. Ещё одна область применения — получение информации о способах экспортирования данных из многочисленных проприетарных форматов файлов[8].
С развитием Интернета популярные операционные системы и программы всё интенсивнее исследуются на предмет обнаружения в них уязвимостей или т. н. «дыр». В дальнейшем найденные дыры могут использоваться для получения несанкционированного доступа к удалённому компьютеру или компьютерной сети. C другой стороны, обратная разработка применяется при исследовании антивирусными компаниями вредоносного ПО c целью добавления его сигнатур в базы своих продуктов.
Одним из широко известных примеров обратной разработки является исследование BIOS персонального компьютера IBM, ставшее серьёзным шагом на пути развития производства IBM-совместимых компьютеров сторонними производителями.[9][10] Создание сервера Samba[11][12] (входящего в состав ОС GNU/Linux и работающего с серверами на базе ОС Windows) также потребовало обратной разработки используемого Microsoft протокола SMB.
Обратная разработка программного обеспечения производится с помощью следующих методик.
- Анализ обмена данными, наиболее распространённый в обратной разработке протоколов обмена данными, который производится с помощью анализатора шины и пакетного сниффера для прослушивания шины компьютера и компьютерной сети соответственно.
- Дизассемблирование машинного кода программы для получения её листинга на языке ассемблера. Этот способ работает на любой компьютерной программе, но требует достаточно много времени, особенно для неспециалиста.
- Декомпиляция машинного или байт-кода программы для создания исходного кода на некотором языке программирования высокого уровня.
В настоящее время под словами «reverse engineering» чаще всего понимается т. н. clean room reverse engineering, то есть процесс, при котором одна группа разработчиков анализирует машинный код программы, составляет алгоритм данной программы на псевдокоде либо, если программа является драйвером какого-либо устройства, составляет исчерпывающие спецификации интересующего устройства. После получения спецификаций другая группа разработчиков пишет собственный драйвер на основе полученных спецификаций или алгоритмов. Такой подход позволяет избежать обвинений в нарушении авторских прав на исходную программу, так как по законам, к примеру в США, попадает под понятие «fair use», то есть добросовестного использования оригинальной программы. Результат обратной разработки редко идентичен оригиналу, что и позволяет избежать ответственности перед законом, особенно при условии контроля отсутствия этой идентичности первой группой разработчиков и отсутствия нарушений торговых марок и патентов.
В России
В 2016 году на заседании Правительственной комиссии по импортозамещению министр промышленности торговли РФ Д. В. Мантуров заявил о планах создать на базе Фонда развития промышленности центр обратного инжиниринга[13]. В дальнейшем информации о развитии с результатами работ не было. В других странах мира известно о ряде продукции, преимущественно военного назначения, созданной таким путём.
См. также
Примечания
- Иск SAS против World Programming . Дата обращения: 16 декабря 2014. Архивировано 16 декабря 2014 года.
- s:Гражданский кодекс РФ/Глава 70#Статья 1280. Право пользователя программы для ЭВМ и базы данных
- Номенклатура и аналоги отечественных микросхем . Дата обращения: 17 апреля 2010. Архивировано 27 мая 2010 года.
- ОАО «Туполев» — 68 (Ту-4) . Дата обращения: 29 марта 2010. Архивировано из оригинала 24 октября 2007 года.
- Раков В. А. Локомотивы отечественных железных дорог 1845—1955. — 2-е, переработанное и дополненное. — М.: Транспорт, 1995. — С. 374. — ISBN 5-277-00821-7. — [Архивировано 24 мая 2014 года.] Архивированная копия . Дата обращения: 3 августа 2012. Архивировано из оригинала 24 мая 2014 года.
- срок действия патента на изобретение — 20 лет, на полезную модель — 10 лет, на промышленный образец — не более 25 лет . Дата обращения: 26 мая 2016. Архивировано из оригинала 15 мая 2016 года.
- AmericanHeritage.com / The Little Can That Could Архивировано 24 мая 2007 года.
- Часто применяется, например, в отношении форматов, поддерживаемых Microsoft Office.
- 502 Bad Gateway . Дата обращения: 12 января 2016. Архивировано из оригинала 29 марта 2016 года.
- Compaq I Portable computer . Дата обращения: 12 января 2016. Архивировано 9 ноября 2020 года.
- Myths About Samba . Дата обращения: 12 января 2016. Архивировано 20 октября 2017 года.
- Computer Network Definition . Дата обращения: 14 января 2016. Архивировано 27 ноября 2015 года.
- Заседании Правительственной комиссии по импортозамещению Архивная копия от 15 июня 2017 на Wayback Machine // Правительство России
Литература
Ссылки
|
|