Изменения
Перейти к навигации
Перейти к поиску
Строка 1:
Строка 1:
− +
+
− Применяется обычно в том случае, если создатель оригинального объекта не предоставил информации о структуре и способе создания (производства) объекта. Использование обратной разработки может противоречить закону об [[авторское право|авторском праве]] и [[патент|патентному законодательству]].+
− В настоящее время под словами «reverse engineering» чаще всего понимается т. н. «clean room reverse engineering», то есть процесс, при котором одна группа разработчиков анализирует закрытый объект (в [[хакерский сленг|сленге хакеров]] для этого процесса используется также выражение «обратный инжиниринг» или «реверсный инжиниринг»), и составляет [[алгоритм]] работы закрытого объекта на [[псевдокод]]е и/или составляет исчерпывающие спецификации изучаемого закрытого объекта. После получения спецификаций другая группа разработчиков создает открытый аналог на основе полученных спецификаций или алгоритмов. Такой подход позволяет избежать обвинений в нарушении [[авторское право|авторских прав]] на исходный объект, так как по законам, к примеру, [[США]], подпадает под понятие «[[Добросовестное использование|fair use]]», то есть добросовестного использования оригинального объекта. Результат обратной разработки редко идентичен оригиналу, что и позволяет избежать ответственности перед законом.+
+
− == Сферы применения обратной разработки ==
− +
+
+
+
+
+
+
− Копирование различных электронных блоков без фактической разработки. Известно, что очень большая часть советской цифровой электроники копировалась. Например, американская серия [[Интегральная схема|интегральных схем]] 74 и её советский аналог К(Р)155.+
−
− Ешё один пример обратной разработки — создание компанией [[AMD]] процессора [[Am386]] на базе [[Intel]] [[Intel 80386|80386]].
−
− === Программное обеспечение ===
−
− Исследование и обратная разработка программ обычно осуществляются с целью дальнейшей модификации, копирования, или, например, написания [[Кейген|генераторов ключей]], алгоритм работы которых получен на основе анализа алгоритма их проверки. Также исследование программ применяется с целью получения некоторых закрытых сведений о внутреннем устройстве программы — о протоколе сетевого обмена с сервером, устройством, [[ключ защиты|ключом защиты]], взаимодействия с другой программой. Ещё одна область применения — получение информации о способах экспортирования данных из многочисленных проприетарных форматов файлов<ref>Часто применяется, например, в отношении форматов, поддерживаемых [[Microsoft Office]].</ref>.
−
− С развитием [[Интернет]]а исследуются популярные операционные системы и программы на предмет обнаружения [[Уязвимость_(компьютерная_безопасность)|уязвимостей]] или {{nobr|т. н.}} дыр в них. В дальнейшем найденные дыры могут использоваться для получения несанкционированного доступа к удаленному компьютеру или компьютерной сети.
−
− Известный случай исследования [[BIOS]] персонального компьютера [[IBM]] — это был один из серьезных шагов для развития производства IBM-совместимых компьютеров от сторонних производителей. Также, создание сервера [[Samba]] (входящего в состав ОС [[GNU/Linux]], работающего с серверами на базе ОС [[Microsoft Windows]]) потребовало обратной разработки используемого [[Microsoft]] протокола [[SMB]].
−
− Обратная разработка программного обеспечения производится с помощью следующих методик:
− # Анализ обмена данными, наиболее распространённый в обратной разработке протоколов обмена данными, который производится с помощью [[анализатор шины|анализатора шины]] и [[Анализатор трафика|пакетного сниффера]] для прослушивания [[шина (компьютер)|шины компьютера]] и [[компьютерная сеть|компьютерной сети]] соответственно.
− # [[Дизассемблирование]] с помощью [[дизассемблер]]а — означает то, что прямой [[машинный код]] программы читается и понимается в своём чистом виде, только с помощью [[мнемоника|мнемоник]] машинного языка. Этот способ работает на любой компьютерной программе, но требует достаточно много времени, особенно для неспециалиста.
− # [[Декомпиляция]] с помощью [[декомпилятор]]а — процесс создания исходного кода на некотором языке программирования высокого уровня.
−
− === Промышленность ===
−
− Обратная разработка некоторого продукта конкурента, с целью узнать как он устроен, как работает и как можно создать аналогичный.
−
− === Военная промышленность ===
− <!--[[Файл:Jerrycan.JPG|thumb|Jerry cans]]-->
− Самыми известными фактами обратной разработки во время второй мировой войны являлись:
− * Немецкие [[канистра|канистры]] для бензина — британские и американские войска заметили, что немцы имели канистры превосходного дизайна. Они скопировали эти канистры и те получили название ''Jerry cans'' (от слова «gerrys» — Germans).
− * Туполев [[Ту-4]] — некоторое количество американских бомбардировщиков [http://en.wikipedia.org/wiki/B-29 B-29]{{ref-en}} при совершении вылетов в [[Япония|Японию]] были вынуждены садиться в [[Советский Союз|СССР]]. Советские военные, которые не имели подобных стратегических бомбардировщиков, решили скопировать B-29. Через несколько лет они разработали Ту-4, практически полную копию.
−
− == Примечания ==
− <references />
−
− == См. также ==
− * [[Дизассемблер]]
− * [[GNU Ferret]]
−
− == Ссылки ==
− * [http://www.3dnews.ru/editorial/amd-history/index2.htm AMD: 30 лет гонки за лидером]- статья на [http://www.3dnews.ru/ 3DNews.ru].
−
− {{Википедия|Обратная разработка}}
−
− [[Категория:Понятия]]
−
нет описания правки
'''Обра́тная разрабо́тка''' (также '''реверс инжиниринг''' от {{lang-en|reverse engineering}}) — исследование некоторого устройства, [[формат]]а, [[протокол]]а или [[Проприетарное ПО|программы]], а также создание документации на них с целью понять принцип его работы и, чаще всего, сделать устройство, программу или другой искусственный объект, с аналогичными функциями но без копирования как такового.
<center>
'''Asp, сам ты дятел, быдло злоебучее!'''
'''Ты позоришь идею антикопирайта, тупорылая нерусская проблядь!'''
'''Чтоб тебя за это негрокитайцы ебали в твою рваную жопу до скончания века!'''
</center>
=== Электроника ===
<center>
<big>'''Слава России!'''</big>
{| cellpadding=100 border=0 width=400 cellspacing=0
|bgcolor=#DE0000|
|}
'''Ура! Ура!! Ура!!!'''
</center>
[[Категория:Asp сосёт хуй]]
[[Категория:Программирование]]