728 x 90

Po co komu kradziony kod źródłowy Cyberpunka?

Po co komu kradziony kod źródłowy Cyberpunka?

W ostatnich kilku dniach w Internecie trwa ożywiona dyskusja, kto byłby w stanie skorzystać, wchodząc w posiadanie materiałów skradzionych niedawno z CD Projekt RED. Przyłączmy się i my.

Uwaga: ten artykuł zawiera wyłącznie nasze, niczym niepotwierdzone domysły.

Zacznijmy jednak od faktów, dla osób, które jeszcze nie wiedzą: na początku lutego 2021 CD Projekt RED poinformował, że padł ofiarą ataku ransomware, wskutek którego część firmowych danych została zaszyfrowana, a część wykradziona. Kradzież obejmowała kod źródłowy gier Wiedźmin 3 (w tym niewydanej jeszcze wersji z obsługą raytracingu), Gwint i Cyberpunk 2077.

Niedługo potem na jednym z forów hakerskich opublikowano najmniej cenny kod źródłowy Gwinta (początkowo jako plik w serwisie MEGA, skąd został bardzo szybko usunięty, potem zaś w formie magnet linka BitTorrent).

Chwilę później na innym forum hakerskim ruszyła licytacja najważniejszych kodów źródłowych: Wiedźmina i Cyberpunka. Została jednak zakończona w dość tajemniczych okolicznościach, które sprowokowały wspomnianą na wstępie dyskusję: czy (i po co) ktoś faktycznie mógłby kupić te kody za milion dolarów, czy też jest to tylko próba „wyjścia z twarzą” przez przestępców?

I tyle faktów. Teraz nasze domysły.

Zaskoczyło nas w niej to, jak niewielką wiedzę nt. możliwości spieniężenia dostępu do kodów źródłowych mają redaktorzy konkurencyjnych serwisów o bezpieczeństwie IT – a więc osoby, które powinny się w tym temacie doskonale orientować. Ciekawsze hipotezy znaleźliśmy już choćby tutaj

Oczywistym progiem ograniczającym możliwości spieniężenia takiego kodu jest kwota zakupu – jeśli rzeczywiście był to milion dolarów, to duża część z poniższych możliwości rzeczywiście odpada. Jeśli jednak przyjmiemy, że o żadnym milionie nie ma mowy, a realna kwota to kilkaset lub kilka tysięcy dolarów – wówczas możliwości jest cały szereg. Pomyślmy więc…

Wannabe-gamedev

To nasz pierwszy, najbardziej oczywisty pomysł. Jakiś młody programista chce wejść na rynek gamedev (ew. przejść do firmy z dużo wyższej ligi), przeanalizował już silniki gier dostępne jako open source, a teraz chce się zapoznać z realnymi grami klasy AAA i poznać stosowane w nich sztuczki. A jeśli będzie to kradziony kod i zobaczy go mniej osób mogących stanowić potencjalną konkurencję – tym lepiej dla naszego kandydata.

Zabezpieczenia antypirackie

Druga możliwość to chęć stworzenia cracka (do tych konkretnych gier, bądź do przyszłych produkcji na silniku „Red engine”), albo po prostu stworzenia prywatnej kompilacji wybranych plików, z usuniętymi zabezpieczeniami antypirackimi.

Mody

Kolejną możliwością zarabiania na dostępie do kodu gry jest tworzenie tzw. modów, czyli rozwiązań modyfikujących zasady rozgrywki, dostępne w grze zasoby, ceny czy cokolwiek innego (zobacz stronę z modami dla serii gier Grand Theft Auto).

Co ważne, mody takie wcale nie muszą bezpośrednio zawierać skradzionego kodu – wystarczy, że będą np. bardzo głęboko wgryzać się w prywatne z założenia exporty z poszczególnych bibliotek DLL, czy czytać i parsować pliki gry o zamkniętych formatach, a więc bazować wyłącznie na wiedzy zdobytej wskutek analizy kradzionego kodu.

Multiplayer

W tej chwili Wiedźmin i Cyberpunk nie mają trybu multiplayer – ale może on kiedyś powstać, również dla innych gier opartych na silniku „Red engine”. Kod źródłowy silnika może wówczas być jak znalazł: dogłębna znajomość mechaniki gry, różnych wewnętrznych zależności w silniku, słabości i miejsc „pójścia na skróty” w różnych miejscach itp., co może przesądzić o zdolności do tworzenia nieoczywistych cheatów, przed którymi trudno się będzie zabezpieczyć.

A może już teraz w tym kodzie są jakieś zalążki multiplayera i/lub algorytmów antycheaterskich? Z pewnością wiele osób chciałoby to sprawdzić, choćby na wszelki wypadek.

Wbudowane niespodzianki

W ostatnich latach mamy niestety spory regres „klasycznych” wirusów, infekujących pliki wykonywalne i dodających do nich swój kod. Wiele osób jednak takie wirusy pamięta i zdaje sobie sprawę, że dodanie kodu wirusa do binarki Cyberpunka jest możliwe i bez jego kodów źródłowych…

Ale co, gdyby te kody jednak mieć i dorobić „to i owo” ręcznie, ukrywając je znacznie głębiej i np. uzależniając aktywację konkretnych funkcji zależnie od postępów gry? Oczywiście to nie jest realistyczna droga do stworzenia „zwykłego” wirusa – natomiast jest to znakomita furtka do infekowania konkretnych, wcześniej wyselekcjonowanych osób, podobnie jak taki np. Pegasus.

Konkurencja

Mówimy tutaj już nie o 2 pojedynczych grach, ale o w miarę uniwersalnym i zapewne długo rozwijanym silniku – w kodzie nazywa się on „Red engine R4”. Jeśli zaś mówimy o silniku, to może być on teraz lub w przyszłości licencjonowany – podobnie jak id Software licencjonuje silniki kolejnych Quake’ów.

To zaś otwiera kilka możliwości:

  • chcemy wiedzieć, czym dysponuje i nad czym pracuje nasza konkurencja – ukradnijmy kod i dajmy go po cichu kilku absolutnie zaufanym deweloperom, aby posiedzieli nad nim kilka dni/tygodni/miesięcy i zrobili mniej lub bardziej dokładną analizę: użyte sztuczki graficzne i inne, słabe punkty, z którymi silnik sobie nie radzi (np. obsługa fizyki większych budynków, AI postaci itp.)
  • mamy już własną grę, ale chcemy ją „ulepszyć” o sztuczki z konkurencji klasy AAA, typu raytracing – j/w dajmy ten kod kilku zaufanym deweloperom, niech rozbiorą te sztuczki na czynniki pierwsze i rozrysują kluczowe algorytmy na kartkach, po czym reszta zaimplementuje je od podstaw, jako nowy, niezależny od oryginału kod
  • chcemy licencjonować ten silnik, ale jeszcze nie mamy środków – ukradnijmy go, zróbmy po taniości coś co działa, miejmy coś do pokazania inwestorom, zbierzmy środki na dalsze działania i dopiero wtedy zapłaćmy CDPR
  • drzewo z kodem dużego silnika gry najczęściej zawiera sporo technologii firm zewnętrznych: jakieś zewnętrzne komponenty związane z dźwiękiem, siecią, AI, zaawansowaną fizyką, czy np. renderowaniem elementów twarzy – jeden sprawny programista może je szybko wydzielić do zewnętrznego SDK wyglądającego na pozyskane legalnie, które następnie powędruje do reszty programistów naszej gry – co ponownie otwiera pole do użycia tych technologii już teraz, a zapłaty dużo później
  • integracja z konsolami Xbox i Playstation też tania nie jest, szczególnie gdy mówimy o tzw. next-genach (a tak się składa, że nowe wersje konsol właśnie wchodzą na rynek i większość chętnych nabywców wciąż na nie czeka) – w tej sytuacji wejście w posiadanie przykładowego kodu realizującego topowe efekty graficzne danej konsoli ponownie otwiera drogę do wielu scenariuszy typu „użyjmy teraz, zapłaćmy później”

Konkurencja z Chin itp.

O ile „zachodnia” konkurencja ma dość mocno ograniczone pole do popisu i nie może wprost wziąć całości tego kodu, aby stworzyć na jego bazie konkurencyjną produkcję, o tyle już studia z krajów takich jak Chiny, w których nikt nie przejmuje się prawami autorskimi, jak najbardziej mogą to zrobić.

Oczywiście, jak przytomnie zauważył Niebezpiecznik, przy tej skali kodu, wzięcie całości, a nie tylko relatywnie łatwych do przyswojenia komponentów zewnętrznych, może być długie i trudne. Jeśli jednak Chiny były w stanie stworzyć własny myśliwiec stealth najnowszej generacji, stopniowo rozpracowując zachodnie technologie, dlaczego nie mogą powtórzyć tego z grą?

Jeśli potraktujemy tą grę czysto w kategoriach pojedynczego projektu komercyjnego, wówczas faktycznie nie ma to sensu ekonomicznego. Jeśli jednak podejdziemy do tego na zasadzie strategicznego zdobywania kompetencji, aby potem osadzić swoich, odpowiednio przygotowanych ludzi, w zachodnich firmach i stopniowo przejmować kolejne technologie – dlaczego nie? Przecież dokładnie to Chiny robią już od lat 70-tych w wielu innych branżach.

Manipulacje giełdowe

Nie będziemy ściemniać, nie mamy pojęcia o giełdzie. Zaciekawił nas jednak jeden z komentarzy na Niebezpieczniku:

Zapominacie że spółka jest notowana na giełdzie i znajduje się w czołówce rodzimego WIGu. 1 mln USD to naprawdę mało jeśli jednym newsem bazującym na realnym kodzie można zarzucić spółce piractwo lub podkradanie rozwiązań z innych wytwórni gier. Nie chce podpowiadać ale na miejscu włamywacza obstawił bym teraz pozycje short na cdprojekt i pokrętnymi mniejszymi serwisami wypuścił informacje iż np jakiś tam element silnika został skradziony od blizzarda i że świat gamingowy czeka teraz największa wojna sądowa w historii. Takie newsy można wypuszczać partiami a poźniej nawet jak się już nie będzie do czego przyczepić to mogą dalej próbować oszukiwać że do kolejnych produkcji też się dostali no i generalnie uwalić całą spółkę. News za 1-7 mln usd może dać zrobić shorta na 1-2 mld usd…

Ciężko nam skomentować, na ile tego typu scenariusze, a zwłaszcza potencjalne zyski z ostatniego zdania są realne – natomiast sama w sobie możliwość, aby w ten sposób przynajmniej próbować „podgryzać” spółkę (np. jako konkurencja) wydaje nam się jak najbardziej realna.

Dowolna kombinacja powyższych

Kto powiedział, że musi być tylko jeden kierunek działania? Zwłaszcza jeśli jesteśmy agresywnie działającą firmą konkurencyjną?

Masz inne pomysły? Zwłaszcza takie, które poparte są konkretną wiedzą i doświadczeniem? Pisz w komentarzach albo podeślij nam na kontakt@payload.pl – chętnie dodamy je do artykułu.


Intencją autorów ani wydawcy treści prezentowanych w magazynie PAYLOAD nie jest namawianie bądź zachęcanie do łamania prawa. Jeśli popełniłeś lub masz zamiar popełnić przestępstwo, bądź masz wątpliwości, czy Twoje działania nie będą łamać prawa, powinieneś skonsultować się z najbliższą jednostką Policji lub Prokuratury, a jeśli są one związane z pieniędzmi, dla pewności również z Urzędem Skarbowym.

Nie zezwala się na użycie treści prezentowanych w magazynie PAYLOAD, ani produktów dostępnych w sklepie PAYLOAD, do celów popełniania przestępstw lub przestępstw skarbowych.