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

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

Если же взять обратный инжиниринг на уровне государств, то это могут быть уже «шпионские страсти», когда разведчик достает и исследует устройство, что бы нанести вред государству- конкуренту или же создать более универсальный продукт, например в военной области.

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

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

Электроника

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

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

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

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

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

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

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

1. Анализ обмена данными, наиболее распространённый в обратной разработке протоколов обмена данными,который производится с помощью анализатора шины и пакетного сниффера для прослушивания шины компьютера и компьютерной сети соответственно.

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

3. Декомпиляция с помощью декомпилятора — процесс создания исходного кода на некотором языкепрограммирования высокого уровня.

Базы данных

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

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

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

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

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

· Немецкие канистры для бензина — британские и американские войска заметили, что немцы имели оченьудобные канистры. Они скопировали эти канистры, и те получили название Jerry cans (от слова «gerrys» — от«Germans»).

· Туполев Ту-4 — некоторое количество американских бомбардировщиков B-29 при совершении вылетов вЯпонию были вынуждены садиться в СССР. Советские военные, которые не имели подобных стратегическихбомбардировщиков, решили скопировать B-29. Через несколько лет они разработали Ту-4, практическиполную копию.

ПО

Для анализа исходного кода

С широким применением SADT) связано возникновение основных идей популярного ныне понятия - BPR(бизнес-процесс реинжиниринг).

Существуют программы, которые предоставляют как возможность восстановления (обратный, reverse) поисходному коду общего системного проекта (классы, связь между ними и т.п.), так и прямой генерацииисходного кода на основе созданного проекта (функциональных блоков бизнес-процесса):

· Rational Rose (фирмы Rational Software)

· Visual Paradigma

· StarUML

2. Критерии качества систем.

3. Нежелательные элементы при проведении анализа на этапе логического проектирования.

БИЛЕТ №____16____

Наши рекомендации