Разработка программного обеспечения
- 1 year ago
- 0
- 0
|
Эта статья или раздел нуждается в переработке.
|
Обра́тная разрабо́тка ( обратное проектирование, обратный инжиниринг , реверс-инжиниринг ; англ. reverse engineering ) — исследование некоторого готового устройства или программы, а также документации на него с целью понять принцип его работы; например, чтобы обнаружить недокументированные возможности (в том числе программные закладки ), сделать изменение или воспроизвести устройство, программу или иной объект с аналогичными функциями, но без прямого копирования.
Применяется обычно в том случае, если создатель оригинального объекта не предоставил информации о структуре и способе создания (производства) объекта. Правообладатели таких объектов могут заявить, что проведение обратной разработки или использование её результатов нарушает их исключительное право по закону об авторском праве и патентному законодательству .
В 2016 году на заседании Правительственной комиссии по импортозамещению министр промышленности торговли РФ Д. В. Мантуров заявил о планах создать на базе Фонда развития промышленности центр обратного инжиниринга .
Исследование и обратная разработка программ обычно осуществляются с целью дальнейшей модификации, копирования, или, например, написания генераторов ключей , алгоритм работы которых получен на основе анализа алгоритма их проверки. Также исследование программ применяется с целью получения некоторых закрытых сведений о внутреннем устройстве программы — о протоколе сетевого обмена с сервером, аппаратным средством, или о взаимодействии с другой программой. Ещё одна область применения — получение информации о способах экспортирования данных из многочисленных проприетарных форматов файлов .
С развитием Интернета популярные операционные системы и программы всё интенсивнее исследуются на предмет обнаружения в них уязвимостей или т. н. «дыр». В дальнейшем найденные дыры могут использоваться для получения несанкционированного доступа к удалённому компьютеру или компьютерной сети. C другой стороны, обратная разработка применяется при исследовании антивирусными компаниями вредоносного ПО c целью добавления его сигнатур в базы своих продуктов.
Одним из широко известных примеров обратной разработки является исследование BIOS персонального компьютера IBM , ставшее серьёзным шагом на пути развития производства IBM-совместимых компьютеров сторонними производителями. Создание сервера Samba (входящего в состав ОС GNU/Linux и работающего с серверами на базе ОС Windows ) также потребовало обратной разработки используемого Microsoft протокола SMB .
Обратная разработка программного обеспечения производится с помощью следующих методик.
В настоящее время под словами «reverse engineering» чаще всего понимается т. н. clean room reverse engineering , то есть процесс, при котором одна группа разработчиков анализирует машинный код программы , составляет алгоритм данной программы на псевдокоде либо, если программа является драйвером какого-либо устройства, составляет исчерпывающие спецификации интересующего устройства. После получения спецификаций другая группа разработчиков пишет собственный драйвер на основе полученных спецификаций или алгоритмов . Такой подход позволяет избежать обвинений в нарушении авторских прав на исходную программу, так как по законам, к примеру в США , попадает под понятие « fair use », то есть добросовестного использования оригинальной программы. Результат обратной разработки редко идентичен оригиналу, что и позволяет избежать ответственности перед законом, особенно при условии контроля отсутствия этой идентичности первой группой разработчиков и отсутствия нарушений торговых марок и патентов.
Может использоваться при создании реляционной модели базы данных .
|
Проверить информацию.
|
Копирование различных механизмов и машин без фактической разработки. Позволяет минимальными затратами воспроизвести удачную конструкцию, но есть случаи копирования и неудачных машин.
Примеры:
Часто при реверс-инжиниринге все таки приходится вносить изменения в конструкцию, что может быть связано с отличиями технологии производства или устранением недостатков оригинала. Например, двигатели Honda GX имеют алюминиевый безгильзовый цилиндр с никосилевым напылением. Китайские клоны имеют чугунную гильзу. Трехступенчатые АККП Chrysler имеют достаточно сложный цельнокованный промежуточный вал, тогда как в их клоне Aisin A130 этот элемент собран из трех деталей и получился значительно более технологичным чем оригинальный. Лодочный мотор "Вихрь" хоть и скопирован с Koening, но конструкция целого ряда его элементов сильно упрощена.
Реверс-инжениринг в современном машиностроении напрямую связан с развитием технологии трехмерного сканирования объектов. Благодаря трехмерному сканеру весь объем данных о геометрии изделия может быть представлен в виде STL файла. Дальнейшее построение конструкторской параметрической модели осуществляется на основе STL в специализированных САПР. В конечном итоге применение 3D сканеров позволяет получать конструкторскую документацию, необходимую для изготовления копии изначального образца. Часто (например при копировании различных несложных запчастей) конструкторская документация и вовсе не разрабатывается, а полученный результат сканирования сразу же загружается в обрабатывающий центр.
Обратная разработка электронных устройств появилась ещё на заре радиотехники. В 1920—1930 годах различные фирмы копировали друг у друга радиолампы и схемотехнические решения их применения. Именно с обратной разработкой, а не с лицензионным производством, связано то, что радиолампы одного назначения почти всех производителей оказались унифицированными и взаимозаменяемыми. Например европейская лампа EL95 клон более ранней американской лампы 6KA5. Есть и обратные примеры: американские 6CA5 и KT88 — клоны европейской лампы EL34 . То же самое относится и к советским радиолампам, многие из которых являются клонами американских ламп, получаемых по ленд-лизу (например 6Ж4, 6П9) или немецких из трофейной аппаратуры (6Г2, ГУ50). Вместе с лампами копировались и типовые схемы их включения, то есть фактически схемы блоков радиоаппаратуры. Поэтому именно благодаря обратной разработке ламповая эпоха охарактеризовалась по сути переходом к типовому проектированию в электронике. В частности, все выпускаемые в мире бытовые приемники-супергетеродины строились фактически по трём схемам, которая определялась лампой смесительно-гетеродинного узла: , триод- гептод или пентагрид . То же самое относилось и к усилителям низкой частоты. Существовало не более десятка типовых схем их построения в зависимости от выходной мощности: маломощные однотактные на комбинированной лампе типа 6Ф3П, маломощные однотактные с темброблоком на двойном триоде (типа 6Н1П) и выходном пентоде (6П14П, EL84) или лучевом тетроде (6П3С, EL34), двухтактные с триодным фазоинвертором (6Н1П + 2х6П14П), двухтактные многокаскадные (6Н8П + 2х6П6С + ГУ50). Чёрно-белые телевизоры в 1960—1970-х годах строились фактически двум схемам: одна для совсем простых аппаратов с малыми размерами экрана без АПЧГ и АПЧиФ строчной развёртки (по типу советских телевизоров УНТ-35), вторая схема предназначалась для аппаратов на кинескопах с углом отклонения луча 110°, АПЧГ, АПЧиФ (советские УНТ-59, большинство телевизоров европейских фирм) [ источник не указан 598 дней ] .
|
В разделе
не хватает
ссылок на источники
(см.
рекомендации по поиску
).
|
Обратная разработка продукта конкурента с целью узнать его устройство, принцип работы и оценить возможности создания аналога.
Так например, ряд производителей фототехники, таких как Sigma , Tamron , Tokina и Carl Zeiss , выпускают объективы с байонетом типа Canon EF . Они созданы методом обратной разработки, а их производители не имеют доступа к спецификациям Canon [ источник не указан 2421 день ] .
Самыми [ источник не указан 3703 дня ] известными фактами обратной разработки являлись: