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

Материал из Anticopyright

Перейти к: навигация, поиск

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

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

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

Содержание

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

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

Копирование различных электронных блоков без фактической разработки. Известно, что очень большая часть советской цифровой электроники копировалась. Например, американская серия интегральных схем 74 и её советский аналог К(Р)155.

Ешё один пример обратной разработки — создание компанией AMD процессора Am386 на базе Intel 80386.

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

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

С развитием Интернета исследуются популярные операционные системы и программы на предмет обнаружения уязвимостей или Шаблон:Nobr дыр в них. В дальнейшем найденные дыры могут использоваться для получения несанкционированного доступа к удаленному компьютеру или компьютерной сети.

Известный случай исследования BIOS персонального компьютера IBM — это был один из серьезных шагов для развития производства IBM-совместимых компьютеров от сторонних производителей. Также, создание сервера Samba (входящего в состав ОС GNU/Linux, работающего с серверами на базе ОС Microsoft Windows) потребовало обратной разработки используемого Microsoft протокола SMB.

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

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

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

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

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

Самыми известными фактами обратной разработки во время второй мировой войны являлись:

  • Немецкие канистры для бензина — британские и американские войска заметили, что немцы имели канистры превосходного дизайна. Они скопировали эти канистры и те получили название Jerry cans (от слова «gerrys» — Germans).
  • Туполев Ту-4 — некоторое количество американских бомбардировщиков B-29(англ.) при совершении вылетов в Японию были вынуждены садиться в СССР. Советские военные, которые не имели подобных стратегических бомбардировщиков, решили скопировать B-29. Через несколько лет они разработали Ту-4, практически полную копию.

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

Иногда увлечение обратной разработкой бывает опасно для исследователя. Например, словенский студент Dejan Ornig, изучавший протоколы коммуникации полиции, такие, как TETRA получил 15 месяцев тюрьмы[2].

[править] Примечания

  1. Часто применяется, например, в отношении форматов, поддерживаемых Microsoft Office.
  2. Student Who Found Flaws in Police Communications Protocol Gets Prison Sentence

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

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

Эта статья содержит текст из русской Википедии . Оригинальная статья находится по адресу: Обратная разработка. Список первоначальных авторов статьи можно посмотреть в истории правок. Так же, как и в этом проекте, тексты, размещённые в Википедии, доступны на условиях GNU FDL.