Programy komputerowe doczekały się należnych im regulacji ustawowych. Prawo autorskie traktuje je bowiem jako utwory literackie, dzięki czemu pozostają pod szczególną ochroną prawodawcy. Nabywca programu nie może ingerować w jego strukturę, zmieniać funkcjonalności czy legalnie go powielać i odsprzedawać. Te czynności zostały zarezerwowane wyłącznie dla posiadacza praw autorskich. Co jednak, jeśli po zakupie takiego programu jest on wadliwy, a producent nie jest skory do jego natychmiastowej naprawy? Czy tzw. dekompilacja programu komputerowego i ingerencja w jego kod źródłowy jest w takim wypadku dozwolona?
Program komputerowy – jak go zdefiniować?
W ustawie o prawie autorskim i prawach pokrewnych nie znajdziemy legalnej definicji prawa komputerowego. W piśmiennictwie takie posunięcie prawodawcy zostało zaaprobowane. Uznaje się bowiem, że normy prawa mogłyby zbytnio spłycić i usztywnić tę kwestię. Co więcej, ustawodawstwo nie nadąża za rozwojem technologii, co też w przypadku próby regulacji tej materii blokowałoby postęp.
Można jednak sięgnąć do innych aktów, w których program komputerowy został zdefiniowany. Urząd Patentowy Rzeczypospolitej Polskiej wskazuje, że program komputerowy to „zestaw rozkazów lub instrukcji przeznaczonych do użycia bezpośrednio lub pośrednio w komputerze w celu osiągnięcia określonego rezultatu”. Z kolei sięgając do amerykańskiej ustawy Copyright Act, możemy przeczytać, że „programem komputerowym jest zestaw instrukcji lub poleceń wykorzystywanych bezpośrednio lub pośrednio, aby osiągnąć określony rezultat”.
Na czym polega dekompilacja programu komputerowego?
Dekompilacja programu komputerowego to proces tłumaczenia tego programu z języka niższego rzędu, czyli kodu zrozumiałego tylko dla maszyny (kod zero-jedynkowy), na język wyższego rzędu, zrozumiałego dla informatyka kodu źródłowego (kod języka programowania, np. C++, C#, Java, PHP czy Python). Dekompilacja jest zatem procesem pozwalającym odkodować źródło programu i poznać jego algorytm. Dzięki temu możliwe staje się zapoznanie z zastosowanymi przez producenta oprogramowania rozwiązaniami informatycznymi. Dekompilacja pozwala także na uzyskanie informacji dotyczących różnych elementów struktury programu komputerowego, które współdziałają z innymi programami oraz sprzętem, na którym został on zainstalowany. Sama dekompilacja programu komputerowego nie jest nielegalna. Trzeba jednak pamiętać, że kod programu jest pod ochroną prawa autorskiego. Jakakolwiek ingerencja w jego strukturę lub rozporządzanie nim bez wcześniej uzyskanej zgody jest co do zasady niezgodne z literą prawa.
Legalna dekompilacja programu komputerowego a dostosowanie programu do współdziałania z innymi programami
Dekompilacja programu może być stosowana do każdego celu, ale tylko pod warunkiem, że osoba dekompilująca uzyskała zgodę od posiadacza praw autorskich do omawianego dzieła. Istnieją jednak wyjątki, kiedy taka zgoda nie będzie potrzebna. Jest tak, gdy dekompilowanie programu zostało zastosowane w celu dostosowania go do współdziałania z innym programem lub naprawy błędów w nim występujących. Szczegółowe informacje, jakie przesłanki muszą zostać spełnione, aby dekompilacja bez zgody posiadacza praw autorskich była w pełni legalna znajdziemy w art. 6 Dyrektywy Parlamentu Europejskiego i Rady 2009/24/WE z dnia 23 kwietnia 2009 roku w sprawie ochrony prawnej programów komputerowych (dalej jako „dyrektywa”). Zgodnie z tym przepisem, aby ingerowanie w kod aplikacji w celu dostosowania go do współdziałania z innymi programami było możliwe, muszą zostać spełnione 3 warunki.
Po pierwsze czynności te są wykonywane przez licencjobiorcę lub osobę mającą prawo do używania kopii programu, lub upoważnioną osobę działającą w ich imieniu. Oznacza to, że dekompilacji mogą dokonywać wyłącznie podmioty, które legalnie nabyły kopie oprogramowania. Legalnym posiadaczem programu komputerowego jest osoba, która w sposób niestanowiący naruszenia prawa weszła w posiadanie fizycznego nośnika z programem bądź uzyskała dostęp do jego niematerialnej kopii – nabyła CD czy DVD z programem lub kod dostępowy pozwalający na pobranie programu ze strony producenta. Bezwzględnie zabroniona jest dekompilacja programu dokonywana przez osobę, która weszła w jego posiadanie bez uzyskania licencji producenta, np. pobrała go za pomocą sieci Peer–to–peer (np. używając programu Utorrent lub BitTorrent).
Po drugie informacje konieczne do osiągnięcia interoperacyjności nie mogły być uprzednio łatwo dostępne. Za łatwo dostępne możemy uznać takie informacje, których uzyskanie nie wymaga znacznego nakładu pracy lub środków finansowych. Zatem jeżeli jesteśmy w stanie pobrać zdekompilowany kod źródłowy ze strony producenta lub uzyskać od niego informacje, jak jej dokonać nieodpłatnie lub za standardową stawkę (rynkową), możemy mówić o łatwym dostępie.
Po trzecie czynności dekompilacyjne ograniczają się do tych części oryginalnego programu, które są niezbędne dla osiągnięcia interoperacyjności (współdziałania z innymi programami). Oznacza to, że niedopuszczalna jest dekompilacja całego programu komputerowego, a wyłącznie ta część, która odpowiada za zgodność aplikacji z innymi programami.
Ograniczenia w legalnej dekompilacji
Nie zawsze spełnienie wszystkich powyżej wskazanych wymogów będzie uprawniało nabywcę oprogramowania do jego dekompilowania. Ustawodawca przewidział ograniczenia w tej kwestii, mianowicie zabronione będzie:
- wykorzystanie informacji uzyskanych w wyniku dekompilacji do innych celów niż osiągnięcie współdziałania niezależnie stworzonego programu komputerowego,
- przekazanie ich innym osobom, chyba że jest to niezbędne do osiągnięcia współdziałania niezależnie stworzonego programu komputerowego,
- wykorzystanie ich do rozwijania, wytwarzania lub wprowadzania do obrotu programu komputerowego o istotnie podobnej formie wyrażenia lub do innych czynności naruszających prawa autorskie.
Legalna dekompilacja programu komputerowego a błędy programu
Oprócz możliwości dekompilowania programu w celu dostosowania go do współdziałania z innymi aplikacjami legalna jest również naprawa występujących w nim błędów. W tym wypadku możliwa jest dekompilacja całości programu. Zgodnie z art. 5 ust. 1 dyrektywy modyfikacje programu komputerowego nie wymagają zezwolenia uprawnionego, jeśli są konieczne do użycia programu przez uprawnionego nabywcę zgodnie z zamierzonym celem, włącznie z poprawianiem błędów.
Powyższe zostało potwierdzone w nie tak dawnym wyroku Trybunału Sprawiedliwości Unii Europejskiej z 6 października 2021 roku (sygn. akt: C-13/20), w którym TSUE uznał, że dekompilacja całości lub części oprogramowania w celu naprawy jego błędów jest dopuszczalna, również bez zgody uprawnionego z tytułu praw autorskich. Trybunał podkreślił przy tym, że „uprawniony nabywca programu komputerowego, który chciałby dokonać dekompilacji tego programu w celu poprawienia błędów mających wpływ na jego funkcjonowanie, nie jest zobowiązany do spełnienia wymogów przewidzianych w art. 6 tej dyrektywy. Niemniej jednak nabywca ten jest uprawniony do dokonania takiej dekompilacji jedynie w zakresie koniecznym do poprawienia tych błędów i z poszanowaniem, w stosownym przypadku, warunków przewidzianych w umowie z uprawnionym z tytułu praw autorskich do tego programu”.
Czym jest błąd programu komputerowego?
Czym jednak jest błąd programu komputerowego? Może być nim każdy element programu bądź jego brak, który utrudnia lub uniemożliwia korzystanie z niego w sposób zgodny z jego przeznaczeniem. Jeżeli zatem przez określoną „wadę w kodzie” program się zawiesza, wyłącza, nie zapisuje sporządzonych plików czy wręcz je usuwa, możemy mówić o błędzie. Jako błąd traktować należy także lukę bezpieczeństwa, tj. „furtkę” w kodzie, która daje możliwość ingerowania w program przez osobę trzecią. Dobrym rozwiązaniem dla obu stron umowy sprzedaży oprogramowania jest dokładne zdefiniowanie przypadków uznawanych za wystąpienie błędu oraz wyliczenia tych najczęściej występujących. Takie działanie pozwoli użytkownikowi programu na usuwanie błędów zakupionego produktu bez strachu, że zostanie on pozwany przez producenta z tytułu praw autorskich. Na koniec warto wspomnieć, że poprawianie błędów programu bez ingerencji w jego kod źródłowy nie stanowi przejawu wkroczenia w prawa autorskie. Takie sytuacje będą miały miejsce m.in. w wypadku zmiany ustawień programu w granicach przewidzianych przez jego autorów lub podmiany, lub usunięcia uszkodzonego pliku.