Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Обратный инжиниринг , также называемый обратным инжинирингом или бэк-инжинирингом; похоже на научное исследование , с той лишь разницей, что научное исследование проводится в отношении природного явления . [1] : 3

Обратный инжиниринг применим в области вычислительной техники , машиностроения , электронной техники , программного обеспечения , химического машиностроения , [2] и системной биологии . [3]

Обзор [ править ]

Есть много причин для выполнения обратного инжиниринга в различных областях. Обратный инжиниринг берет свое начало в анализе оборудования для коммерческих или военных целей. [4] : 13 Однако процесс обратного проектирования как таковой не связан с созданием копии или каким-либо изменением артефакта. Это всего лишь анализ, позволяющий вывести конструктивные особенности продуктов с минимальными или отсутствующими дополнительными знаниями о процедурах, задействованных в их первоначальном производстве. [4] : 15

В некоторых случаях целью процесса обратного проектирования может быть просто повторная документация унаследованных систем . [4] : 15 [5] Даже если реконструированный продукт является продуктом конкурента, целью может быть не его копирование, а выполнение анализа конкурентов . [6] Обратный инжиниринг также может использоваться для создания совместимых продуктов, и, несмотря на некоторые узко разработанные законы США и Европейского Союза, законность использования конкретных методов обратного инжиниринга для этой цели горячо оспаривается в судах по всему миру на протяжении более двух десятилетий. [7]

Обратное проектирование программного обеспечения может помочь улучшить понимание лежащего в основе исходного кода для обслуживания и улучшения программного обеспечения, соответствующая информация может быть извлечена для принятия решения о разработке программного обеспечения, а графические представления кода могут предоставить альтернативные представления относительно исходного кода, которые могут помочь обнаружить и исправить программную ошибку или уязвимость. Часто по мере развития программного обеспечения его проектная информация и улучшения часто теряются со временем, но эту потерянную информацию обычно можно восстановить с помощью обратного проектирования. Этот процесс также может помочь сократить время, необходимое для понимания исходного кода, тем самым снижая общую стоимость разработки программного обеспечения. [8]Обратный инжиниринг также может помочь обнаружить и устранить вредоносный код, записанный в программное обеспечение, с помощью более совершенных детекторов кода. Реверсирование исходного кода может быть использовано для поиска альтернативных вариантов использования исходного кода, таких как обнаружение несанкционированной репликации исходного кода там, где он не предназначен для использования, или раскрытие того, как был создан продукт конкурента. [1] Этот процесс обычно используются для «взлома» программного обеспечения и средств массовой информации , чтобы удалить их защиту от копирования , [1] : 7 или создать , возможно , улучшенную копию или даже подделки , которые, как правило , цель конкурента или хакер . [1] : 8

Разработчики вредоносных программ часто используют методы обратного проектирования, чтобы найти уязвимости в операционной системе, чтобы создать компьютерный вирус, который может использовать уязвимости системы. [1] : 5 Обратный инжиниринг также используется в криптоанализе для поиска уязвимостей в подстановочном шифре , алгоритме с симметричным ключом или криптографии с открытым ключом . [1] : 6

Есть и другие применения обратного проектирования:

  • Интерфейс . Обратный инжиниринг может использоваться, когда системе требуется взаимодействовать с другой системой, и необходимо определить способ согласования обеих систем. Такие требования обычно существуют для взаимодействия .
  • Военный или коммерческий шпионаж . Узнав о последних исследованиях противника или конкурента путем кражи или захвата прототипа и его демонтажа, можно разработать аналогичный продукт или принять более эффективные меры противодействия ему.
  • Устаревание . Интегральные схемы часто разрабатываются на основе патентованных систем и строятся на производственных линиях, которые устаревают всего за несколько лет. Когда системы, использующие эти детали, больше не могут поддерживаться, поскольку детали больше не производятся, единственный способ включить функциональность в новую технологию - это перепроектировать существующий чип, а затем перепроектировать его с использованием новых инструментов, используя понимание, полученное как Руководство. Другая проблема, связанная с устареванием, которая может быть решена с помощью обратного проектирования, - это необходимость поддержки (обслуживания и поставки для непрерывной работы) существующих устаревших устройств, которые больше не поддерживаются производителем оригинального оборудования . Проблема особенно остро стоит в условиях боевых действий.
  • Анализ безопасности продукта . Это исследует, как работает продукт, определяя спецификации его компонентов и оценивая затраты, и выявляет потенциальные нарушения патентных прав . Также частью анализа безопасности продукта является сбор конфиденциальных данных путем разборки и анализа конструкции компонента системы. [9] Еще одним намерением может быть снятие защиты от копирования или обход ограничений доступа.
  • Конкурентная техническая разведка . Это необходимо для понимания того, что на самом деле делает конкурент, а не того, что он говорит о том, что делает.
  • Экономия денег . Выяснение того, на что способна электроника, может избавить пользователя от покупки отдельного продукта.
  • Перепрофилирование . Устаревшие объекты затем повторно используются другим, но полезным способом.

Общие ситуации [ править ]

Машины [ править ]

По мере того как автоматизированное проектирование (САПР) становится все более популярным, обратное проектирование стало жизнеспособным методом создания трехмерной виртуальной модели существующей физической части для использования в трехмерном САПР, CAM , CAE или другом программном обеспечении. [10] Процесс обратного проектирования включает в себя измерение объекта с последующей реконструкцией его как трехмерной модели. Физический объект можно измерить с помощью технологий 3D-сканирования, таких как КИМ , лазерные сканеры , дигитайзеры структурированного света или промышленное компьютерное сканирование (компьютерная томография). Только измеренные данные, обычно представленные в виде облака точек., не хватает топологической информации и конструктивного замысла. Первое можно восстановить, преобразовав облако точек в сетку с треугольными гранями. Обратное проектирование направлено на то, чтобы выйти за рамки создания такой сетки и восстановить замысел проекта в терминах простых аналитических поверхностей, где это необходимо (плоскости, цилиндры и т. Д.), А также, возможно, поверхностей NURBS для создания модели САПР с граничным представлением. Восстановление такой модели позволяет модифицировать конструкцию в соответствии с новыми требованиями, создавать производственный план и т. Д.

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

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

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

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

В 1990 году Институт инженеров по электротехнике и радиоэлектронике (IEEE) определил (программное обеспечение) обратный инжиниринг (SRE) как «процесс анализа предметной системы для идентификации компонентов системы и их взаимосвязей и создания представлений системы в другой форме или на более высоком уровне абстракции », в котором« предметная система »является конечным продуктом разработки программного обеспечения. Обратный инжиниринг - это только процесс проверки, и рассматриваемая программная система не модифицируется, иначе это было бы реинжинирингом или реструктуризацией. Обратный инжиниринг может выполняться на любой стадии цикла продукта, не обязательно на функциональном конечном продукте. [8]

В обратном проектировании есть два компонента: редактирование документации и восстановление дизайна. Редокументация - это создание нового представления компьютерного кода, чтобы его было легче понять. Между тем, восстановление дизайна - это использование выводов или рассуждений на основе общих знаний или личного опыта о продукте для полного понимания его функциональных возможностей. [8] Это также можно рассматривать как «возвращение назад через цикл разработки». [12] В этой модели результат этапа реализации (в форме исходного кода) реконструируется обратно на этап анализа в инверсии традиционной водопадной модели . Другой термин для этой техники - понимание программы . [5]Рабочая конференция по обратному проектированию (WCRE) проводится ежегодно с целью изучения и расширения методов обратного проектирования. [1] [13] Компьютерная инженерия программного обеспечения (CASE) и автоматическая генерация кода внесли большой вклад в область обратного проектирования. [1]

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

Кстати, тестирование черного ящика в разработке программного обеспечения имеет много общего с обратным проектированием. У тестировщика обычно есть API, но его цель - найти ошибки и недокументированные функции, взломав продукт извне. [14]

Другие цели обратного проектирования включают аудит безопасности, снятие защиты от копирования (" взлом "), обход ограничений доступа, часто присутствующих в бытовой электронике , настройку встроенных систем (например, систем управления двигателем), ремонт или модернизацию на месте, включение дополнительные функции на дешевом «урезанном» оборудовании (например, чипсеты некоторых видеокарт) или даже простое удовлетворение любопытства.

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

Бинарный обратный инжиниринг выполняется, если исходный код программного обеспечения недоступен. [1] Этот процесс иногда называют инженерией обратного кода или RCE. [15] Например, декомпиляция двоичных файлов для платформы Java может быть выполнена с помощью Jad. Одним из известных случаев реверс-инжиниринга была первая реализация BIOS для ПК , не принадлежащая IBM , которая положила начало исторической индустрии совместимых с IBM PC, которая уже много лет является доминирующей компьютерной аппаратной платформой. Обратный инжиниринг программного обеспечения защищен в США исключением добросовестного использования в законе об авторском праве . [16] Программное обеспечение Samba , которое позволяет системам, которые не работают под управлением систем Microsoft Windows, обмениваться файлами с системами, которые его запускают, является классическим примером реверс-инжиниринга программного обеспечения [17], поскольку проект Samba должен был реконструировать неопубликованную информацию о том, как Совместное использование файлов Windows работало так, что компьютеры, не работающие под управлением Windows, могли его эмулировать. Проект Wine делает то же самое для Windows API , а OpenOffice.org - одна из сторон, делающая это для форматов файлов Microsoft Office . В ReactOSПроект еще более амбициозен по своим целям, стремясь обеспечить двоичную (ABI и API) совместимость с текущими операционными системами Windows ветви NT, что позволяет программному обеспечению и драйверам, написанным для Windows, работать на бесплатном программном обеспечении с обратной инженерией в чистой комнате. ( GPL ) аналог. WindowsSCOPE позволяет выполнять обратное проектирование всего содержимого оперативной памяти системы Windows, включая двоичный графический обратный инжиниринг всех запущенных процессов.

Еще один классический, если не сказать хорошо известный пример - это то, что в 1987 году Bell Laboratories перепроектировала Mac OS System 4.1, первоначально работавшую на Apple Macintosh SE , так, чтобы она могла запускать ее на собственных RISC-машинах. [18]

Методы двоичного программного обеспечения [ править ]

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

  1. Анализ путем наблюдения информационного обмена, наиболее распространен в протоколе обратного проектирования, который включает в себя , используя анализаторы шины и анализаторы пакетов , например, для доступа к шине компьютера или компьютерной сети , подключение и выявления на нем данных трафика. Затем можно проанализировать поведение шины или сети, чтобы создать автономную реализацию, которая имитирует это поведение. Это особенно полезно для обратного проектирования драйверов устройств . Иногда обратному проектированию встроенных систем значительно помогают инструменты, намеренно введенные производителем, такие как порты JTAG или другие средства отладки. В Microsoft Windows, популярны отладчики низкого уровня, такие как SoftICE .
  2. Дизассемблирование с использованием дизассемблера , то есть необработанный машинный язык программы читается и понимается в его собственных терминах, только с помощью мнемоники машинного языка . Он работает с любой компьютерной программой, но может занять некоторое время, особенно для тех, кто не привык к машинному программированию. Интерактивный дизассемблер является особенно популярным инструментом.
  3. Декомпиляция с использованием декомпилятора - процесса, который пытается с разными результатами воссоздать исходный код на каком-либо языке высокого уровня для программы, доступной только в машинном коде или байт-коде .

Классификация программного обеспечения [ править ]

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

Этот метод используется в основном для длительных и тщательных задач обратного проектирования (полный анализ сложного алгоритма или большой части программного обеспечения). В целом статистическая классификация считается сложной проблемой, что справедливо и для классификации программного обеспечения, и поэтому мало решений / инструментов, которые хорошо справляются с этой задачей.

Исходный код [ править ]

Некоторые инструменты UML называют процесс импорта и анализа исходного кода для создания диаграмм UML «обратным проектированием». См. Список инструментов UML .

Хотя UML является одним из подходов к обеспечению «обратного проектирования», недавние достижения в области международных стандартов привели к разработке метамодели обнаружения знаний (KDM). Стандарт предоставляет онтологию для промежуточного (или абстрактного) представления конструкций языка программирования и их взаимосвязей. Объект Group ManagementСтандарт (который также становится стандартом ISO), KDM начал завоевывать индустрию, разрабатывая инструменты и среды анализа, которые могут обеспечивать извлечение и анализ исходного, двоичного и байтового кода. Для анализа исходного кода архитектура гранулярных стандартов KDM позволяет извлекать потоки программной системы (данные, управление и карты вызовов), архитектуры и знания бизнес-уровня (правила, термины и процессы). Стандарт позволяет использовать общий формат данных (XMI), позволяющий коррелировать различные уровни системных знаний для детального анализа (например, первопричина, влияние) или производного анализа (например, извлечения бизнес-процессов). Хотя попытки представить языковые конструкции могут быть бесконечными из-за большого количества языков, непрерывная эволюция языков программного обеспечения,и разработка новых языков, стандарт действительно позволяет использовать расширения для поддержки широкого набора языков, а также для развития. KDM совместим с UML, BPMN, RDF и другими стандартами, что позволяет выполнять миграцию в другие среды и, таким образом, использовать системные знания для таких усилий, как преобразование программных систем и анализ уровня предприятия.

Протоколы [ править ]

Протоколы - это наборы правил, которые описывают форматы сообщений и способ обмена сообщениями: конечный автомат протокола . Соответственно, проблема обратного проектирования протокола может быть разделена на две подзадачи: формат сообщения и обратное проектирование конечного автомата.

Форматы сообщений традиционно реконструировались с помощью утомительного ручного процесса, который включал анализ того, как реализации протокола обрабатывают сообщения, но недавние исследования предложили ряд автоматических решений. [19] [20] [21] Как правило, автоматические подходы группируют сообщения наблюдения в кластеры с помощью различных анализов кластеризации или имитируют реализацию протокола, отслеживающую обработку сообщений.

Меньше работ по реверс-инжинирингу автоматов протоколов. В общем, конечные автоматы протокола могут быть изучены либо в процессе автономного обучения , которое пассивно наблюдает за общением и пытается построить наиболее общий конечный автомат, принимающий все наблюдаемые последовательности сообщений, либо в режиме онлайн-обучения , которое позволяет интерактивное генерирование зондирования. последовательности сообщений и прослушивание ответов на эти зондирующие последовательности. В общем, в автономном режиме обучения небольших государственных машин , как известно, NP-полной , [22] , но онлайн обучение может быть сделано за полиномиальное время. [23] Автоматический автономный подход был продемонстрирован Comparetti et al. [21]и онлайн-подход Cho et al. [24]

Другие компоненты типичных протоколов, такие как шифрование и хэш-функции, также могут быть автоматически реконструированы. Обычно автоматический подход отслеживает выполнение реализаций протокола и пытается обнаружить буферы в памяти, содержащие незашифрованные пакеты. [25]

Интегральные схемы / смарт-карты [ править ]

Обратный инжиниринг - это агрессивная и деструктивная форма анализа смарт-карты . Злоумышленник использует химические вещества для удаления слоя за слоем смарт-карты и делает снимки с помощью сканирующего электронного микроскопа (SEM). Этот метод может раскрыть всю аппаратную и программную часть смарт-карты. Основная проблема для злоумышленника - привести все в порядок, чтобы узнать, как все работает. Производители карты пытаются скрыть ключи и операции, смешивая позиции в памяти, например, путем шифрования шины. [26] [27]

В некоторых случаях можно даже подключить зонд для измерения напряжений, пока смарт-карта еще работает. Создатели карты используют датчики для обнаружения и предотвращения этой атаки. [28] Эта атака не очень распространена, потому что требует больших вложений усилий и специального оборудования, которое обычно доступно только крупным производителям микросхем. Кроме того, отдача от этой атаки невелика, поскольку часто используются другие методы безопасности, такие как теневые учетные записи. По-прежнему неясно, смогут ли атаки на карты с чипом и PIN-кодом для репликации данных шифрования, а затем для взлома PIN-кодов, обеспечить экономически эффективную атаку на многофакторную аутентификацию.

Полный реверс-инжиниринг состоит из нескольких основных этапов.

Первый шаг после того, как изображения были сделаны с помощью SEM, - это сшивание изображений вместе, что необходимо, поскольку каждый слой не может быть захвачен одним снимком. СЭМ необходимо охватить область контура и сделать несколько сотен изображений, чтобы покрыть весь слой. Сшивание изображений принимает на входе несколько сотен изображений и выводит одно правильно наложенное изображение всего слоя.

Затем сшитые слои необходимо выровнять, потому что образец после травления нельзя каждый раз помещать в одно и то же положение относительно SEM. Следовательно, сшитые версии не будут правильно перекрываться, как на реальной схеме. Обычно выбираются три соответствующие точки, и на их основе применяется преобразование.

Чтобы выделить структуру схемы, выровненные, сшитые изображения необходимо сегментировать, чтобы выделить важные схемы и отделить их от неинтересного фона и изоляционных материалов.

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

Военное применение [ править ]

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

  • Джерри может : британские и американские войска заметили, что у немцев есть канистры с бензином отличной конструкции. Они реконструировали копии этих банок, которые в народе назывались «банками из-под Джерри».
  • Panzerschreck : немцы захватили американскую базуку во время Второй мировой войны и реконструировали ее, чтобы создать более крупный Panzerschreck.
  • Туполев Ту-4 : В 1944 году три американских бомбардировщика B-29, выполнявшие полеты над Японией, были вынуждены приземлиться в Советском Союзе . Советы, у которых не было подобного стратегического бомбардировщика, решили скопировать B-29. За три года они разработали Ту-4 - почти идеальную копию. [29]
  • РЛС SCR-584 : скопирован Советским Союзом после Второй мировой войны, известен несколькими модификациями - СЦР-584, Бинокль-Д.
  • Ракета Фау-2 : техническая документация на Фау-2 и связанные с ней технологии была захвачена западными союзниками в конце войны. Американцы сосредоточили свои усилия на обратном инжиниринге через операцию «Скрепка» , которая привела к разработке ракеты PGM-11 Redstone . [30] Советский Союз использовал захваченных немецких инженеров для воспроизведения технической документации и планов и работал с захваченным оборудованием, чтобы сделать свой клон ракеты, R-1 . Так началась послевоенная советская ракетная программа, которая привела к созданию Р-7 и началу космической гонки .
  • Ракета K-13 / R-3S (по классификации НАТО AA-2 Atoll ), советская реконструированная копия AIM-9 Sidewinder , стала возможной после того, как тайваньский AIM-9B поразил китайский МиГ-17, не взорвавшись в сентябре. 1958. [31] Ракета застряла внутри планера, и пилот вернулся на базу с тем, что советские ученые назвали университетским курсом по разработке ракет.
  • Ракета BGM-71 TOW : в мае 1975 года переговоры между Ираном и Hughes Missile Systems о совместном производстве ракет TOW и Maverick зашли в тупик из-за разногласий в структуре цен, последующая революция 1979 года положила конец всем планам такого совместного производства. Позже Иран успешно переконструировал ракету и теперь производит свою собственную копию Toophan .
  • Китай полностью изменил конструкцию многих образцов западной и российской техники, от истребителей до ракет и автомобилей HMMWV , таких как МиГ-15 (который стал J-7) и Су-33 (который стал J-15). [32] Более поздний анализ роста военной мощи Китая указал на неотъемлемые ограничения обратного проектирования передовых систем вооружений. [33]
  • Во время Второй мировой войны, польские и британские криптографами изучали захваченные немецкие « „Энигма шифрования машины сообщений“слабые места. Их работа была затем моделируется на электромеханических устройствах,» bombes , которые пытались все возможные параметры скремблирования из «машины Энигма» , которые помогли взлом закодированных сообщений, отправленных немцами.
  • Также во время Второй мировой войны британские ученые проанализировали и уничтожили ряд все более сложных радионавигационных систем, используемых Люфтваффе для выполнения управляемых бомбардировок в ночное время. Британские меры противодействия этой системе были настолько эффективны, что в некоторых случаях немецкие самолеты руководились сигналами приземлиться на базах британских ВВС, поскольку считали, что они вернулись на территорию Германии.

Генные сети [ править ]

Концепции обратной инженерии были применены также к биологии , в частности, для понимания структуры и функции сетей регуляции генов . Они регулируют почти все аспекты биологического поведения и позволяют клеткам выполнять физиологические процессы и реагировать на возмущения. Таким образом, понимание структуры и динамического поведения генных сетей является одной из важнейших задач системной биологии, имеющей немедленные практические последствия в нескольких приложениях, выходящих за рамки фундаментальных исследований. [34] Существует несколько методов обратной инженерии сетей регуляции генов с использованием методов молекулярной биологии и науки о данных. Их обычно делят на шесть классов: [35]

Шесть классов методов вывода генной сети, согласно [35]
  • Методы коэкспрессии основаны на представлении о том, что если два гена демонстрируют схожий профиль экспрессии, они могут быть связаны, хотя на основании коэкспрессии нельзя просто вывести причинную связь.
  • Методы последовательности мотивов анализируют промоторы генов, чтобы найти специфические домены связывания факторов транскрипции. Если предполагается, что фактор транскрипции связывается с промотором конкретного гена, можно предположить регуляторную связь.
  • Методы Chromatin ImmunoPrecipitation (ChIP) исследуют профиль связывания ДНК выбранных факторов транскрипции по всему геному, чтобы сделать вывод об их последующих генных сетях.
  • Методы ортологии передают знания о генных сетях от одного вида к другому.
  • Литературные методы реализуют интеллектуальный анализ текста и ручное исследование для выявления предполагаемых или экспериментально подтвержденных связей генной сети.
  • Методы транскрипционных комплексов используют информацию о межбелковых взаимодействиях между факторами транскрипции, тем самым расширяя концепцию генных сетей, чтобы включить в нее комплексы регуляции транскрипции.

Часто надежность генной сети проверяется экспериментами по генетическим возмущениям с последующим динамическим моделированием, основанным на том принципе, что удаление одного сетевого узла оказывает предсказуемое влияние на функционирование остальных узлов сети. [36] Применение обратной инженерии генных сетей варьируется от понимания механизмов физиологии растений [37] до выявления новых целей для противоопухолевой терапии. [38]

Пересечение с патентным законодательством [ править ]

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

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

Законность [ править ]

Соединенные Штаты [ править ]

В Соединенных Штатах, даже если артефакт или процесс защищен коммерческой тайной , обратное проектирование артефакта или процесса часто является законным, если он был получен законным путем. [39]

Обратный инжиниринг компьютерного программного обеспечения часто подпадает под действие как договорного права как нарушение договора, так и любых других соответствующих законов. Это потому, что большинство лицензионных соглашений с конечным пользователем прямо запрещают это, и суды США постановили, что, если такие условия присутствуют, они отменяют закон об авторском праве, который прямо разрешает это (см. Bowers v. Baystate Technologies [40] [41] ). Согласно разделу 103 (f) Закона об авторском праве в цифровую эпоху ( 17 USC § 1201 (f)), лицо, владеющее программой на законных основаниях, может перепроектировать и обойти ее защиту, если это необходимо для достижения "совместимости", термин, который широко охватывает другие устройства и программы, которые могут взаимодействовать с ней, использовать ее и использовать и передавать данные в него и из него полезными способами. Существует ограниченное исключение, которое позволяет передавать полученные таким образом знания и использовать их для целей взаимодействия. [42]

Европейский Союз [ править ]

Директива ЕС 2009/24 о правовой защите компьютерных программ, которая заменила более раннюю (1991 г.) директиву [43], регулирует обратный инжиниринг в Европейском Союзе . [44] [45]

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

  • Антикитерский механизм
  • Сравнительный анализ
  • Анализатор шины
  • Чонда
  • Клонировать (вычисления)
  • Дизайн чистой комнаты
  • CMM
  • Морфинг кода
  • Виртуальная игровая станция Connectix
  • Подделка
  • Криптоанализ
  • Декомпилировать
  • Деформация
  • Закон о защите авторских прав в цифровую эпоху (DMCA)
  • Ключ
  • Криминалистическая инженерия
  • Промышленное компьютерное сканирование
  • Интерактивный дизассемблер
  • Метамодель открытия знаний
  • Лазерный сканер
  • Список производственных тем
  • Листероидные двигатели
  • Логический анализатор
  • Зарплата
  • Разборка продукта
  • Перепрофилирование
  • Ретродикция
  • Sega против Accolade
  • Программная археология
  • Взлом программного обеспечения
  • Структурированный световой дигитайзер
  • Разработка стоимости

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

  1. ^ a b c d e f g h i Эйлам, Эльдад (2005). Реверсирование: секреты реверс-инжиниринга . Джон Вили и сыновья. ISBN 978-0-7645-7481-8.
  2. ^ Тайер, Кен. "Как работает обратный инжиниринг?" . globalspec . IEEE Global Spec . Проверено 26 февраля 2018 .
  3. ^ Вильяверде, Алехандро Ф .; Банга, Хулио Р. (6 февраля 2014 г.). «Обратный инжиниринг и идентификация в системной биологии: стратегии, перспективы и проблемы» . Журнал Интерфейса Королевского общества . 11 (91): 20130505. DOI : 10.1098 / rsif.2013.0505 . PMC 3869153 . PMID 24307566 .  
  4. ^ a b c Чикофски, EJ & Cross, JH, II (1990). «Обратное проектирование и восстановление дизайна: таксономия». Программное обеспечение IEEE . 7 (1): 13–17. DOI : 10.1109 / 52.43044 .
  5. ^ a b Обзор обратного проектирования и понимания программ. Майкл Л. Нельсон, 19 апреля 1996 г., ODU CS 551 - Исследование программной инженерии. arXiv : cs / 0503068v1
  6. ^ Винеш Раджа; Киран Дж. Фернандес (2007). Обратный инжиниринг: промышленная перспектива . Springer Science & Business Media. п. 3. ISBN 978-1-84628-856-2.
  7. ^ Джонатан Бэнд; Масанобу Катох (2011). Интерфейсы в Trial 2.0 . MIT Press. п. 136. ISBN. 978-0-262-29446-1.
  8. ^ a b c Чикофски, Э.Дж.; Кросс, JH (январь 1990 г.). «Обратный инжиниринг и восстановление дизайна: таксономия» (PDF) . Программное обеспечение IEEE . 7 : 13–17. DOI : 10.1109 / 52.43044 . Архивировано из оригинального (PDF) на 2018-04-17 . Проверено 2 июля 2012 .
  9. ^ Internet Engineering Task Force RFC 2828 Глоссарий по безопасности Интернета
  10. ^ Варади, Т; Martin, R; Кокс, Дж (1997). «Обратный инжиниринг геометрических моделей - введение». Компьютерный дизайн . 29 (4): 255–268. DOI : 10.1016 / S0010-4485 (96) 00054-1 .
  11. ^ «Обратный инжиниринг» .
  12. ^ Уорден, Р. (1992). Повторное использование программного обеспечения и обратный инжиниринг на практике . Лондон, Англия: Chapman & Hall. С. 283–305.
  13. ^ "Рабочая конференция по обратному проектированию (WCRE)" . uni-trier.de . Библиография по информатике. Архивировано из оригинального 14 марта 2017 года . Проверено 22 февраля 2018 .
  14. ^ Shahbaz, Muzammil (2012). Обратный инжиниринг и тестирование программных компонентов черного ящика: методами грамматического вывода . LAP LAMBERT Academic Publishing. ISBN 978-3659140730.
  15. ^ Чувакин, Антон; Сайрус Пейкари (январь 2004 г.). Воин безопасности (1-е изд.). О'Рейли. Архивировано из оригинала на 2006-05-22 . Проверено 25 мая 2006 .
  16. ^ Самуэльсон, Памела и Скотчмер, Сюзанна (2002). «Закон и экономика обратного инжиниринга» . Йельский юридический журнал . 111 (7): 1575–1663. DOI : 10.2307 / 797533 . JSTOR 797533 . Архивировано из оригинала на 2010-07-15 . Проверено 31 октября 2011 . 
  17. ^ "Самба: Введение" . 2001-11-27 . Проверено 7 мая 2009 .
  18. ^ Ли, Ньютон (2013). Контртерроризм и кибербезопасность: всеобщая осведомленность об информации (2-е изд.). Springer Science + Business Media. п. 110. ISBN 978-1461472049.
  19. W. Cui, J. Kannan и HJ Wang. Discoverer: автоматический реверс-инжиниринг протокола по сетевым трассировкам. В материалах 16-го симпозиума по безопасности USENIX на симпозиуме по безопасности USENIX, стр. 1–14.
  20. W. Cui, M. Peinado, K. Chen, HJ Wang и L. Irún-Briz. Tupni: Автоматический реверс-инжиниринг входных форматов. В материалах 15-й конференции ACM по компьютерной и коммуникационной безопасности, стр. 391–402. ACM, октябрь 2008 г.
  21. ^ a b П. М. Компаретти, Г. Вондрачек, К. Крюгель и Э. Кирда. Проспекс: извлечение спецификации протокола. В материалах 30-го симпозиума IEEE по безопасности и конфиденциальности 2009 г., стр. 110–125, Вашингтон, 2009 г. IEEE Computer Society.
  22. Перейти ↑ Gold, E (1978). «Сложность идентификации автомата по заданным данным» . Информация и контроль . 37 (3): 302–320. DOI : 10.1016 / S0019-9958 (78) 90562-4 .
  23. ^ D. Angluin (1987). «Изучение регулярных множеств по запросам и контрпримерам». Информация и вычисления . 75 (2): 87–106. DOI : 10.1016 / 0890-5401 (87) 90052-6 .
  24. ^ CY Чо, Д. Бабич, Р. Шин и Д. Сонг. Вывод и анализ формальных моделей протоколов управления и управления ботнетами , Конференция ACM по компьютерной и коммуникационной безопасности 2010 г.
  25. ^ Полиглот: автоматическое извлечение формата сообщения протокола с использованием динамического двоичного анализа . Дж. Кабальеро, Х. Инь, З. Лян и Д. Сун. Материалы 14-й конференции ACM по компьютерной и коммуникационной безопасности, стр. 317–329.
  26. ^ Вольфганг Ранкл, Вольфганг Эффинг, Справочник по смарт-картам (2004)
  27. ^ Т. Велц: Смарт-карты как способы оплаты (2008), Семинар ITS-Security Ruhr-Universität Bochum
  28. Дэвид С. Маскер: Защита и использование интеллектуальной собственности в электронике. Архивировано 9 июля 2011 г.на Wayback Machine , конференции IBC, 10 июня 1998 г.
  29. ^ Yeam Гордон и Владимир Rigmant, Туполев Ту-4: Советская Superfortress (Хинкли, Великобритания: Midland, 2002).
  30. ^ "Ракета Редстоун" . centennialofflight.net . Проверено 27 апреля 2010 .
  31. ^ "Китайские военно-воздушные силы: развивающиеся концепции, роли и возможности", Центр изучения военных вопросов Китая (США), издательство National Defense University Press, стр. 277
  32. ^ Чандрашекар, С., Р. Нагаппа, Л. Сундаресан и Н. Рамани. 2011. Технологии и инновации в Китае: пример разработки монокристаллических суперсплавов для лопаток авиационных турбин, R4–11. ISSSP Национальный институт перспективных исследований, Бангалор. http://isssp.in/wp-content/uploads/2013/01/Technology-and-Innovation-in-China-A-case-Study-of-Single-Crystal4.pdf ; и Диллон Чжоу, «Китайский истребитель J-15: китайские официальные лица защищают новый истребитель как китайский оригинальный, но остаются вопросы», Мик, 16 декабря 2012 г., https://mic.com/articles/20270/china-j-15 -истребитель-реактивный-китайские-чиновники-защищают-новый-истребитель- как-китайский-оригинальный-но-вопросы-остаются
  33. ^ Андреа Гилли и Мауро Гилли, «Почему Китай еще не догнал: военно-технологическое превосходство и пределы имитации, обратного инжиниринга и кибершпионажа», Международная безопасность 43: 3 (2019 141-189, https: // doi. org / 10.1162 / isec_a_00337 .
  34. ^ Джорджи, Федерико М. (2020). «Обратный инжиниринг генной сети: следующее поколение». Biochimica et Biophysica Acta (BBA) - механизмы регуляции генов . 1 863 (6): 194523. DOI : 10.1016 / j.bbagrm.2020.194523 . ISSN 1874-9399 . 
  35. ^ a b Меркателли, Даниэле; Скаламбра, Лаура; Триболи, Лука; Луч, Лес; Джорджи, Федерико М. (2020). «Ресурсы вывода регуляторной сети генов: практический обзор». Biochimica et Biophysica Acta (BBA) - механизмы регуляции генов . 1863 (6): 194430. DOI : 10.1016 / j.bbagrm.2019.194430 . ISSN 1874-9399 . 
  36. ^ Тегнер, Дж .; Йунг, МКС; Hasty, J .; Коллинз, Дж. Дж. (2003). «Обратная инженерия генных сетей: интеграция генетических возмущений с динамическим моделированием» . Труды Национальной академии наук . 100 (10): 5944–5949. DOI : 10.1073 / pnas.0933416100 . ISSN 0027-8424 . 
  37. ^ Friedel, Swetlana; Усадель, Бьорн; фон Вирен, Николаус; Шринивасулу, Несе (2012). «Обратный инжиниринг: ключевой компонент системной биологии для разгадки глобального взаимного обсуждения абиотического стресса» . Границы науки о растениях . 3 . DOI : 10.3389 / fpls.2012.00294 . ISSN 1664-462X . 
  38. ^ Лефевр, Селин; Рикхоф, Габриель; Калифано, Андреа (2012). «Обратный инжиниринг человеческих регуляторных сетей» . Междисциплинарные обзоры Wiley: системная биология и медицина . 4 (4): 311–325. DOI : 10.1002 / wsbm.1159 . ISSN 1939-5094 . PMC 4128340 .  
  39. Перейти ↑ Trade Secrets 101, Feature Article, March 2011 . КАК Я. Проверено 31 октября 2013.
  40. ^ Baystate v. Bowers Обсуждение . Utsystem.edu. Проверено 29 мая 2011.
  41. ^ Валовой, Грант. (2003-06-26) Дело о контракте может повредить обратному проектированию | Мир разработчиков . InfoWorld. Проверено 29 мая 2011.
  42. ^ В разделе говорится:
    (f) Обратный инжиниринг. -
    (1) Несмотря на положения подраздела (a) (1) (A), лицо, законным образом получившее право на использование копии компьютерной программы, может обойти технологический мера, которая эффективно контролирует доступ к определенной части этой программы с единственной целью идентификации и анализа тех элементов программы, которые необходимы для обеспечения взаимодействия независимо созданной компьютерной программы с другими программами и которые ранее не были легко доступны для лицо, участвующее в обходе, в той степени, в которой любые такие действия по идентификации и анализу не представляют собой нарушение в соответствии с этим заголовком.
    (2) Независимо от положений подразделов (a) (2) и (b), лицо может разрабатывать и использовать технологические средства для обхода технических средств или защиты, предоставляемой технологическими средствами, чтобы позволить идентификацию и анализ в соответствии с параграфом (1) или с целью обеспечения возможности взаимодействия независимо созданной компьютерной программы с другими программами, если такие средства необходимы для достижения такой совместимости, в той мере, в какой это не является нарушением в соответствии с этим заголовком.
    (3) Информация, полученная посредством действий, разрешенных согласно параграфу (1), и средств, разрешенных согласно параграфу (2), может быть предоставлена ​​другим лицам, если лицо, указанное в параграфе (1) или (2), в зависимости от случая может предоставлять такую ​​информацию или средства исключительно с целью обеспечения возможности взаимодействия независимо созданной компьютерной программы с другими программами, и в той степени, в которой это не является нарушением прав в соответствии с этим заголовком или нарушением применимого законодательства, кроме этого раздела.
    (4) Для целей данного подраздела термин «функциональная совместимость» означает способность компьютерных программ обмениваться информацией, а таких программ - взаимно использовать информацию, которой обменивались.
  43. Директива Совета 91/250 / EEC от 14 мая 1991 г. о правовой защите компьютерных программ . Eur-lex.europa.eu. Проверено 29 мая 2011.
  44. ^ ДИРЕКТИВА 2009/24 / EC ЕВРОПЕЙСКОГО ПАРЛАМЕНТА И СОВЕТА от 23 апреля 2009 г. о правовой защите компьютерных программ
  45. ^ Директива гласит:

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

Источники [ править ]

  • Эйлам, Эльдад (2005). Реверсирование: секреты обратного инжиниринга . Wiley Publishing . п. 595. ISBN 978-0-7645-7481-8.
  • Элвидж, Джулия, «Использование обратного инжиниринга для обнаружения нарушения патентных прав», Chipworks, сентябрь 2010 г. Интернет: http://www.photonics.com/Article.aspx?AID=44063
  • Чипрессо, Теодоро (2009). "Образование в области обратной инженерии программного обеспечения" . Магистерская работа ГАГУ . Проверено 22 августа 2009 .
  • Хауси А. Мюллер и Хольгер М. Кинле, «Небольшой учебник по обратной инженерии программного обеспечения», Технический отчет, Университет Виктории, 17 страниц, март 2009 г. Онлайн: http://holgerkienle.wikispaces.com/file/view/MK -UVic-09.pdf
  • Хайнс, Генри, «Определение нарушения с помощью рентгеновской дифракции», Chemical Engineering Process , январь 1999 г. (пример обратной инженерии, используемой для обнаружения нарушения прав интеллектуальной собственности)
  • Хуанг, Эндрю (2003). Взлом Xbox: Введение в обратный инжиниринг . Пресс без крахмала . ISBN 978-1593270292.
  • Джеймс, Дик (19 января 2006 г.). «Обратный инжиниринг обеспечивает знание продукта; способствует распространению технологий» . Электронный дизайн . Пентон Медиа, Инк . Проверено 3 февраля 2009 .
  • Месслер, Роберт (2013). Обратный инжиниринг: механизмы, конструкции, системы и материалы . Макгроу Хилл . ISBN 978-0071825160. (введение в разборку оборудования, включая методологию, цели)
  • Раджа, Винеш; Фернандес, Киран Дж. (2008). Обратный инжиниринг - промышленная перспектива . Springer . п. 242. ISBN. 978-1-84628-855-5.
  • Обратный инжиниринг для начинающих
  • Самуэльсон, Памела и Скотчмер, Сюзанна, «Закон и экономика обратного инжиниринга», 111 Yale LJ 1575 (2002). Онлайн: http://people.ischool.berkeley.edu/~pam/papers/l&e%20reveng3.pdf
  • Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Michels, Raymond J .; Кайл, Джим (1994) [ноябрь 1993]. Недокументированная DOS: Руководство программиста по зарезервированным функциям и структурам данных MS-DOS - расширено за счет включения MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Ридинг, Массачусетс: Эддисон Уэсли . С.  229–241 . ISBN 0-201-63287-X.(xviii + 856 + vi страниц, 3,5 "-floppy) Исправление: [1] [2] (NB. Об общей методологии реверс-инжиниринга, применяемой к массовому ПО: программа для исследования DOS, дизассемблирующая DOS.)
  • Шульман, Эндрю; и другие. (1992). Недокументированная Windows: Руководство программиста по зарезервированным функциям Microsoft Windows API . Эддисон Уэсли . ISBN 978-0-201-60834-2. (стр. 59–188 об общей методологии реверс-инжиниринга, применяемой к массовому ПО: изучение исполняемых файлов Windows, дизассемблирование Windows, инструменты для изучения Windows)
  • Шульман, Эндрю, «Скрытие на виду: использование обратного инжиниринга для обнаружения нарушения патентов на программное обеспечение», « Интеллектуальная собственность сегодня» , ноябрь 2010 г. Интернет: http://www.iptoday.com/issues/2010/11/hiding-in- простой вид-использование-реверс-инжиниринг-раскрыть-нарушение-патента-программного обеспечения.asp
  • Шульман, Эндрю, «Открытость для проверки: использование обратного инжиниринга для обнаружения программного обеспечения, предшествующего уровню техники», New Matter (Секция интеллектуальной собственности штата Калифорния), лето 2011 г. (часть 1); Осень 2011 г. (часть 2). В Интернете: http://www.SoftwareLitigationConsulting.com
  • Тумм, Майк (2007). «Говорящая тактика» (PDF) . Конференция IEEE 2007 по специализированным интегральным схемам (CICC) . IEEE, Inc . Проверено 3 февраля 2009 .