Обратная разработка

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Обра́тная разрабо́тка (обратное проектирование, обратный инжиниринг, реверс-инжиниринг; англ. reverse engineering) — исследование некоторого готового устройства или программы, а также документации на него с целью понять принцип его работы; например, чтобы обнаружить недокументированные возможности (в том числе программные закладки), сделать изменение или воспроизвести устройство, программу или иной объект с аналогичными функциями, но без прямого копирования.

Применяется обычно в том случае, если создатель оригинального объекта не предоставил информации о структуре и способе создания (производства) объекта. Правообладатели таких объектов могут заявить, что проведение обратной разработки или использование её результатов нарушает их исключительное право по закону об авторском праве и патентному законодательству[1][2].

Юридические аспекты[править | править код]

Россия

США

  • Закон об авторском праве и положения о добросовестном использовании (раздел 17 Свода зaконов США (U. S. C.) и статья 107 указанного раздела);
  • Закон о секрете производcтва;
  • Положения о запрете обхода технических мер защиты Закона об автоpском праве в цифровую эпоху (он же тот самый DMCA) (статья 1201 раздела 17 Свода законов США);
  • Закон о конфидeнциальности электронной связи (статья 2510 раздела 18 Свода законов США).

Евросоюз

Обратная разработка на службе государств[править | править код]

В 2016 году на заседании Правительственной комиссии по импортозамещению министр промышленности торговли РФ Д.В.Мантуров заявил о планах создать на базе Фонда развития промышленности центр обратного инжиниринга[6].

Сферы применения обратной разработки[править | править код]

Машиностроение, автомобилестроение, авиация[править | править код]

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

Примеры:

  • Советский грузовик АМО-3 был практически полной копией американского грузовика «AutoCar-SA».
  • Советский лодочный мотор «Москва» был практически полной копией очень удачного американского мотора ScottAtWater.
  • Пример неудачного выбора прототипа для обратной разработки — советский лодочный мотор «Вихрь», копия немецкого мотора Koening.
  • Советский самолет Ту-4, за исключением двигателей, является почти точной копией американского Boeing B-29 Superfortress.
  • Практически все бензиновые двигатели, установленные на мотоблоках, генераторах и других малогабаритных машинах китайского производства — копии японских моторов Honda GX.
  • Знаменитые японские АКПП Aisin A130 и A140 — несколько доработанные нелицензионные копии АКПП Chrysler 1940—1950-х годов, которые производились американской компанией на заводах в Японии после Второй мировой войны.
  • Первые китайские внедорожники Amiral, GreatWall и другие — нелицензионные практически точные копии внедорожника Toyota Hilux Surf.

Электроника[править | править код]

Обратная разработка электронных устройств появилась еще на заре радиотехники. В 1920-1930 годах различные фирмы копировали друг у друга радиолампы и схемотехнические решения их применения. Именно с обратной разработкой, а не с лицензионным производством, связано то, что радиолампы одного назначения почти всех производителей оказались унифицированными и взаимозаменяемыми. Например европейская лампа EL95 клон более ранней американской лампы 6KA5. Есть и обратные примеры: американские 6CA5 и KT88 - клоны европейской лампы EL34. То же самое относится и к советским радиолампам, многие из которых являются клонами американских ламп, получаемых по ленд-лизу (например 6Ж4, 6П9) или немецких из трофейной аппаратуры (6Г2, ГУ50). Вместе с лампами копировались и типовые схемы их включения, то есть фактически схемы блоков радиоаппаратуры. Поэтому именно благодаря обратной разработке ламповая эпоха охарактеризовалась по сути переходом к типовому проектированию в электронике. В частности, все выпускаемые в мире бытовые приемники-супергетеродины строились фактически по трем схемам, которая определялась лампой смесительно-гетеродинного узла: двойной триод, триод-гептод или пентагрид. Тоже самое относилось и к усилителям низкой частоты. Существовало не более десятка типовых схем их построения в зависимости от выходной мощности: маломощные однотактные на комбинированной лампе типа 6Ф3П, маломощные однотактные с темброблоком на двойном триоде (типа 6Н1П) и выходном пентоде (6П14П, EL84) или лучевом тетроде (6П3С, EL34), двухтактные с триодным фазоинвертором (6Н1П + 2х6П14П), двухтактные многокаскадные (6Н8П + 2х6П6С + ГУ50). Черно-белые телевизоры и вовсе строились по одной-двум схемам.

Программное обеспечение[править | править код]

Исследование и обратная разработка программ обычно осуществляются с целью дальнейшей модификации, копирования, или, например, написания генераторов ключей, алгоритм работы которых получен на основе анализа алгоритма их проверки. Также исследование программ применяется с целью получения некоторых закрытых сведений о внутреннем устройстве программы — о протоколе сетевого обмена с сервером, аппаратным средством, ключом защиты или о взаимодействии с другой программой. Ещё одна область применения — получение информации о способах экспортирования данных из многочисленных проприетарных форматов файлов[8].

С развитием Интернета популярные операционные системы и программы всё интенсивнее исследуются на предмет обнаружения в них уязвимостей или т. н. «дыр». В дальнейшем найденные дыры могут использоваться для получения несанкционированного доступа к удалённому компьютеру или компьютерной сети. C другой стороны, обратная разработка применяется при исследовании антивирусными компаниями вредоносного ПО c целью добавления его сигнатур в базы своих продуктов.

Одним из широко известных примеров обратной разработки является исследование BIOS персонального компьютера IBM, ставшее серьёзным шагом на пути развития производства IBM-совместимых компьютеров сторонними производителями.[9][10] Создание сервера Samba[11][12][13][14][15] (входящего в состав ОС GNU/Linux и работающего с серверами на базе ОС Windows) также потребовало обратной разработки используемого Microsoft протокола SMB. Создание многих ICQ-клиентов также потребовало обратной разработки протокола ICQ.[источник не указан 3038 дней]

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

  1. Анализ обмена данными, наиболее распространённый в обратной разработке протоколов обмена данными, который производится с помощью анализатора шины и пакетного сниффера для прослушивания шины компьютера и компьютерной сети соответственно.
  2. Дизассемблирование машинного кода программы для получения её листинга на языке ассемблера. Этот способ работает на любой компьютерной программе, но требует достаточно много времени, особенно для неспециалиста.
  3. Декомпиляция машинного или байт-кода программы для создания исходного кода на некотором языке программирования высокого уровня.

В настоящее время под словами «reverse engineering» чаще всего понимается т. н. clean room reverse engineering, то есть процесс, при котором одна группа разработчиков анализирует машинный код программы, составляет алгоритм данной программы на псевдокоде либо, если программа является драйвером какого-либо устройства, составляет исчерпывающие спецификации интересующего устройства. После получения спецификаций другая группа разработчиков пишет собственный драйвер на основе полученных спецификаций или алгоритмов. Такой подход позволяет избежать обвинений в нарушении авторских прав на исходную программу, так как по законам, к примеру в США, подпадает под понятие «fair use», то есть добросовестного использования оригинальной программы. Результат обратной разработки редко идентичен оригиналу, что и позволяет избежать ответственности перед законом, особенно при условии контроля отсутствия этой идентичности первой группой разработчиков и отсутствия нарушений торговых марок и патентов.

Базы данных[править | править код]

Может использоваться при создании реляционной модели базы данных.

Промышленность[править | править код]

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

Так например, ряд производителей фототехники, таких как Sigma, Tamron, Tokina и Carl Zeiss, выпускают объективы с байонетом типа Canon EF. Они созданы методом обратной разработки, а их производители не имеют доступа к спецификациям Canon[источник не указан 197 дней].

Военная промышленность[править | править код]

Jerry cans

Самыми[источник не указан 1479 дней] известными фактами обратной разработки во время Второй мировой войны являлись:

  • Немецкие канистры для бензина — в британских и американских войсках заметили, что немцы имели очень удобные канистры. Они скопировали эти канистры, и те получили название Jerry cans (от слова «gerrys» — от «Germans»)[16].
  • Туполев Ту-4 — несколько американских бомбардировщиков B-29 при осуществлении вылетов в Японию совершили вынужденную посадку в СССР. Советские военные, не имевшие подобных стратегических бомбардировщиков, решили скопировать B-29. Через несколько лет они разработали Ту-4, практически его полную копию[17]. В то же время двигатели, вооружение и радиоэлектронное оборудование Ту-4 не было копиями соответствующих систем В-29.
  • Тепловоз ТЭ1 — в 1945 году тепловоз RSD-1 (Да) (поставлялся в СССР по ленд-лизу) привёл литерный поезд Сталина на Потсдамскую конференцию. Сталин высоко оценил данный локомотив, поэтому в 1947 году начался выпуск советской копии американского тепловоза — ТЭ1. Несмотря на некоторые отличия в размерах и отдельном оборудовании, ТЭ1 оказался практически идентичен Да[18]. Все нынешние российские маневровые тепловозы — потомки американского тепловоза.
  • Миномёты — немцы в военные годы успешно скопировали советские трофейные 120 мм миномёты, которые взяли себе на вооружение под именем Granatwerfer 42.
  • Автомат Калашникова — недавно руководство ОАО «Ижмаш» заявило, что около половины всех АК в мире — «контрафактные» (то есть, производимые без лицензии и передачи технологий), из-за чего Россия недополучает около миллиарда долларов в год. В то же время, патентные ограничения (если таковые имелись) на технологии и технические решения утратили свою силу[19].

См. также[править | править код]

Литература[править | править код]

Примечания[править | править код]

  1. Иск SAS против World Programming, http://learnip.ru/news/avtorskie-prava-ne-rasprostranyayutsya-na-obratnyy-inzhiniri/
  2. s:Гражданский кодекс РФ/Глава 70#Статья 1280. Право пользователя программы для ЭВМ и базы данных
  3. Граждaнский кодекс РФ (часть четвертая) // Консультант плюс
  4. Федеральный закон РФ «О коммерчеcкой тайне» // Консультант плюс
  5. Федеральный закон РФ «Об информации, информационных теxнологиях и о защите информации» // Консультант плюс
  6. Заседании Правительственной комиссии по импортозамещению // Правительство России
  7. Номенклатура и аналоги отечественных микросхем
  8. Часто применяется, например, в отношении форматов, поддерживаемых Microsoft Office.
  9. http://wikipcpedia.com/wiki/getting-serious-the-pc-comes-of-age/reverse-engineering-%E2%80%93-compaq-phoenix-zenith/
  10. Compaq I Portable computer
  11. Myths About Samba
  12. Computer Network Definition
  13. Анализатор трафика
  14. ngrep
  15. Magic cookie
  16. AmericanHeritage.com / The Little Can That Could Архивировано 24 мая 2007 года.
  17. ОАО «Туполев» — 68 (Ту-4)
  18. Раков В. А. Локомотивы отечественных железных дорог 1845—1955. — 2-е, переработанное и дополненное. — М.: Транспорт, 1995. — С. 374. — ISBN 5-277-00821-7.
  19. cрок действия патента на изобретение — 20 лет, на полезную модель — 10 лет, на промышленный образец — не более 25 лет

Ссылки[править | править код]