объектный код программы это
Объектный код программы это
Правовая охрана элементов, составляющих программу для ЭВМ
«Журнал Суда по интеллектуальным правам», № 7, март 2015 г., с. 50-54
Законодательство РФ обеспечивает правовую охрану программе для ЭВМ при наличии главного критерия охраноспособности – творческая составляющая. Как следует из положений абз. 1 п. 1 ст. 1228 ГК РФ, автором результата интеллектуальной деятельности признается гражданин, творческим трудом которого создан такой результат.
Бернская конвенция «Об охране литературных и художественных произведений» 1886 г. (в ред. 1971 г.) (здесь и далее – Бернская конвенция), являющаяся старейшим международным договором, который образует фундамент международной системы охраны авторских прав, предусматривает для программ для ЭВМ правовую охрану на уровне литературных произведений. Цель Бернской конвенции, как говорится в ее преамбуле, состоит в обеспечении возможно более эффективным и единообразным путем охраны прав авторов на их литературные или художественные произведения. Из принципов, заложенных Бернской конвенцией, программа будет охраняться, если она является оригинальной, в том смысле, что она представляет собой результат мыслительной деятельности самого автора. Никакие другие критерии ее охраноспособности не устанавливаются.
Возвращаясь к приведенной в ст. 1261 ГК РФ дефиниции, можно сделать вывод, что программа для ЭВМ включает в себя следующие элементы:
Исходный код программы как основная ее ценность представляет собой текст программы, написанный н одном из языков программирования и доступный для восприятия человеком, знакомым с соответствующим языком программирования. Язык программирования предназначен для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами. В настоящее время известно более 8500 языков программирования. В числе наиболее популярных языков можно выделить C, Java, PHP, C++, Perl, Visual Basic, JavaScript, Delphi и др. 4
Подводя итог вышесказанному, для всесторонней правовой защиты программы для ЭВМ и ее элементов представляется верным рассматривать в качестве объекта авторского права не только саму программу для ЭВМ, но и ее отдельные составляющие.
1 Кристина Дж. Маккланг, Джон А. Герриери, Кенне А. Маккланг. Микрокомпьютеры для юристов. М.: Юридическая литература, 1988. С. 122.
2 Гришаев С.П. Интеллектуальная собственность: учебное пособие. – М.: Юристъ, 2004.
3 Пленум Верховного Суда РФ в п. 21 Постановления от 19 июня 2006 г. № 15 «О вопросах, возникших у судов при рассмотрении гражданских дел, связанных с применением законодательства об авторском праве и смежных правах» указывал, что «к объектам авторского права могут относиться названия произведений, фразы, словосочетания и иные части произведения, которые могут использоваться самостоятельно, являются творческими и оригинальными».
6 Приказ ФТС России от 27 марта 2012 г. N 575 (ред. от 01.11.2013) «О контроле за экспортом товаров и технологий двойного назначения, которые могут быть использованы при создании вооружений и военной техники и в отношении которых осуществляется экспортный контроль» // СПС «ГАРАНТ».
7 Meeker, Heather J. The open source alternative: understanding risks and leveraging opportunities. Published by John Wiley&Sons, Inc, Hoboken, New Jersey. 2008, P. 7.
8 Лицензирование программного обеспечения в России: законодательство и практика / /А.И. Савельев. М.: Инфотропик Медиа, 2012. С.19-20.
Объектно-ориентированное программирование. Часть 1. Что такое классы и объекты
Почти всё современное программирование построено на принципах ООП, поэтому их должен понимать каждый разработчик. Узнайте основы из этой статьи.
Введение
Это первая статья из серии, посвященной объектно-ориентированному программированию. Она предназначена для тех, кто хочет понять саму суть этой парадигмы разработки, а не просто научиться использовать классы и объекты.
Цикл состоит из статей, посвященных различным аспектам ООП:
Все примеры в этой серии мы рассмотрим на языке C#. Для наглядности они будут связаны с разработкой игр, потому что в них активно используются объекты.
Перед чтением этой серии статей вам нужно ознакомиться с такими понятиями:
Работа будет происходить в Visual Studio 2019, но вполне подойдет и VS 2017.
В конце каждой статьи будут задания, которые помогут закрепить тему. Выполнив задание, загружайте его на GitHub и пишите в комментариях ссылку на репозиторий — я постараюсь проверить каждое решение и дать обратную связь (но я всего лишь человек).
Выполнять задания не обязательно, но без практики просто невозможно осилить такую сложную тему, как ООП. Если же вам все равно лень выполнять задания, можете просто посмотреть мой вариант решения, который я также буду публиковать в комментариях.
Пишет о разработке сайтов, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Что такое ООП
Объектно-ориентированное программирование (сокращенно ООП) — это парадигма разработки программных систем, в которой приложения состоят из объектов.
Объекты — это сущности, у которых есть свойства и поведение. Обычно объекты являются экземплярами какого-нибудь класса. Например, в игре может быть класс Character (персонаж), а его экземплярами будут hero или npc.
Свойства — это данные, которые связаны с конкретным объектом:
Поведение объекта определяется с помощью методов — специальных блоков кода, которые можно вызывать из разных частей программы. Например, у того же объекта Character могут быть следующие методы:
Используя эти свойства и методы, можно значительно ускорить разработку, сделать код более читаемым. К тому же самому программисту проще составлять код, если он думает с помощью объектов.
То есть он не пишет какую-то функцию, которая будет делать что-то для программы в целом. Вместо этого он мысленно разделяет приложение на отдельные компоненты и продумывает их свойства и поведение.
Такую парадигму используют многие популярные языки:
Плюсы и минусы объектно-ориентированного программирования
Плюсы | Минусы |
---|---|
Легко читается. Не нужно выискивать в коде функции и выяснять, за что они отвечают. | Потребляет больше памяти. Объекты потребляют больше оперативной памяти, чем примитивные типы данных. |
Быстро пишется. Можно быстро создать сущности, с которыми должна работать программа. | Снижает производительность. Многие вещи технически реализованы иначе, поэтому они используют больше ресурсов. |
Проще реализовать большой функционал. Так как на написание кода уходит меньше времени, можно гораздо быстрее создать приложение с множеством возможностей. | Сложно начать. Парадигма ООП сложнее функционального программирования, поэтому на старт уходит больше времени. |
Меньше повторений. Не нужно писать однотипные функции для разных сущностей |
Как использовать классы и объекты
Изучая C#, разработчик в первый же день сталкивается с классами и объектами. Например, вот как выглядит первая программа любого новичка:
Здесь создается класс Program, у которого есть метод Main () — с него начинается выполнение программы, поэтому его называют точкой входа.
Для вывода текста используется следующий оператор:
Тут программа обращается к объекту Console и вызывает метод WriteLine (), который выводит переданное значение в консоль.
Также у объекта Console есть разные свойства:
Если бы не было объекта, было бы сложно определить, цвет какого фона и какого шрифта будет указываться, потому что их в программе может быть несколько.
Исходный код: что нужно знать, чтобы успешно защитить права на программное обеспечение?
Программное обеспечение — специфический объект авторских прав. Программы обладают рядом технических характеристик, которые нужно учитывать, чтобы успешно защищать интересы правообладателей. Что такое исходный код программы? Как доказать, что программу украли? Какие методы защиты прав на программное обеспечение наиболее эффективны?
Рассказывает:
Роман Янковский,
советник практики IP & IT юридической фирмы «Томашевская и партнеры»
ГК РФ определяет программу для ЭВМ как совокупность данных и команд, предназначенных для функционирования компьютерных устройств. Программы могут быть выражены на любом языке и в любой форме, включая исходный текст и объектный код (ст. 1261 ГК РФ).
Благодаря такому определению многие юристы воспринимают исходный код программы как текст наподобие литературного произведения. Базовое представление о программе: это некие строки, которые компьютер читает и выполняет по очереди, и таким образом программа работает. Однако такое понимание не учитывает технические нюансы, которые влияют на возможность защиты права на программу.
Какие технические особенности влияют на защиту кода?
Особенность № 1
Большинство языков программирования являются компилируемыми. Это значит, что получить исходный текст чужой программы невозможно, если вам не передал его сам разработчик.
Языки программирования бывают интерпретируемыми и компилируемыми. Программу на интерпретируемом языке программирования компьютер, грубо говоря, построчно читает. Но на практике такие языки программирования используются достаточно редко.
Большинство программ сегодня пишут на компилируемых языках программирования. Такие программы работают только после прохождения специальной процедуры компиляции. Программа-компилятор собирает исходный текст программы, написанной, упаковывает и изменяет его и выдает так называемый исполняемый файл (обычно с расширением «.exe» – от англ. “executable”).
Иными словами, компилятор преобразует исходный текст программы в объектный код, и только после этого программу можно запустить на компьютере.
А куда делся исходный текст программы, который написал программист при разработке программы?
Компилятор преобразовал его в объектный код. Мы не можем вернуть его обратно. Максимум, что мы можем сделать с объектным кодом, — представить его в виде так называемых ассемблерных команд. Ассемблерные команды — это максимально очеловеченное и удобочитаемое представление машинного кода (хотя об удобочитаемости тут можно говорить весьма условно).
Таким образом различают:
Теоретически небольшую программу можно сразу написать на языке низкого уровня (используя ассемблерные команды). Но сейчас так никто не делает, потому что написать даже простую программу на ассемблере — это большой объем работы. Программы пишут на языках программирования высокого уровня в виде исходного текста. Затем, как мы уже говорили, компилятор обрабатывает этот текст и превращает его в смесь цифр и букв – объектный код.
Какое значение это имеет для юристов?
Исходный текст есть только у разработчика программы. Когда разработчик распространяет программу, он делает это в виде скомпилированного файла. Технически из этого файла можно получить только объектный код.
Есть процедура так называемой декомпиляции: специалист пытается воссоздать первоначальный код из ассемблерных команд. Согласно ГК РФ, декомпиляция – это воспроизведение и преобразование объектного кода в исходный текст (ст. 1280 ГК РФ). Однако важно понимать, что даже если специалист смог воссоздать код на языке высокого уровня, который генерирует необходимый объектный код (то есть, по сути, восстановил программу), этот код высокого уровня не будет аналогичен первоначальному. То есть этот «исходный текст» не будет исходным в прямом смысле этого слова: после декомпиляции мы не получим исходный текст, который изначально разработчик обработал компилятором.
Из-за этого у правообладателей возникают сложности с тем, чтобы доказать нарушение прав на программное обеспечение.
В файле программы нет исходного текста. Если ваши права нарушены, вы можете только, грубо говоря, показать чужую программу в суде и сказать, что она очень похожа на вашу и делает то же самое. Однако до суда у вас не будет исходного текста чужой программы, чтобы подтвердить ее тождественность с вашей.
Чтобы доказать нарушение, потребуется судебная экспертиза. Для этого нужно через суд запросить исходный текст у потенциального нарушителя. Но здесь нужно учитывать, что под видом исходного текста оппонент может передать абсолютно сторонний файл. Поэтому правообладателю придется перепроверить, что на выходе переданный исходный текст действительно представляет собой спорную программу.
Особенность № 2
Программы занимают физически очень большой объем.
Количество строк кода в совсем небольшой игре для телефона сопоставимо с количеством строк в ГК РФ. Серьезные программы занимают значительно больший объем. Поэтому не так просто принести в суд распечатку кода своей и чужой программ и сравнить их: это будут две огромные кипы бумаги.
Есть и другой нюанс. Программы могут быть практически идентичны, при этом код в них может быть структурирован по-разному. Технически это возможно – расположение отдельных блоков кода в программе можно менять. В такой ситуации выявить сходство с учетом объема программы будет непросто даже разработчику.
Особенность № 3
Программы постоянно обновляются.
В программы постоянно вносятся изменения. Если программа объемная, то новые версии могут появляться несколько раз в день. Соответственно, у нее нет постоянного кода, который можно было бы депонировать раз и навсегда.
Особенность № 4
Большинство программ пишут на основании уже готового кода.
Программы сегодня не создаются с нуля. Разработчики пишут большинство программ на основе уже готовых модулей, так называемых библиотек. Они бывают платными и бесплатными. Бесплатные библиотеки часто распространяются на условиях открытой лицензии, что представляет проблему для юристов.
Дело в том, что разные типы свободных лицензий накладывают разные обязательства на правообладателя программы, в которой используется готовая библиотека. Так, по одним лицензиям права на библиотеку переходят в общественное достояние и могут использоваться кем угодно. По другим, наоборот, использование библиотек в составе коммерческих программ либо совсем запрещено, либо возможно лишь при условии раскрытия кода (то есть публикации результата в открытом доступе).
Есть два способа внедрить чужую библиотеку в свою программу:
На заметку
Не всё, что юристы называют «программой», выполняет какую-то активную функцию. Например, для создания сайтов используют так называемые языки гипертекстовой разметки. Сайты тоже имеют код, который не отображается при открытии сайта, но отвечает за его техническую функциональность. При этом такой код не является программой в традиционном понимании — это скорее что-то настроек отображения сайта, которые передаются пользователю и обрабатываются его браузером. Поэтому в разных браузерах сайты могут выглядеть по-разному, тогда как команда обычно выдает один и тот же результат на разных компьютерах.
Как оформить и защитить права на программу?
Возможны несколько вариантов оформления прав на программу, чтобы в последующем можно было отстоять права на нее.
Программа для ЭВМ является объектом авторского права. По ГК РФ регистрация для защиты авторских прав не требуется (ст. 1259 ГК РФ).
Однако для программ для ЭВМ такая регистрация возможна: специальный реестр ведет Роспатент. Реестр программ для ЭВМ открыт с 2013 года. Регистрация программы в реестре добровольная.
Переход прав на зарегистрированные программы тоже регистрируется. Также в реестре можно отдельно регистрировать каждую версию программы. Это имеет смысл, если изменения были существенными. Можно зарегистрировать программу любого объема.
Обратите внимание, что код программы не индексируется и не проверяется на работоспособность. Кроме того, новый код не сверяют с кодами, зарегистрированными ранее.
Самое главное: регистрация в реестре не считается правопорождающим фактом. А сам реестр не считается публичным – перед покупкой программы у покупателя нет обязанности проверять в реестре, является ли продавец ее правообладателем.
По сути, регистрация в этом реестре представляет собой механизм добровольного депонирования. Автором программы считается лицо, указанное в реестре, но только пока не доказано иное (п. 6 ст. 1262 ГК РФ, п. 109 Постановления Пленума ВС РФ от 23.04.2019 № 10 «О применении части четвертой Гражданского кодекса Российской Федерации»).
На заметку
Существуют альтернативные способы депонирования программ. Например, у ВОИС недавно появилась услуга онлайн-депонирования интеллектуальных активов. Правда, пока нет практики использования таких сертификатов в качестве доказательств, потому что этот механизм совсем новый – работает с июня 2020 года.
ГК РФ напрямую не предусматривает такой способ защиты прав на программы. Наоборот, в законе указано, что программа для ЭВМ не является изобретением (ст. 1350 ГК РФ). Поэтому при патентовании программы как таковой можно столкнуться со сложностями.
Роман Янковский рекомендует патентовать не саму программу, а алгоритм ее работы. Такие патенты встречаются на практике (например, есть патенты на решения для распределенного реестра).
В качестве примера можно привести спор между приложением для знакомств Tinder и его конкурентом – Bumble. Сервис-конкурент запустили бывшие сотрудники Tinder. У обоих приложений были очень похожие функции, в частности механизм «свайпа», на который у Tinder был патент на промышленный образец.
Распространить режим коммерческой тайны на разработанный софт и потребовать от работников подписать соответствующие документы – это хорошее решение по двум причинам:
Исходный текст и объектный код программ для ЭВМ как объекты правовой охраны
Автор: Гинодман Е.Н., кандидат юридических наук.
1. Правовая охрана программ для ЭВМ
В соответствии с действующим законодательством программа для ЭВМ является результатом интеллектуальной деятельности (п. 2 ч. 1 ст. 1225 ГК РФ) и объектом авторских прав (ст. 1259 ГК РФ). Авторские права на все виды программ для ЭВМ (в том числе на операционные системы и программные комплексы), которые могут быть выражены на любом языке и в любой форме, включая исходный текст и объектный код, охраняются так же, как авторские права на произведения литературы (ст. 1261 ГК РФ).
Согласно п. 1 ст. 1266 ГК РФ не допускается без согласия автора внесение в его произведение изменений, сокращений и дополнений. В пп. 9 п. 2 ст. 1270 ГК РФ закреплено право автора или иного правообладателя на переработку произведения, под которой понимается создание нового, производного произведения. В отношении программы для ЭВМ законодатель в данной норме употребляет наряду с переработкой понятие модификации.
Модификация программы для ЭВМ – это любые ее изменения, в том числе перевод такой программы с одного языка на другой язык, за исключением ее адаптации.
Адаптация программы для ЭВМ – это внесение изменений исключительно в целях функционирования программы для ЭВМ или базы данных на конкретных технических средствах пользователя или под управлением конкретных программ пользователя.
Как следует из системного анализа пп. 9 п. 2 ст. 1270 и пп. 1 п. 1 ст. 1280 ГК РФ, адаптация программы для ЭВМ является частным случаем изменения программы для ЭВМ, но при этом изменения, не требующего разрешения правообладателя (то есть легального).
В соответствии с пп. 1 п. 1 ст. 1280 ГК РФ лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения осуществлять действия, необходимые для функционирования программы для ЭВМ или базы данных (в том числе в ходе использования в соответствии с их назначением), включая запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), внесение в программу для ЭВМ или базу данных изменений исключительно в целях их функционирования на технических средствах пользователя, исправление явных ошибок, если иное не предусмотрено договором с правообладателем.
Кроме того, п. 3 ст. 1280 ГК РФ предоставляет пользователю право без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении определенных условий.
Таким образом, из содержания ст. 1261 ГК РФ следует, что правовая охрана предоставляется как самой программе для ЭВМ, так и средствам ее выражения — исходному тексту и объектному коду.
Для определения правомерности действий лица, не являющегося правообладателем, при использовании программы для ЭВМ интересным представляется вопрос о том, что признается изменением программы для ЭВМ: изменение только исходного кода или также изменение объектного кода.
Чтобы ответить на этот вопрос, необходимо дать определение указанных понятий.
2. Исходный текст программы для ЭВМ
Гражданский кодекс РФ использует понятие «исходный текст», однако определения данного понятия не содержит.
При этом в ГОСТах можно встретить определение понятия «исходный код». Исходный код — это код, написанный на исходном языке программирования, таком как язык ассемблера и/или язык высокого уровня, в машиночитаемой форме, пригодной для ввода в ассемблер или компилятор (п. 3.19 ГОСТ Р 51904-2002 «Государственный стандарт Российской Федерации. Программное обеспечение встроенных систем. Общие требования к разработке и документированию», утв. и введен в действие Постановлением Госстандарта России от 25.06.2002 N 247-ст, далее — ГОСТ Р 51904-2002).
В другом ГОСТе дано более простое определение исходного кода – это компьютерная программа в текстовом виде на каком-либо языке программирования (п. 3.4 ГОСТ Р 54593-2011 «Национальный стандарт Российской Федерации. Информационные технологии. Свободное программное обеспечение. Общие положения», утв. и введен в действие Приказом Росстандарта от 06.12.2011 N 718-ст, далее — ГОСТ Р 54593-2011).
Из анализа указанных определений следует вывод о том, что, поскольку исходный код представляет собой текстовый вид программы для ЭВМ, понятия «исходный код» и «исходный текст» являются равнозначными.
В юридической литературе высказывалась точка зрения, согласно которой именно тот факт, что исходный код программы сохраняется в текстовом файле, доступном для прочтения человеком, послужил основанием для законодателя приравнять компьютерную программу к литературным произведениям [1].
Запись исходного кода представляет собой оригинал произведения. Код в виде текста может отображаться на экране монитора, а может быть написан от руки. Однако исходный код доступен для понимания людьми, но недоступен для понимания компьютером. Для того чтобы программа для ЭВМ заработала, исходный код необходимо превратить в исполняемый файл (объектный код) [2].
3. Объектный код программы для ЭВМ
Объектный код – это представление компьютерной программы на низком уровне, обычно не в форме, непосредственно пригодной для объектного компьютера, а в форме, включающей в себя, помимо информации о процессорных командах, информацию о размещении программы (п. 3.31 ГОСТ Р 51904-2002).
Есть и иное определение объектного кода – это код, который является непосредственно пригодным для использования центральным процессором объектного компьютера, и является, следовательно, загружаемым в аппаратные средства или систему ПО (п. 12.20 ГОСТ Р 51904-2002).
Таким образом, для того чтобы исходный код стал доступен для понимания конкретным устройством, он компилируется специальными программами (компиляторами), вследствие чего происходит его преобразование в форму, понятную компьютеру. Следовательно, объектный код — это результат компиляции исходного текста программы [3].
Объектный код также называют исполняемым кодом, так как в результате компиляции исходного кода получается файл, при запуске которого на компьютере начнут исполняться команды, заложенные в исходном коде, программа будет решать задачи, для которых она разработана. Так, при запуске исполняемого exe-файла для конкретной программы на экране компьютера появляется окно с этой программой, после чего пользователь может с ней работать: например, формулировать поисковые запросы в карточке поиска, просматривать результаты поиска, открывать документы, экспортировать файлы и так далее.
4. Этапы создания и изменения программы для ЭВМ
При анализе практики современного программирования выделяют несколько этапов создания и изменения программы для ЭВМ:
Вопрос о том, в какую часть программы для ЭВМ могут вноситься изменения для правильной квалификации их правомерности – только в исходный код, или также в исполняемый/объектный код, — обсуждается в юридической литературе.
5. Изменение исходного и объектного кодов программы для ЭВМ в свете правовой охраны авторских прав
К вопросу об изменении исходного и объектного кодов можно встретить два подхода.
Первый подход основывается на утверждении, что специфика программ для ЭВМ такова, что изменение программы — это изменение именно исходного кода. Если встроенными в программу инструментами, предусмотренными разработчиком для применения пользователем, изменяются только результирующие данные, которые выдает программа, то такие изменения нельзя назвать изменением самой программы. Когда создан объектный код (исполняемый файл), его нельзя изменить, декомпилировать и превратить обратно в исходный код. В теории и практике это возможно, но является хакерством (кроме случаев, перечисленных в п. 3 ст. 1280 ГК РФ). В обычной практике это невозможно. Когда речь идет об изменении программы, человек может изменять только исходный код. [5].
Второй подход основывается на мнениях о том, что изменения в программу для ЭВМ следует квалифицировать независимо от того, куда были внесены изменения: в исходный код/текст программы или в исполняемый/объектный код программы для ЭВМ [6].
Некоторые авторы отмечают, что в современном программировании одни и те же изменения в программу могут вноситься различными способами, на разных этапах и разными инструментами как в исходный код/текст, так и в исполняемый/объектный код программы для ЭВМ. И именно этот критерий — внесение изменений как в исходный код/текст, так и в исполняемый/объектный код — предлагается авторами брать за основу определения изменений в программу для ЭВМ [7].
Такая логика вполне закономерна: поскольку изменение исходного кода программы неизбежно ведет к изменению исполняемого/объектного кода, следовательно, с точки зрения правовой охраны изменением программы для ЭВМ признаются как изменения исходного кода, так и изменения исполняемого/объектного кода. Здесь представляет особый интерес квалификация изменений исполняемого/объектного кода пользователем, эксплуатирующим программный продукт на своем устройстве. Обычный пользователь не видит исходный код, но видит результат его преобразования в исполняемом коде – благодаря данному преобразованию или внесенным изменениям могут появиться новые возможности работы с программой.
В юридической литературе приводятся критерии разграничения оригинального и производного произведений на основании судебной практики зарубежных стран. Например, в США для сравнения компьютерных программ и объектов, от них образованных, на предмет выявления факта переработки используют специальный тест Abstraction-Filtration-Comparison test (AFC).
При применении данного теста сравниваются основные элементы программы: основное назначение, структура или архитектура программы, модули, алгоритмы и структуры данных, исходный код и объектный код. Затем происходит выделение неохраняемых элементов, которые есть в программе из-за использования открытой лицензии, и сравнение уже основных охраняемых элементов. Таким образом, не только исходный, но и объектный коды сравниваются на предмет внесения изменений в программу для ЭВМ [8].
Обратимся к российским нормативным документам и судебной практике
В соответствии с п. 3.11 ГОСТ Р 51904-2002 под изменением программного обеспечения понимаются модификация исходного кода, исполняемого объектного кода или сопутствующих документов относительно их базовой линии.
В соответствии с другим ГОСТом определенные языки программирования формально не проводят различия между исходным текстом программ и исполняемыми файлами, поскольку исполняемые файлы создаются в то время, когда они активированы (п. 12.4 ГОСТ Р ИСО/МЭК 27002-2012 «Национальный стандарт Российской Федерации. Информационная технология. Методы и средства обеспечения безопасности. Свод норм и правил менеджмента информационной безопасности», утв. и введен в действие Приказом Росстандарта от 24.09.2012 N 423-ст).
Признание в качестве объектов авторских прав исходного текста/кода и объектного/исполняемого кода и предоставление им правовой охраны (ст. 1261 ГК РФ) также свидетельствуют о том, что изменения могут вноситься как в исходный, так и в объектный код.
Кроме того, в п. 3 ст. 1280 ГК РФ закреплено право пользователя на декомпиляцию программы ЭВМ, если она необходима для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении определенных условий.
Декомпиляция, как следует из п. 3 ст. 1280 ГК РФ, представляет собой воспроизведение и преобразование объектного кода в исходный текст.
В практике отечественных судов для определения, имела ли место переработка программы для ЭВМ, а значит – нарушение исключительных прав, также сравнивают не только исходные, но и объектные коды. Для этого обычно назначается компьютерно-техническая экспертиза, и на разрешение эксперта ставятся вопросы о том, является ли исходный текст и/или объектный код одной программы производным (созданным на основе) исходного текста и/или объектного кода другой программы, являются ли данные программы идентичными (см., например, Постановление Суда по интеллектуальным правам от 21.11.2016 N С01-328/2016 по делу N А56-21040/2015, Решение Арбитражного суда Архангельской области от 27.05.2020 по делу N А05-12896/2018 (Постановлением Четырнадцатого арбитражного апелляционного суда от 04.09.2020 N 14АП-5315/2020, 14АП-5658/2020 по делу N А05-12896/2018 данное решение оставлено без изменения)).
В случае если суд установит, что ни в исходный, ни в объектный код изменения не вносились, будет сделан вывод о том, что программа для ЭВМ не подверглась изменению.
Напротив, если в результате исследования установят изменение исходного и объектного кода, будет сделан вывод о переработке программы. Так, Суд по интеллектуальным правам удовлетворил исковые требования о признании исключительных прав на программы для ЭВМ, поскольку истцом было доказано, что в результате переработки исходный и объектные коды первоначальной программы существенным образом изменились, в результате чего у пользователя появилась возможность решать дополнительные задачи (Постановление Суда по интеллектуальным правам от 21.03.2017 N С01-1269/2016 по делу N А40-154016/2014).
Изложенное подтверждает высказанное в литературе мнение, согласно которому различия между изменениями в исходный код/текст и в исполняемый/объектный код программы для ЭВМ в настоящее время весьма условны и изменения в программу следует квалифицировать независимо от того, куда были внесены изменения: в исходный код/текст программы или в исполняемый/объектный код программы для ЭВМ [9].
Следовательно, и при разрешенной правообладателем (разработчиком) модификации либо легальной адаптации программы для ЭВМ, и при ее незаконной переработке оба ее элемента – исходный код/текст и исполняемый/объектный код — могут быть подвергнуты изменению.
Данный вывод имеет не только теоретическое, но и практическое значение для выбора варианта правомерного поведения при работе с программными продуктами. На практике регулярно возникают ситуации, когда лицу, использующему программу, требуется внести в нее изменения в той или иной форме.
В литературе приводится пример, когда программа для ЭВМ, переданная облачному провайдеру, технически не приспособлена к тому, чтобы пользователи работали с ней удаленно, и облачному провайдеру требуется внести в нее изменения. Для того чтобы данная программа приобрела новое существенное свойство – возможность предоставляться удаленно, – провайдеру необходимо изменить и исходный, и объектный коды. В соответствии с законом подобные изменения признаются модификацией. Такой переработанный программный продукт будет считаться самостоятельным объектом охраны (производным произведением), а облачный провайдер становится обладателем авторских прав на него. Для правомерного использования переработанной программы и распоряжения исключительным правом на нее облачному провайдеру необходимо получить разрешение правообладателя на переработку (модификацию) программы в соответствии с пп. 9 п. 1 ст. 1270 ГК РФ [10].
Таким образом, и простым пользователям, и специалистам IT-индустрии важно не допускать нарушений исключительных прав на программы для ЭВМ, поскольку данные нарушения влекут как гражданско-правовую, так и в предусмотренных законом случаях уголовную ответственность. Чтобы оставаться в рамках правового поля, необходимо четко следовать установленным законом правилам и при этом отдавать себе отчет в том, как именно могут квалифицироваться соответствующие действия и их результаты.
Примечания:
[1] Девлятшина М. Защита прав на компьютерную программу // ЭЖ-Юрист. 2017. N 25. С. 13.
[2] Саулин И.Н. Практика признания исключительных прав на производные программы для ЭВМ // ИС. Авторское право и смежные права. 2018. N 10. С. 43 — 56.
[3] Соколов Д.В., Шишенина И.В. К вопросу определения критериев изменений программы для ЭВМ // Ассоциация поставщиков программных продуктов: сайт. 2020. URL: http://www.appp.ru (дата обращения: 29.10.2020).
[4] Соколов Д.В., Шишенина И.В. К вопросу определения критериев изменений программы для ЭВМ // Ассоциация поставщиков программных продуктов: сайт. 2020. URL: http://www.appp.ru (дата обращения: 29.10.2020).
[5] Саулин И.Н. Практика признания исключительных прав на производные программы для ЭВМ // ИС. Авторское право и смежные права. 2018. N 10. С. 43 – 56.
[6] Дюков А.В. Проблема правомерной адаптации программы для ЭВМ // СПС КонсультантПлюс.
[7] Соколов Д.В., Шишенина И.В. К вопросу определения критериев изменений программы для ЭВМ // Ассоциация поставщиков программных продуктов: сайт. 2020. URL: http://www.appp.ru (дата обращения: 29.10.2020).
[8] Айрапетов Н.А. Критерии разграничения оригинального и производного произведения // ИС. Авторское право и смежные права. 2020. N 9. С. 52 — 58.
[9] Соколов Д.В., Шишенина И.В. К вопросу определения критериев изменений программы для ЭВМ // Ассоциация поставщиков программных продуктов: сайт. 2020. URL: http://www.appp.ru (дата обращения: 29.10.2020).
[10] Рагозина В.В. Правообладатель программы для ЭВМ и облачный провайдер: особенности соглашений в сфере облачных технологий // ИС. Авторское право и смежные права. 2019. N 6. С. 53 – 62.