Изменения
Начал викификацию
'''Обра́тная разрабо́тка''' (также '''реверс инжиниринг''' от {{lang-en|reverse engineering}}) — исследование некоторого устройства или программы, а также документации на них с целью понять принцип его работы и, чаще всего, сделать устройство, программу или другой искусственный объект, с аналогичными функциями но без копирования как такового.
'''Обра́тная разрабо́тка''' (также '''реверс инжиниринг''' от {{lang-en|reverse engineering}}) — исследование некоторого устройства, [[формат]]а, [[протокол]]а или [[Проприетарное ПО|программы]], а также создание документации на них с целью понять принцип его работы и, чаще всего, сделать устройство, программу или другой искусственный объект, с аналогичными функциями но без копирования как такового.
Применяется обычно в том случае, если создатель оригинального объекта не предоставил информации о структуре и способе создания (производства) объекта. Использование обратной разработки может противоречить закону об [[авторское право|авторском праве]] и [[патент|патентному законодательству]].
Применяется обычно в том случае, если создатель оригинального объекта не предоставил информации о структуре и способе создания (производства) объекта. Использование обратной разработки может противоречить закону об [[авторское право|авторском праве]] и [[патент|патентному законодательству]].
В настоящее время под словами «reverse engineering» чаще всего понимается т. н. «clean room reverse engineering», то есть процесс, при котором одна группа разработчиков анализирует машинный код программы (в [[хакерский сленг|сленге хакеров]] для этого процесса используется также выражение «обратный инжиниринг» или «реверсный инжиниринг»), составляет [[алгоритм]] данной программы на [[псевдокод]]е, либо, если программа является [[драйвер]]ом какого-либо устройства, составляет исчерпывающие спецификации интересующего устройства. После получения спецификаций другая группа разработчиков пишет собственный драйвер на основе полученных спецификаций или алгоритмов. Такой подход позволяет избежать обвинений в нарушении авторских прав на исходную программу, так как по законам, к примеру в [[Соединённые Штаты Америки|США]], подпадает под понятие «[[Добросовестное использование|fair use]]», то есть добросовестного использования оригинальной программы. Результат обратной разработки редко идентичен оригиналу, что и позволяет избежать ответственности перед законом.
В настоящее время под словами «reverse engineering» чаще всего понимается т. н. «clean room reverse engineering», то есть процесс, при котором одна группа разработчиков анализирует закрытый объект (в [[хакерский сленг|сленге хакеров]] для этого процесса используется также выражение «обратный инжиниринг» или «реверсный инжиниринг»), и составляет [[алгоритм]] работы закрытого объекта на [[псевдокод]]е и/или составляет исчерпывающие спецификации изучаемого закрытого объекта. После получения спецификаций другая группа разработчиков сохдает открытый аналог на основе полученных спецификаций или алгоритмов. Такой подход позволяет избежать обвинений в нарушении [[авторское право|авторских прав]] на исходный объект, так как по законам, к примеру, [[США]], подпадает под понятие «[[Добросовестное использование|fair use]]», то есть добросовестного использования оригинального объекта. Результат обратной разработки редко идентичен оригиналу, что и позволяет избежать ответственности перед законом.
== Сферы применения обратной разработки ==
== Сферы применения обратной разработки ==