TeamQuest Blog

Dekompilować nie każdy może - część 1 z 2

Dekompilować nie każdy może - część 1 z 2

Marcin Sarna , 11.06.2021 r.

Dziś zastanowimy się nad prawnymi aspektami dekompilacji programów komputerowych.

Jest to pierwszy nasz artykuł z cyklu "Piątki z Prawem IT". W każdy kolejny piątek jeden z wpisów będzie dotyczył jakiegoś zagadnienia prawnego, które dotyczy deweloperów, właścicieli startupów czy po prostu - generalnie - szeroko rozumianej informatyki.

Reverse engineering

Tzw. reverse engineering programu stanowi przydatną w praktyce technikę, pozwalającą na poznanie sposobu jego działania i zastosowanych technik programistycznych. Dekompilacja, stanowiąca jeden z przejawów inżynierii odwrotnej, umożliwia także modyfikację software’u poprzez np. zwiększenie jego funkcjonalności. Procesy te nie odbywają się jednak w prawnej pustce i warto wiedzieć jak mają się one do prawnoautorskiej ochrony twórcy, a przede wszystkim – kiedy i co można dekompilować.

Ochrona prawnoautorska twórcy programu komputerowego

W prawie autorskim programista, który napisał dany program, jest jego twórcą a sam program nazywa się utworem. Jednak nie każdy program będzie utworem a zatem zostanie poddany ochronie prawnej. Utworem będzie bowiem tylko taki program, który stanowi „przejaw działalności twórczej o indywidualnym charakterze, ustalony w jakiejkolwiek postaci”. Mówiąc inaczej, program musi zostać napisany przez autora „własnoręcznie” i nie stanowić kopii innego programu, już dostępnego na rynku.

Autor takiego programu (utworu) jest chroniony w ten sposób, że co do zasady on i tylko on może z niego korzystać (tj. używać) i nim rozporządzać (tj. sprzedać czy też udzielić licencji na korzystanie z niego innej osobie). Ochrona ta istnieje bez względu na to jaką program ma wartość rynkową, do czego jest przeznaczony czy też na jakim nośniku jest zapisywany.

Firma informatyczna napisała program na zlecenie sklepu odzieżowego. Strony umówiły się, że program zostanie dostarczony na płycie CD i pendrive. Ostatecznie jednak firma udostępniła sklepowi program poprzez przesłanie URL do pliku instalacyjnego. Sklep pobrał program i zainstalował we własnym zakresie. Po roku czasu firma informatyczna odkryła, że program został zainstalowany na większej ilości stanowisk niż przewidywała to licencja. Sklep podnosił, że skoro firma nie dostarczyła programu na określonych nośnikach to również sklep mógł sobie zainstalować program w dowolnej ilości kopii.
Stanowisko sklepu nie jest prawidłowe. Wprawdzie firma informatyczna naruszyła warunki umowy (i może jej za to grozić np. zapłacenie kary umownej) ale nie oznacza to, że jej program utracił ochronę z tytułu praw autorskich.

Kod źródłowy – zakres ochrony

Jak już napisaliśmy, ochrona przyznana programowi komputerowemu obejmuje wszystkie formy jego wyrażenia ale same „idee i zasady” nie podlegają ochronie. Oznacza to, że pod ochroną pozostaje sam kod źródłowy rozumiany jako ciąg znaków zapisany w formacie .java, .cpp, .php czy innym ale już poszczególne rozwiązania (metodologia) nie. Czyli np. można korzystać z cudzego pomysłu na nazewnictwo zmiennych czy sposób komentowania kodu. Ochronie nie podlegają formuły rozwiązania poszczególnych kwestii (np. określony sposób korzystania z funkcji czy obiektów). Chronione są też interfejsy czyli te składowe programu, które odpowiadają za interakcję użytkownika z komputerem a także software’u z hardwarem.

Warto zapamiętać ogólną regułę: jeżeli programista analizując cudzy kod chce wykorzystać jego fragment w swoim programie, może to zrobić jeżeli kod nie ma charakteru indywidualnego, twórczego. Oznacza to, że można w szczególności wykorzystać taki kod źródłowy, który stanowi tak naprawdę jedyną możliwą drogę do zaprogramowania określonej funkcji.

GETO Systemy Informatyczne sp. z o.o. napisała program, który łączył się z systemami informatycznymi banków i pozwalał na dokonywanie operacji bankowych bez korzystania z ich stron WWW. W posiadanie kodu źródłowego wszedł informatyk jednego z klientów GETO, Jacek Krzepa, który otrzymał kod zgodnie z licencją. Pan Jacek stwierdził, że napisze dla swojego pracodawcy inny program z wykorzystaniem funkcji łączących się z systemami bankowymi, zapisanymi w kodzie GETO.
Pan Jacek może to zrobić bowiem banki dopuściły korzystanie z ich systemów za pomocą API, do którego udostępniły dokumentację. Nie ma więc innego sposobu na nawiązanie łączności z serwerami bankowymi niż ten, na który one zezwoliły i który wykorzystało GETO. Dlatego też sposób ten nie ma charakteru twórczego (indywidualnego) i nie podlega ochronie prawnoautorskiej.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej