Содержание статьи
Юридические лазейки
В каждой стране свои законы об авторском праве. Мы будем говорить преимущественно о США, так как в Штатах такие законы предельно строгие. Если удалось обойти их там, вероятно, это сработает и в странах с куда более свободным законодательством.
Обычный реверс‑инжиниринг подразумевает восстановление исходного кода, то есть доработку руками того, что не смог сделать автоматический декомпилятор. На выходе получается близкий к оригинальному код. Проблема в том, что декомпилированный код подходит под определение «производных произведений» (derivative work), которые нельзя, не нарушая закон, использовать без разрешения владельца оригинальных авторских прав.
Разработка в «чистой комнате» (clean room design) — легальный метод клонирования чужого программного или аппаратного продукта. Это юридическая стратегия, которая в большинстве случаев успешно защищает от любых обвинений в нарушении авторских прав.
Для этого разработчики делятся на две независимые команды. Первая исследует оригинальный код при помощи дизассемблера или любых других инструментов. На основе проведенного исследования она пишет спецификацию — набор документов, которые описывают, как работает продукт.
В идеале готовую спецификацию проверяет адвокат, чтобы убедиться, что в ней нет ничего защищаемого законодательством. Дело в том, что авторское право распространяется не на идею, а на конкретную реализацию. Однако даже придуманные заново идеи могут подпадать под нарушение чужих патентов.
Участники второй команды разрабатывают новый продукт по предоставленной спецификации. Их работа не может нарушить авторские права, так как они не видели исходного кода даже в дизассемблере. Иногда такой способ разработки называют chinese wall: две группы разработчиков разделены между собой как бы китайской стеной. Нельзя «украсть» то, что ты никогда не видел, это правило соблюдается в работе второй группы.
Одно из первых применений «чистой комнаты» произошло в 1983 году. Архитектура IBM PC активно завоевывала рынок. Производители клонов IBM PC были вынуждены покупать лицензионный ROM BIOS. Тогда компания Phoenix решила выкинуть на рынок свой BIOS, совместимый с IBM PC. Чтобы избежать судебных исков, одна команда исследователей разобрала исходный код IBM и написала документацию для BIOS API. А вторая занималась непосредственно разработкой BIOS, полностью совместимого с имеющимся железом. Метод сработал, и Phoenix удалось избежать юридических последствий.
Существуют пограничные ситуации, находящиеся в серой правовой зоне, например реимплементация оригинального кода на языке более высокого уровня. Если игру, написанную на ассемблере, портируют на C++, то в теории чужие авторские права нарушены не будут. Впрочем, и о судебных разбирательствах по таким делам мне неизвестно. Подробней про такой случай читай в разделе ScummVM.
RE3
Широко известный проект RE3 представляет собой воссозданный с помощью реверс‑инжиниринга движок GTA 3. На нем игру удалось не только собрать и запустить, но и перенести на платформы, которые она изначально не поддерживала, например Nintendo Switch и PSP.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее