Инженерный анализ

Материал из wikixw
Перейти к навигации Перейти к поиску

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

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

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

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

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

В дополнение к этим целям существуют и другие способы использования для обратного инжиниринга:

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

Распространенные ситуации[править]

Обратное проектирование машин[править]

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

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

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

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

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

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

Существует два компонента в обратном инжиниринге: redocumentation и Design recovery. Redocumentation - это создание нового представления компьютерного кода, чтобы его было легче понять. Между тем, восстановление дизайна-это использование дедукции или рассуждения из общих знаний или личного опыта продукта для полного понимания функциональности продукта.[8] это также можно рассматривать как "возвращение назад через цикл развития". В этой модели выходные данные фазы реализации (в форме исходного кода) реверсивно проектируются обратно на фазу анализа, в инверсии традиционной модели водопада . Другим термином для этой техники является понимание программы . рабочая конференция по обратному инжинирингу (WCRE) проводится ежегодно для изучения и расширения методов обратного инжиниринга. автоматизированная разработка программного обеспечения (CASE) и автоматизированная генерация кода внесли значительный вклад в области обратного проектирования.

Технология anti-трамбовки програмного обеспечения как запутывание использована для того чтобы отговаривать и обратного проектирования и re-инджиниринга собственнического програмного обеспечения и програмн-приведенных в действие систем. На практике возникают два основных типа обратного инжиниринга. В первом случае исходный код уже доступен для программного обеспечения, но обнаруживаются аспекты более высокого уровня программы, возможно, плохо документированные или документированные, но больше не действительные. Во втором случае отсутствует исходный код, доступный для программного обеспечения, и любые усилия по обнаружению одного возможного исходного кода для программного обеспечения рассматриваются как обратное проектирование. Это второе использование термина-то, с которым большинство людей знакомы. Обратное проектирование программного обеспечения может использовать метод Дизайна чистой комнаты, чтобы избежать нарушения авторских прав.

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

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

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

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

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

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

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

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

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

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

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

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

Ряд инструментов UML относятся к процессу импорта и анализа исходного кода для создания диаграмм UML как "обратное проектирование". Смотрите список инструментов UML .

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

Обратное проектирование протоколов[править]

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

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

Стало меньше работы по реверсивному инжинирингу государственных машин протоколов. В целом, протокол state-машин может быть изучен либо через процесс автономного обучения, который пассивно наблюдает за коммуникацией и пытается построить наиболее общую state-машину , принимающую все наблюдаемые последовательности сообщений, и онлайн-обучение, которое позволяет интерактивно генерировать зондирующие последовательности сообщений и прослушивать ответы на эти зондирующие последовательности. В целом, автономное обучение малых государственных машин, как известно, является NP-полным, в то время как онлайн-обучение может быть сделано в полиномиальное время. автоматический автономный подход был продемонстрирован Comparetti et al. и онлайновый подход Cho et al.

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

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

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

Обратное проектирование для военных применений[править]

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

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

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

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

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

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

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

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

Обратное проектирование компьютерного программного обеспечения в США часто подпадает как под договорное право как нарушение договора, так и под любые другие соответствующие законы. Это связано с тем, что большинство лицензионных соглашений с конечным пользователем специально запрещают его, и суды США постановили, что если такие условия присутствуют, они переопределяют закон об авторских правах, который прямо разрешает его (см. Bowers v. Baystate Technologies ). Раздел 103 (f) DMCA (17 U. S. C. § 1201 (f)) говорится, что лицо, которое законно владеет программой, имеет право осуществлять реинжиниринг и обходить ее защиту, если это необходимо для достижения "функциональной совместимости"-термин, широко охватывающий другие устройства и программы, способные взаимодействовать с ней, использовать ее, а также использовать и передавать данные в нее и из нее полезными способами. Существует ограниченное исключение, которое позволяет использовать полученные таким образом знания для совместного использования и использования в целях интероперабельности.

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

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

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

Дальнейшее чтение[править]

  • Eilam, Eldad (2005). Реверсирование: секреты обратного инжиниринга . Уайли Паблишинг . p. 595. .
  • Elvidge, Julia," использование обратного инжиниринга для обнаружения патентных нарушений", Chipworks, Sept. 2010. Онлайн: [1]
  • Cipresso, Teodoro (2009). "Программное Обеспечение Обратного Инженерного Образования". Магистерская диссертация СГУ . ProQuest UML. Получено 2009-08-22 .
  • Hausi A. Müller and Holger M. Kienle," a Small Primer on Software Reverse Engineering", технический отчет, университет Виктории, 17 страниц, март 2009 года. Онлайн: [2]
  • Heines, Henry," определение нарушения с помощью рентгеновской дифракции", химико-технологический процесс, Jan. 1999 (пример обратного инжиниринга, используемого для выявления нарушений прав ИС)
  • Huang, Andrew (2003). Взлом Xbox: введение в обратное проектирование . Никакого Крахмального Пресса . .
  • Джеймс, Дик (19 Января 2006 Года). "Обратное Проектирование Поставляет Знание Продукта; Распространение Технологии Помощи". Электронный Дизайн . Penton Media, Inc. Retrieved 2009-02-03.
  • Месслер, Роберт (2013). Обратное Проектирование: Механизмы, Структуры, Системы & Материалы . Макгро Хилл . ISBN 978-0071825160. (введение в аппаратные срывы, включая методологию, цели)
  • Raja, Vinesh; Fernandes, Kiran J. (2008). Обратное Машиностроение-Это Промышленная Перспектива . Спрингер . p. 242. .
  • Обратное проектирование для начинающих
  • Самуэльсон, Памела и Скотчмер, Сюзанна, "закон и экономика обратного инжиниринга", 111 Yale L. J. 1575 (2002). Онлайн: / papers / l&e%20reveng3. pdf
  • Schulman, Andrew; Brown, Ralf D.; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [Ноябрь 1993]. Недокументированная DOS: руководство программиста по зарезервированным функциям MS-DOS и структурам данных - расширено, чтобы включить MS-DOS 6, Novell DOS и Windows 3.1 (2 ed.). Рединг, Массачусетс: Эддисон Уэсли . С (xviii+856+vi страницы, 3.5"-floppy) ошибки: [1] [2] (NB. Об общей методологии реверсивной инженерии, применяемой к массово-рыночному программному обеспечению: программа для исследования DOS, разборки DOS.)
  • Шульман, Эндрю; и др. (1992). Недокументированные окна: руководство программиста для зарезервированных функций API Microsoft Windows. Эддисон Уэсли . ISBN 978-0-201-60834-2. (стр. 59-188 об общей методологии обратного проектирования, применяемой к программному обеспечению массового рынка: изучение исполняемых файлов Windows, разборка Windows, инструменты для изучения Windows)
  • Шульман, Эндрю, "скрываясь на виду: использование обратного инжиниринга для выявления нарушения патентных прав на программное обеспечение", интеллектуальная собственность сегодня, ноябрь. 2010. Онлайн: [3]
  • Schulman, Andrew, "Open to Inspection: Using Reverse Engineering to Uncover Software Priore Art", New Matter (Calif. Раздел IP государственной коллегии адвокатов), лето 2011 года (Часть 1); осень 2011 года (Часть 2). Онлайн: [4]* Thumm, Mike (2007). "Говорящая тактика" (PDF) . IEEE 2007 Custom Integrated Circuits Conference (CICC). IEEE, Inc. Получено 2009-02-03 .