Обратная разработка: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
отмена правки 124996043 участника 2A00:1FA1:12C:E1B2:0:4E:F933:A201 источник?
Метка: отмена
м подстановка даты в шаблон:Нет источника
 
(не показано 16 промежуточных версий 12 участников)
Строка 1: Строка 1:
{{другое название|Реинжинеринг|Реинжинеринг}}
<noinclude>{{к удалению|2022-04-30}}
<noinclude>{{к удалению|2022-04-30}}
</noinclude>{{переработать}}<!-- разделы набросаны кашей и плохо структурированы, пересекаясь -->
</noinclude>{{переработать}}<!-- разделы набросаны кашей и плохо структурированы, пересекаясь -->
{{другое название|Реинжинеринг|Реинжинеринг}}
'''Обра́тная разрабо́тка''' ('''обратное проектирование, обратный инжиниринг''', '''реверс-инжиниринг'''; {{lang-en|reverse engineering}}) — исследование некоторого готового устройства или программы, а также [[Документация на программное обеспечение|документации]] на него с целью понять принцип его работы; например, чтобы обнаружить [[недокументированные возможности]] (в том числе [[Программная закладка|программные закладки]]), сделать изменение или воспроизвести устройство, программу или иной объект с аналогичными функциями, но без прямого копирования.
'''Обра́тная разрабо́тка''' ('''обратное проектирование, обратный инжиниринг''', '''реверс-инжиниринг'''; {{lang-en|reverse engineering}}) — исследование некоторого готового устройства или программы, а также [[Документация на программное обеспечение|документации]] на него с целью понять принцип его работы; например, чтобы обнаружить [[недокументированные возможности]] (в том числе [[Программная закладка|программные закладки]]), сделать изменение или воспроизвести устройство, программу или иной объект с аналогичными функциями, но без прямого копирования.


Строка 7: Строка 7:


== Обратная разработка на службе государств ==
== Обратная разработка на службе государств ==
В 2016 году на заседании Правительственной комиссии по импортозамещению министр промышленности торговли РФ [[Мантуров, Денис Валентинович|Д. В. Мантуров]] заявил о планах создать на базе Фонда развития промышленности центр обратного инжиниринга<ref>[http://government.ru/news/22797//// Заседании Правительственной комиссии по импортозамещению] {{Wayback|url=http://government.ru/news/22797//// |date=20170615070245 }} // Правительство России</ref>.
В 2016 году на заседании Правительственной комиссии по импортозамещению министр промышленности торговли РФ [[Мантуров, Денис Валентинович|Д. В. Мантуров]] заявил о планах создать на базе Фонда развития промышленности центр обратного инжиниринга<ref>[http://government.ru/news/22797//// Заседании Правительственной комиссии по импортозамещению] {{Wayback|url=http://government.ru/news/22797//// |date=20170615070245 }} // Правительство России</ref>.


== Программное обеспечение ==
== Сферы применения обратной разработки ==
Исследование и обратная разработка программ обычно осуществляются с целью дальнейшей модификации, копирования, или, например, написания [[Кейген|генераторов ключей]], алгоритм работы которых получен на основе анализа алгоритма их проверки. Также исследование программ применяется с целью получения некоторых закрытых сведений о внутреннем устройстве программы — о [[Протокол передачи данных|протоколе]] [[Вычислительная сеть|сетевого]] обмена с сервером, аппаратным средством, [[ключ защиты|ключом защиты]] или о взаимодействии с другой программой. Ещё одна область применения — получение информации о способах экспортирования данных из многочисленных [[Проприетарное программное обеспечение|проприетарных]] форматов файлов<ref>Часто применяется, например, в отношении форматов, поддерживаемых [[Microsoft Office]].</ref>.

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

Одним из широко известных примеров обратной разработки является исследование [[BIOS]] [[Персональный компьютер|персонального компьютера]] [[IBM]], ставшее серьёзным шагом на пути развития производства IBM-совместимых компьютеров сторонними производителями.<ref>{{Cite web |url=http://wikipcpedia.com/wiki/getting-serious-the-pc-comes-of-age/reverse-engineering-%E2%80%93-compaq-phoenix-zenith/ |title=502 Bad Gateway<!-- Заголовок добавлен ботом --> |accessdate=2016-01-12 |archiveurl=https://web.archive.org/web/20160329061135/http://wikipcpedia.com/wiki/getting-serious-the-pc-comes-of-age/reverse-engineering-%e2%80%93-compaq-phoenix-zenith/ |archivedate=2016-03-29 |deadlink=yes }}</ref><ref>{{Cite web |url=http://www.oldcomputers.net/compaqi.html |title=Compaq I Portable computer<!-- Заголовок добавлен ботом --> |access-date=2016-01-12 |archive-date=2020-11-09 |archive-url=https://web.archive.org/web/20201109033002/http://oldcomputers.net/compaqi.html |deadlink=no }}</ref> Создание [[Сервер (программное обеспечение)|сервера]] [[Samba]]<ref>{{Cite web |url=https://www.samba.org/samba/docs/myths_about_samba.html |title=Myths About Samba |access-date=2016-01-12 |archive-date=2017-10-20 |archive-url=https://web.archive.org/web/20171020045502/https://www.samba.org/samba/docs/myths_about_samba.html |deadlink=no }}</ref><ref>{{Cite web |url=http://www.linfo.org/network.html |title=Computer Network Definition |access-date=2016-01-14 |archive-date=2015-11-27 |archive-url=https://web.archive.org/web/20151127122541/http://www.linfo.org/network.html |deadlink=no }}</ref> (входящего в состав ОС [[GNU/Linux]] и работающего с серверами на базе ОС [[Windows]]) также потребовало обратной разработки используемого [[Microsoft]] [[Протокол передачи данных|протокола]] [[SMB]]. <!-- Создание многих [[ICQ]]-клиентов также потребовало обратной разработки [[Протокол передачи данных|протокола]] ICQ.{{нет АИ|20|08|2009}}-->

Обратная разработка программного обеспечения производится с помощью следующих методик.
# Анализ обмена данными, наиболее распространённый в обратной разработке протоколов обмена данными, который производится с помощью [[:en:Bus analyzer|анализатора шины]] и [[Анализатор трафика|пакетного сниффера]] для прослушивания [[шина (компьютер)|шины компьютера]] и [[компьютерная сеть|компьютерной сети]] соответственно.
# [[Дизассемблер|Дизассемблирование]] [[машинный код|машинного кода]] программы для получения её [[Исходный код|листинга]] на [[язык ассемблера|языке ассемблера]]. Этот способ работает на любой [[Компьютерная программа|компьютерной программе]], но требует достаточно много времени, особенно для неспециалиста.
# [[Декомпилятор|Декомпиляция]] машинного или [[байт-код]]а программы для создания исходного кода на некотором [[Язык программирования высокого уровня|языке программирования высокого уровня]].

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

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

== Другие сферы применения обратной разработки ==
{{достоверность}}
{{достоверность}}


Строка 19: Строка 36:
* Советский лодочный мотор «[[Москва (лодочный мотор)|Москва]]» был практически полной копией очень удачного американского мотора ''ScottAtWater''.
* Советский лодочный мотор «[[Москва (лодочный мотор)|Москва]]» был практически полной копией очень удачного американского мотора ''ScottAtWater''.
* Пример неудачного выбора прототипа для обратной разработки — советский лодочный мотор «[[Вихрь (лодочный мотор)|Вихрь]]», копия немецкого мотора ''Koening''.
* Пример неудачного выбора прототипа для обратной разработки — советский лодочный мотор «[[Вихрь (лодочный мотор)|Вихрь]]», копия немецкого мотора ''Koening''.
* Практически все бензиновые двигатели, установленные на мотоблоках, генераторах и других малогабаритных машинах китайского производства — копии японских моторов [[Honda GX]]{{Нет АИ|25|5|2024}}.
* Советский самолёт [[Ту-4]], за исключением двигателей, является почти точной копией американского [[Boeing B-29 Superfortress]].
* Знаменитые японские АКПП Aisin A130 и A140 — несколько доработанные нелицензионные копии АКПП Chrysler 1940—1950-х годов, которые производились американской компанией на заводах в Японии после Второй мировой войны{{Нет АИ|25|5|2024}}.
* Практически все бензиновые двигатели, установленные на мотоблоках, генераторах и других малогабаритных машинах китайского производства — копии японских моторов [[Honda GX]].
* Первые китайские внедорожники Admiral{{Нет АИ|25|5|2024}}, [[Great Wall Motors|Great Wall]] и другие — нелицензионные практически точные копии внедорожника [[Toyota Hilux Surf]].
* Знаменитые японские АКПП Aisin A130 и A140 — несколько доработанные нелицензионные копии АКПП Chrysler 1940—1950-х годов, которые производились американской компанией на заводах в Японии после Второй мировой войны.

* Первые китайские внедорожники Admiral, [[Great Wall Motors|Great Wall]] и другие — нелицензионные практически точные копии внедорожника [[Toyota Hilux Surf]].
Часто при реверс-инжиниринге все таки приходится вносить изменения в конструкцию, что может быть связано с отличиями технологии производства или устранением недостатков оригинала. Например, двигатели Honda GX имеют алюминиевый безгильзовый цилиндр с никосилевым напылением. Китайские клоны имеют чугунную гильзу. {{Нет АИ|25|5|2024}}Трехступенчатые АККП Chrysler имеют достаточно сложный цельнокованный промежуточный вал, тогда как в их клоне Aisin A130 этот элемент собран из трех деталей и получился значительно более технологичным чем оригинальный{{Нет АИ|25|5|2024}}. Лодочный мотор «Вихрь» хоть и скопирован с Koening, но конструкция целого ряда его элементов сильно упрощена.

Реверс-инжениринг в современном машиностроении напрямую связан с развитием технологии трехмерного сканирования объектов. Благодаря трехмерному сканеру весь объём данных о геометрии изделия может быть представлен в виде STL файла. Дальнейшее построение конструкторской параметрической модели осуществляется на основе STL в специализированных САПР. В конечном итоге применение 3D сканеров позволяет получать конструкторскую документацию, необходимую для изготовления копии изначального образца. Часто (например при копировании различных несложных запчастей) конструкторская документация и вовсе не разрабатывается, а полученный результат сканирования сразу же загружается в обрабатывающий центр.


=== Электроника ===
=== Электроника ===
Обратная разработка электронных устройств появилась ещё на заре радиотехники. В 1920—1930 годах различные фирмы копировали друг у друга [[радиолампы]] и [[Схемотехника|схемотехнические]] решения их применения. Именно с обратной разработкой, а не с лицензионным производством, связано то, что радиолампы одного назначения почти всех производителей оказались унифицированными и взаимозаменяемыми. Например европейская лампа EL95 клон более ранней американской лампы 6KA5. Есть и обратные примеры: американские 6CA5 и KT88 — клоны европейской лампы [[EL84|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). Чёрно-белые телевизоры в 1960—1970-х годах строились фактически двум схемам: одна для совсем простых аппаратов с малыми размерами экрана без АПЧГ и АПЧиФ строчной развёртки (по типу советских телевизоров УНТ-35), вторая схема предназначалась для аппаратов на кинескопах с углом отклонения луча 110°, АПЧГ, АПЧиФ (советские УНТ-59, большинство телевизоров европейских фирм){{нет АИ|28|05|2022}}.
Обратная разработка электронных устройств появилась ещё на заре радиотехники. В 1920—1930 годах различные фирмы копировали друг у друга [[радиолампы]] и [[Схемотехника|схемотехнические]] решения их применения. Именно с обратной разработкой, а не с лицензионным производством, связано то, что радиолампы одного назначения почти всех производителей оказались унифицированными и взаимозаменяемыми. Например европейская лампа EL95 клон более ранней американской лампы 6KA5. Есть и обратные примеры: американские 6CA5 и KT88{{Нет АИ|25|5|2024}} и советский [[6П14П]] — клоны европейской лампы [[EL84|EL34]]. То же самое относится и к советским радиолампам, многие из которых являются клонами американских ламп, получаемых по ленд-лизу (например 6Ж4, 6П9) или немецких из трофейной аппаратуры (6Г2, ГУ50){{Нет АИ|25|5|2024}}. Вместе с лампами копировались и типовые схемы их включения, то есть фактически схемы блоков радиоаппаратуры. Поэтому именно благодаря обратной разработке ламповая эпоха охарактеризовалась по сути переходом к типовому проектированию в электронике. В частности, все выпускаемые в мире бытовые [[Супергетеродинный радиоприёмник|приемники-супергетеродины]] строились фактически по трём схемам, которая определялась лампой смесительно-гетеродинного узла: [[двойной триод]], триод-[[гептод]] или [[пентагрид]]. То же самое относилось и к усилителям низкой частоты. Существовало не более десятка типовых схем их построения в зависимости от выходной мощности: маломощные однотактные на комбинированной лампе типа 6Ф3П, маломощные однотактные с темброблоком на двойном триоде (типа 6Н1П) и выходном пентоде (6П14П, EL84) или лучевом тетроде (6П3С, EL34), двухтактные с триодным фазоинвертором (6Н1П + 2х6П14П), двухтактные многокаскадные (6Н8П + 2х6П6С + ГУ50). Чёрно-белые телевизоры в 1960—1970-х годах строились фактически двум схемам: одна для совсем простых аппаратов с малыми размерами экрана без АПЧГ и АПЧиФ строчной развёртки (по типу советских телевизоров УНТ-35), вторая схема предназначалась для аппаратов на кинескопах с углом отклонения луча 110°, АПЧГ, АПЧиФ (советские УНТ-59, большинство телевизоров европейских фирм){{нет АИ|28|05|2022}}.


* [[Ну, погоди! (электронная игра)|Советская игра «Ну, погоди!»]] («Электроника ИМ-02») является нелицензионной копией японской игры Nintendo EG-26.
* [[Ну, погоди! (электронная игра)|Советская игра «Ну, погоди!»]] («Электроника ИМ-02») является нелицензионной копией японской игры Nintendo EG-26.
* Копирование различных электронных блоков без фактической разработки. Известно<ref>{{Cite web |url=http://qrz.ru/reference/kozak/adv/advh0.shtml |title=Номенклатура и аналоги отечественных микросхем<!-- Заголовок добавлен ботом --> |access-date=2010-04-17 |archive-date=2010-05-27 |archive-url=https://web.archive.org/web/20100527231856/http://qrz.ru/reference/kozak/adv/advh0.shtml |deadlink=no }}</ref>, что многие элементы, в частности, [[Транзисторно-транзисторная логика|ТТЛ]] различных компаний и [[Национальный стандарт|национальных стандартов]], взаимозаменяемы. Например, американская серия интегральных схем [[Микросхемы серии 7400|7400]] и её советский аналог [[К(Р)155]].
* Копирование различных электронных блоков без фактической разработки. Известно<ref>{{Cite web |url=http://qrz.ru/reference/kozak/adv/advh0.shtml |title=Номенклатура и аналоги отечественных микросхем<!-- Заголовок добавлен ботом --> |access-date=2010-04-17 |archive-date=2010-05-27 |archive-url=https://web.archive.org/web/20100527231856/http://qrz.ru/reference/kozak/adv/advh0.shtml |deadlink=no }}</ref>, что многие элементы, в частности, [[Транзисторно-транзисторная логика|ТТЛ]] различных компаний и [[Национальный стандарт|национальных стандартов]], взаимозаменяемы. Например, американская серия интегральных схем [[Микросхемы серии 7400|7400]] и её советский аналог [[К(Р)155]].<!--
* Процессор [[Am386]] компании [[AMD]] создан ради совместимости с чипом [[Intel 80386|80386]] фирмы [[Intel]] и в пользу экономической целесообразности.{{нет АИ|20|08|2009}}
* Процессор [[Am386]] компании [[AMD]] создан ради совместимости с чипом [[Intel 80386|80386]] фирмы [[Intel]] и в пользу экономической целесообразности.{{нет АИ|20|08|2009}}
* Процессоры [[Super386]] 38600SX и 38600DX компании [[Chips and Technologies]] созданы методом ОР.{{нет АИ|20|08|2009}}
* Процессоры [[Super386]] 38600SX и 38600DX компании [[Chips and Technologies]] созданы методом ОР.{{нет АИ|20|08|2009}}-->

=== Программное обеспечение ===
Исследование и обратная разработка программ обычно осуществляются с целью дальнейшей модификации, копирования, или, например, написания [[Кейген|генераторов ключей]], алгоритм работы которых получен на основе анализа алгоритма их проверки. Также исследование программ применяется с целью получения некоторых закрытых сведений о внутреннем устройстве программы — о [[Протокол передачи данных|протоколе]] [[Вычислительная сеть|сетевого]] обмена с сервером, аппаратным средством, [[ключ защиты|ключом защиты]] или о взаимодействии с другой программой. Ещё одна область применения — получение информации о способах экспортирования данных из многочисленных [[Проприетарное программное обеспечение|проприетарных]] форматов файлов<ref>Часто применяется, например, в отношении форматов, поддерживаемых [[Microsoft Office]].</ref>.

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

Одним из широко известных примеров обратной разработки является исследование [[BIOS]] [[Персональный компьютер|персонального компьютера]] [[IBM]], ставшее серьёзным шагом на пути развития производства IBM-совместимых компьютеров сторонними производителями.<ref>{{Cite web |url=http://wikipcpedia.com/wiki/getting-serious-the-pc-comes-of-age/reverse-engineering-%E2%80%93-compaq-phoenix-zenith/ |title=502 Bad Gateway<!-- Заголовок добавлен ботом --> |accessdate=2016-01-12 |archiveurl=https://web.archive.org/web/20160329061135/http://wikipcpedia.com/wiki/getting-serious-the-pc-comes-of-age/reverse-engineering-%e2%80%93-compaq-phoenix-zenith/ |archivedate=2016-03-29 |deadlink=yes }}</ref><ref>{{Cite web |url=http://www.oldcomputers.net/compaqi.html |title=Compaq I Portable computer<!-- Заголовок добавлен ботом --> |access-date=2016-01-12 |archive-date=2020-11-09 |archive-url=https://web.archive.org/web/20201109033002/http://oldcomputers.net/compaqi.html |deadlink=no }}</ref> Создание [[Сервер (программное обеспечение)|сервера]] [[Samba]]<ref>{{Cite web |url=https://www.samba.org/samba/docs/myths_about_samba.html |title=Myths About Samba |access-date=2016-01-12 |archive-date=2017-10-20 |archive-url=https://web.archive.org/web/20171020045502/https://www.samba.org/samba/docs/myths_about_samba.html |deadlink=no }}</ref><ref>{{Cite web |url=http://www.linfo.org/network.html |title=Computer Network Definition |access-date=2016-01-14 |archive-date=2015-11-27 |archive-url=https://web.archive.org/web/20151127122541/http://www.linfo.org/network.html |deadlink=no }}</ref> (входящего в состав ОС [[GNU/Linux]] и работающего с серверами на базе ОС [[Windows]]) также потребовало обратной разработки используемого [[Microsoft]] [[Протокол передачи данных|протокола]] [[SMB]]. Создание многих [[ICQ]]-клиентов также потребовало обратной разработки [[Протокол передачи данных|протокола]] ICQ.{{нет АИ|20|08|2009}}

Обратная разработка программного обеспечения производится с помощью следующих методик.
# Анализ обмена данными, наиболее распространённый в обратной разработке протоколов обмена данными, который производится с помощью [[:en:Bus analyzer|анализатора шины]] и [[Анализатор трафика|пакетного сниффера]] для прослушивания [[шина (компьютер)|шины компьютера]] и [[компьютерная сеть|компьютерной сети]] соответственно.
# [[Дизассемблер|Дизассемблирование]] [[машинный код|машинного кода]] программы для получения её [[Исходный код|листинга]] на [[язык ассемблера|языке ассемблера]]. Этот способ работает на любой [[Компьютерная программа|компьютерной программе]], но требует достаточно много времени, особенно для неспециалиста.
# [[Декомпилятор|Декомпиляция]] машинного или [[байт-код]]а программы для создания исходного кода на некотором [[Язык программирования высокого уровня|языке программирования высокого уровня]].

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

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


=== Промышленность ===
=== Промышленность ===
Строка 56: Строка 59:


=== Военная промышленность ===
=== Военная промышленность ===
[[Файл:Jerrycan.JPG|thumb|«Jerry cans» — канистры скопированные американцами у немцев]]
[[Файл:Jerrycan.JPG|thumb|«Jerry cans» — канистры, скопированные американцами у немцев]]
Самыми{{Нет АИ|26|11|2013}} известными фактами обратной разработки являлись:
Самыми{{Нет АИ|26|11|2013}} известными фактами обратной разработки являлись:


* Немецкие [[канистра|канистры]] для бензина — в британских и американских войсках заметили, что немцы имели очень удобные канистры. Они скопировали эти канистры, и те получили название ''Jerry cans'' (от слова «gerrys» — от «Germans»)<ref>[http://www.americanheritage.com/articles/magazine/it/1987/2/1987_2_62.shtml AmericanHeritage.com / The Little Can That Could<!-- Заголовок добавлен ботом -->] {{webarchive|url=https://web.archive.org/web/20070524182038/http://www.americanheritage.com/articles/magazine/it/1987/2/1987_2_62.shtml |date=2007-05-24 }}</ref>.
* Немецкие [[канистра|канистры]] для бензина — в британских и американских войсках заметили, что немцы имели очень удобные канистры. Они скопировали эти канистры, и те получили название ''Jerry cans'' (от слова «gerrys» — от «Germans»)<ref>[http://www.americanheritage.com/articles/magazine/it/1987/2/1987_2_62.shtml AmericanHeritage.com / The Little Can That Could<!-- Заголовок добавлен ботом -->] {{webarchive|url=https://web.archive.org/web/20070524182038/http://www.americanheritage.com/articles/magazine/it/1987/2/1987_2_62.shtml |date=2007-05-24 }}</ref>.
* Туполев [[Ту-4]] — несколько американских бомбардировщиков [[Boeing B-29 Superfortress|B-29]] при осуществлении вылетов в [[Япония|Японию]] совершили вынужденную посадку в [[СССР]]. Советские военные, не имевшие подобных стратегических бомбардировщиков, решили скопировать B-29. Через несколько лет они разработали Ту-4, практически его полную копию<ref>{{Cite web |url=http://www.tupolev.ru/Russian/Show.asp?SectionID=135&Page=2 |title=ОАО «Туполев» — 68 (Ту-4)<!-- Заголовок добавлен ботом --> |accessdate=2010-03-29 |archiveurl=https://web.archive.org/web/20071024100809/http://www.tupolev.ru/Russian/Show.asp?SectionID=135&Page=2 |archivedate=2007-10-24 |deadlink=yes }}</ref>. В то же время двигатели, вооружение и радиоэлектронное оборудование Ту-4 не было копиями соответствующих систем В-29.
* Туполев [[Ту-4]] — несколько американских бомбардировщиков [[Boeing B-29 Superfortress|B-29]] при осуществлении вылетов в [[Япония|Японию]] совершили вынужденную посадку в [[СССР]]. Советские военные, не имевшие подобных стратегических бомбардировщиков, решили скопировать B-29. Через несколько лет они разработали Ту-4, практически его полную копию<ref>{{Cite web |url=http://www.tupolev.ru/Russian/Show.asp?SectionID=135&Page=2 |title=ОАО «Туполев» — 68 (Ту-4)<!-- Заголовок добавлен ботом --> |accessdate=2010-03-29 |archiveurl=https://web.archive.org/web/20071024100809/http://www.tupolev.ru/Russian/Show.asp?SectionID=135&Page=2 |archivedate=2007-10-24 |deadlink=yes }}</ref>. В то же время двигатели, вооружение и радиоэлектронное оборудование Ту-4 не было копиями соответствующих систем В-29.
* Тепловоз [[ТЭ1]] — в 1945 году тепловоз [[Да (тепловоз)|RSD-1 (Д<sup>а</sup>)]] (поставлялся в СССР по [[ленд-лиз]]у) привёл литерный поезд Сталина на [[Потсдамская конференция|Потсдамскую конференцию]]. Сталин высоко оценил данный локомотив, поэтому в 1947 году начался выпуск советской копии американского тепловоза — ТЭ1. Несмотря на некоторые отличия в размерах и отдельном оборудовании, ТЭ1 оказался практически идентичен Д<sup>а</sup><ref>{{книга|автор=[[Раков, Виталий Александрович|Раков В. А.]] |заглавие=Локомотивы отечественных железных дорог 1845—1955 |оригинал= |ссылка=https://web.archive.org/web/20140524061818/http://railbook.net/?cat=14&mod=books |издание=2-е, переработанное и дополненное |место=М. |издательство=[[Транспорт (издательство)|Транспорт]] |год=1995 |том= |страницы=374 |isbn=5-277-00821-7}} {{Cite web |url=http://www.railbook.net/?mod=books&cat=14 |title=Архивированная копия |accessdate=2012-08-03 |archive-date=2014-05-24 |archive-url=https://web.archive.org/web/20140524061818/http://www.railbook.net/?mod=books&cat=14 |dead-url=yes }}</ref>. Все нынешние российские маневровые тепловозы — потомки американского тепловоза.
* Тепловоз [[ТЭ1]] — в 1945 году тепловоз [[Да (тепловоз)|RSD-1 (Д<sup>а</sup>)]] (поставлялся в СССР по [[ленд-лиз]]у) привёл литерный поезд Сталина на [[Потсдамская конференция|Потсдамскую конференцию]]. Сталин высоко оценил данный локомотив, поэтому в 1947 году начался выпуск советской копии американского тепловоза — ТЭ1. Несмотря на некоторые отличия в размерах и отдельном оборудовании, ТЭ1 оказался практически идентичен Д<sup>а</sup><ref>{{книга |автор=[[Раков, Виталий Александрович|Раков В. А.]] |заглавие=Локомотивы отечественных железных дорог 1845—1955 |оригинал= |ссылка=http://railbook.net/?cat=14&mod=books |издание=2-е, переработанное и дополненное |место=М. |издательство=[[Транспорт (издательство)|Транспорт]] |год=1995 |том= |страницы=374 |isbn=5-277-00821-7 |archive-date=2014-05-24 |archive-url=https://web.archive.org/web/20140524061818/http://railbook.net/?cat=14&mod=books }} {{Cite web |url=http://www.railbook.net/?mod=books&cat=14 |title=Архивированная копия |accessdate=2012-08-03 |archive-date=2014-05-24 |archive-url=https://web.archive.org/web/20140524061818/http://www.railbook.net/?mod=books&cat=14 |dead-url=yes }}</ref>. Все нынешние российские маневровые тепловозы — потомки американского тепловоза.
* [[Миномёт]]ы — немцы в военные годы успешно скопировали советские трофейные [[120-мм полковой миномёт обр. 1938 г.|120 мм миномёты]], которые взяли себе на вооружение под именем [[Granatwerfer 42]].
* [[Миномёт]]ы — немцы в военные годы успешно скопировали советские трофейные [[120-мм полковой миномёт обр. 1938 г.|120 мм миномёты]], которые взяли себе на вооружение под именем [[Granatwerfer 42]].
* [[Автомат Калашникова]] — недавно руководство ОАО «Ижмаш» заявило, что около половины всех [[АК]] в мире — «контрафактные» (то есть, производимые без лицензии и передачи технологий), из-за чего Россия [[Упущенная выгода|недополучает]] около миллиарда долларов в год. В то же время, патентные ограничения (если таковые имелись) на технологии и технические решения утратили свою силу<ref>{{Cite web |url=http://www.rupto.ru/activities/objects |title=cрок действия патента на изобретение — 20 лет, на полезную модель — 10 лет, на промышленный образец — не более 25 лет |accessdate=2016-05-26 |archiveurl=https://web.archive.org/web/20160515000807/http://www.rupto.ru/activities/objects |archivedate=2016-05-15 |deadlink=yes }}</ref>.<!-- 2015 разве это много лет назад? Год принятия на вооружение АК/АКС — 1949, а не 2015-й-->
* [[Автомат Калашникова]] — недавно руководство ОАО «Ижмаш» заявило, что около половины всех [[АК]] в мире — «контрафактные» (то есть, производимые без лицензии и передачи технологий), из-за чего Россия [[Упущенная выгода|недополучает]] около миллиарда долларов в год. В то же время, патентные ограничения (если таковые имелись) на технологии и технические решения утратили свою силу<ref>{{Cite web |url=http://www.rupto.ru/activities/objects |title=cрок действия патента на изобретение — 20 лет, на полезную модель — 10 лет, на промышленный образец — не более 25 лет |accessdate=2016-05-26 |archiveurl=https://web.archive.org/web/20160515000807/http://www.rupto.ru/activities/objects |archivedate=2016-05-15 |deadlink=yes }}</ref>.<!-- 2015 разве это много лет назад? Год принятия на вооружение АК/АКС — 1949, а не 2015-й-->
Строка 76: Строка 79:
* [[Radare2]]
* [[Radare2]]
* [[s:Гражданский кодекс РФ/Глава 70#Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ|Гражданский кодекс РФ / Часть 4 / Раздел VII. Права на результаты интеллектуальной деятельности и средства индивидуализации / Глава 70. Авторское право / Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ]].
* [[s:Гражданский кодекс РФ/Глава 70#Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ|Гражданский кодекс РФ / Часть 4 / Раздел VII. Права на результаты интеллектуальной деятельности и средства индивидуализации / Глава 70. Авторское право / Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ]].

== Литература ==
* Юричев Д., [http://yurichev.com/writings/RE_for_beginners-ru.pdf Введение в reverse engineering для начинающих]


== Примечания ==
== Примечания ==
{{примечания}}
{{примечания}}

== Литература ==
* Юричев Д., [http://yurichev.com/writings/RE_for_beginners-ru.pdf Введение в reverse engineering для начинающих]


== Ссылки ==
== Ссылки ==
* [http://www.3dnews.ru/editorial/amd-history/index2.htm AMD: 30 лет гонки за лидером]
* [http://www.3dnews.ru/editorial/amd-history/index2.htm AMD: 30 лет гонки за лидером]
* К.В. Ахтырченко, Т.П. Сорокваша. [http://www.citforum.ru/SE/project/isr/#_ftn1#_ftn1 Методы и технологии реинжиниринга ИС]
* К. В. Ахтырченко, Т. П. Сорокваша. [http://www.citforum.ru/SE/project/isr/#_ftn1#_ftn1 Методы и технологии реинжиниринга ИС]


{{вс}}
{{вс}}

Текущая версия от 21:20, 25 мая 2024

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

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

Обратная разработка на службе государств

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

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

Программное обеспечение

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

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

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

Одним из широко известных примеров обратной разработки является исследование BIOS персонального компьютера IBM, ставшее серьёзным шагом на пути развития производства IBM-совместимых компьютеров сторонними производителями.[5][6] Создание сервера Samba[7][8] (входящего в состав ОС GNU/Linux и работающего с серверами на базе ОС Windows) также потребовало обратной разработки используемого Microsoft протокола SMB.

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

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

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

Базы данных

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

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

Другие сферы применения обратной разработки

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

Машиностроение, автомобилестроение, авиация

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

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

Примеры:

  • Советский грузовик АМО-3 был практически полной копией американского грузовика «AutoCar-SA».
  • Советский лодочный мотор «Москва» был практически полной копией очень удачного американского мотора ScottAtWater.
  • Пример неудачного выбора прототипа для обратной разработки — советский лодочный мотор «Вихрь», копия немецкого мотора Koening.
  • Практически все бензиновые двигатели, установленные на мотоблоках, генераторах и других малогабаритных машинах китайского производства — копии японских моторов Honda GX[источник не указан 80 дней].
  • Знаменитые японские АКПП Aisin A130 и A140 — несколько доработанные нелицензионные копии АКПП Chrysler 1940—1950-х годов, которые производились американской компанией на заводах в Японии после Второй мировой войны[источник не указан 80 дней].
  • Первые китайские внедорожники Admiral[источник не указан 80 дней], Great Wall и другие — нелицензионные практически точные копии внедорожника Toyota Hilux Surf.

Часто при реверс-инжиниринге все таки приходится вносить изменения в конструкцию, что может быть связано с отличиями технологии производства или устранением недостатков оригинала. Например, двигатели Honda GX имеют алюминиевый безгильзовый цилиндр с никосилевым напылением. Китайские клоны имеют чугунную гильзу. [источник не указан 80 дней]Трехступенчатые АККП Chrysler имеют достаточно сложный цельнокованный промежуточный вал, тогда как в их клоне Aisin A130 этот элемент собран из трех деталей и получился значительно более технологичным чем оригинальный[источник не указан 80 дней]. Лодочный мотор «Вихрь» хоть и скопирован с Koening, но конструкция целого ряда его элементов сильно упрощена.

Реверс-инжениринг в современном машиностроении напрямую связан с развитием технологии трехмерного сканирования объектов. Благодаря трехмерному сканеру весь объём данных о геометрии изделия может быть представлен в виде STL файла. Дальнейшее построение конструкторской параметрической модели осуществляется на основе STL в специализированных САПР. В конечном итоге применение 3D сканеров позволяет получать конструкторскую документацию, необходимую для изготовления копии изначального образца. Часто (например при копировании различных несложных запчастей) конструкторская документация и вовсе не разрабатывается, а полученный результат сканирования сразу же загружается в обрабатывающий центр.

Электроника

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

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

  • Советская игра «Ну, погоди!» («Электроника ИМ-02») является нелицензионной копией японской игры Nintendo EG-26.
  • Копирование различных электронных блоков без фактической разработки. Известно[9], что многие элементы, в частности, ТТЛ различных компаний и национальных стандартов, взаимозаменяемы. Например, американская серия интегральных схем 7400 и её советский аналог К(Р)155.

Промышленность

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

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

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

Военная промышленность

[править | править код]
«Jerry cans» — канистры, скопированные американцами у немцев

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

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

Примечания

[править | править код]
  1. Иск SAS против World Programming. Дата обращения: 16 декабря 2014. Архивировано 16 декабря 2014 года.
  2. s:Гражданский кодекс РФ/Глава 70#Статья 1280. Право пользователя программы для ЭВМ и базы данных
  3. Заседании Правительственной комиссии по импортозамещению Архивная копия от 15 июня 2017 на Wayback Machine // Правительство России
  4. Часто применяется, например, в отношении форматов, поддерживаемых Microsoft Office.
  5. 502 Bad Gateway. Дата обращения: 12 января 2016. Архивировано из оригинала 29 марта 2016 года.
  6. Compaq I Portable computer. Дата обращения: 12 января 2016. Архивировано 9 ноября 2020 года.
  7. Myths About Samba. Дата обращения: 12 января 2016. Архивировано 20 октября 2017 года.
  8. Computer Network Definition. Дата обращения: 14 января 2016. Архивировано 27 ноября 2015 года.
  9. Номенклатура и аналоги отечественных микросхем. Дата обращения: 17 апреля 2010. Архивировано 27 мая 2010 года.
  10. AmericanHeritage.com / The Little Can That Could Архивировано 24 мая 2007 года.
  11. ОАО «Туполев» — 68 (Ту-4). Дата обращения: 29 марта 2010. Архивировано из оригинала 24 октября 2007 года.
  12. Раков В. А. Локомотивы отечественных железных дорог 1845—1955. — 2-е, переработанное и дополненное. — М.: Транспорт, 1995. — С. 374. — ISBN 5-277-00821-7. Архивировано 24 мая 2014 года. Архивированная копия. Дата обращения: 3 августа 2012. Архивировано из оригинала 24 мая 2014 года.
  13. cрок действия патента на изобретение — 20 лет, на полезную модель — 10 лет, на промышленный образец — не более 25 лет. Дата обращения: 26 мая 2016. Архивировано из оригинала 15 мая 2016 года.

Литература

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