Исследование программ

Исследование программ

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

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

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

Содержание

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

Электроника

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

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

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

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

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

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

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

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

Базы данных

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

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

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

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

Jerry cans

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

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

ПО

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

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

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

Реинжиниринг бизнес-процессов

Примечания

  1. Часто применяется, например, в отношении форматов, поддерживаемых Microsoft Office.

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Исследование программ" в других словарях:

  • исследование лонгитюдное — (исследование лонгитюдиональное) длительное и систематическое изучение одних и тех же испытуемых, позволяющее определять диапазон возрастной и индивидуальной изменчивости фаз жизненного цикла человека; изучение определенных индивидуальных… …   Большая психологическая энциклопедия

  • Исследование рынка — Маркетинг Основные понятия Продукт • Цена Дистрибуция • Услуга • Розница Управление брендом (англ.) Экаунт маркетинг • Этика (англ.) Эффективность ( …   Википедия

  • Исследование общения в этнопсихологии — Активное исследование этнопсихологического О. началось в психологии во 2 й пол. XIX в. В это время в Германии в журнале «Die Zeitschrift fьr Vцlkerpsychologie und Sprachwissenschaft», основанном М. Лацарусом и Х. Штейнталем, публиковались данные… …   Психология общения. Энциклопедический словарь

  • ИССЛЕДОВАНИЕ ТОВАРНОГО РЫНКА — качественный и количественный анализ политических, экономических, научно технических, социальных и иных факторов, оказывающих непосредственное или косвенное влияние на объем и эффективность продажи товара на конкретном рынке или сегменте рынка, в …   Большой экономический словарь

  • ИССЛЕДОВАНИЕ ТОВАРНОГО РЫНКА — (product market re earch) количественный и качественный анализ экономических, научно технических, социальных, политических и иных факторов, оказывающих непосредственное или косвенное влияние на объем, динамику и эффективность продажи товара на… …   Внешнеэкономический толковый словарь

  • Оценка программ — (англ. program/policy evaluation) аналитический инструмент или процедура, предназначенная для измерения прямых эффектов, результативности и долгосрочных последствий реализации государственных программ, отраслевых политик, ассессмента… …   Википедия

  • КОСМОСА ИССЛЕДОВАНИЕ И ИСПОЛЬЗОВАНИЕ — экспериментальное исследование и практическое использование пространства за пределами земной атмосферы при помощи пилотируемых космических кораблей (КК), искусственных спутников Земли (ИСЗ) и автоматических межпланетных станций (АМС). В понятие… …   Энциклопедия Кольера

  • Оценка государственной политики и программ на рынке труда — Основная статья: Оценка программ Содержание 1 Оценка государственной политики и программ на рынке труда …   Википедия

  • Учебники и учебные пособия по дисциплине "Оценка программ" — Основная статья: Оценка программ Учебники Учебники и учебные пособия по дисциплине «Оценка программ». Статья представляет собой обзор основных учебников и учебных пособий по дисциплине «Оценка программ и политик», изданные на английском и русском …   Википедия

  • Фонд региональных социальных программ «Наше будущее» — Тип Фонд Год основания 2007 Основатели …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»