Обратный инжиниринг – это анализ современного продукта, в котором исследуются детали и связь между ними и создание нового продукта из ранее исследуемого на основе последних современных технологий.
Особая роль принадлежит программным продуктам, операционным системам, так как с развитием Интернета появилась возможность более быстрого анализа программного продукта по поводу, например конфликтов его с другими программами, недоработок с одной стороны, а с другой – возможность анализа вирусных программ и их блокирования или уничтожения.
Если же взять обратный инжиниринг на уровне государств, то это могут быть уже «шпионские страсти», когда разведчик достает и исследует устройство, что бы нанести вред государству- конкуренту или же создать более универсальный продукт, например в военной области.
Ярким примером обратного инжиниринга есть давняя тяжба с судами между фирмами 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____