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

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

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

Содержание

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

Электроника

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

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

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

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

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

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

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

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

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

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

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

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

См. также

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home