Autor Wątek: Zaciemnianie kodu  (Przeczytany 2649 razy)

Offline Jakub27

  • Użytkownik

# Luty 13, 2017, 20:09:17
Od pewnego czasu szukam sposobu na zabezpieczenie gry przed piractwem.  Ogólnie pole działania jest niewielkie więc chwytam się każdego tematu który pomoże utrudnić ewentualne piracenie. I tak natknąłem się na temat zaciemniania kodu. Może to nie uchroni przed piractwem ale może utrudnić odczytanie kodu źródłowego. Nigdy nie stosowałem tej techniki i chciałbym się was zapytać co o tym w ogóle sądzicie? Możecie polecić jakiś program którym będę mogł zaciemnić skompilowany projekt z Unity?  Czy zaciemnianie kodu jest w ogóle bezpieczne?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline koirat

  • Użytkownik

  • +2
# Luty 13, 2017, 22:53:43
A masz już tą grę ?

Powiem może tak, pisz grę a nie zajmuj się duperelami.
Jak już napiszesz to zaczniesz się przejmować zaciemnieniem kodu. ( Czyli jak już napiszesz to przestaniesz się przejmować zaciemnieniem kodu :P ).

I jeszcze jedno - piractwem też się przestaniesz przejmować.

Offline Jakub27

  • Użytkownik

# Luty 13, 2017, 23:09:20
Do czerwca będzie gotowa jedna z 3 gier.  Czasu mało więc się wolę przygotować. Na tłoczenie płyt jestem umówiony na 20 czerwca więc chcę dopiąć wszytko na ostatni guzik co innego wersja cyfrowa... Hmm poszukam jakiegoś programu i zobaczę czy wypali

Offline Rakieta

  • Użytkownik

# Luty 13, 2017, 23:54:58
Kompilowane gry są piracone, a Ty myślisz, że "zaciemnienie" kodu coś da? :) Nie tędy droga. Jedyne zabezpieczenie przed piractwem jakie do tej pory powstało (tzn. o którym wiem) to logika gry/część klienta po stronie serwera (EA Games).

Jakie to ma konsekwencje łatwo się domyślić. Reszta w dużej mierze nie ma sensu.

Jest jakiś tam asset w Unity, który zajmie się tym 'zaciemnianiem'. Jak już zbudujesz grę możesz sobie to kupić, by mieć poczucie, że coś jednak zrobiłeś. Warto zaznaczyc jednak, że twórcy Rust również częściowo zaciemniają/li kod, (połączenie z serwerem/klientem itp) a każdy build jest dostępny co tydzień na torrentach.

---

Całkiem spoko mógłby być system licencji weryfikowanych po stronie serwera. 1 licencja na usera. Nie chce mi się teraz dogłębnie rozkminiać, ale tak na mój ułomny rozum - myślę, że to działałoby w pełni jedynie w sytuacji, gdyby każda kopia gry była inna - miała gdzieś w kodzie klucz zabezpieczony hashem. Opracowany na podstawie tego z pudełka, jakiś tam szyfr. W każdą funkcję walnąć osobny kod weryfikacji (copy/paste). Później zamulić cały kod by był nieczytelny i trudny do dekompilacji. Do tego oczywiście rejestracja użytkowników: ktoś zakładałby konto i wpisywał swój kod z pudełka. Później loguje się do gry, wysyła klucz, a serwer daje odpowiedź.

Tak się jednak nie da :D Tłocznia poprosi o miliony, a kompilacja zajmie lata. Takie tam. Czas spać.

Offline Jakub27

  • Użytkownik

# Luty 14, 2017, 00:16:40
Przecież napisałem, że to nie sposób na piractwo ale na utrudnienia odczytania kodu gry. Piracić będą tu i tak człowiek póki co jest bezradny. Można jedynie utrudnić. Ogólnie nie chcę stosować żadnych zaawansowanych rzeczy związanych z drm. Poza tym gra ma być dostępna również w trybie offline tak więc żadna komunikacja z internetem nie wchodzi w grę.

Offline koirat

  • Użytkownik

# Luty 14, 2017, 00:56:11
Do czerwca będzie gotowa jedna z 3 gier.  Czasu mało więc się wolę przygotować. Na tłoczenie płyt jestem umówiony na 20 czerwca więc chcę dopiąć wszytko na ostatni guzik co innego wersja cyfrowa... Hmm poszukam jakiegoś programu i zobaczę czy wypali
20 czerwca ? Którego roku ?

Normalnie trzymał bym kciuki, niestety wszystko co piszesz wskazuje na to że nie jest to prawda.

Offline lethern

  • Użytkownik

# Luty 14, 2017, 01:13:13
zaciemnianie kodu to (jak podejrzewam) jedynie odroczenie o dni, no tygodnie, faktu pojawienia się gry na torrentach - jeżeli komuś będzie się chciało (jeżeli gra jest tego warta)
inną technikę obrali ludzie z Croteam (od serious sam), tam gdy gra wykrywała piractwo, zaczęła podnosić poziom trudności "do nieskończoności".. jaki to miało skutek w tym temacie i czy pomogło, nie wiem, ale mozna wygooglowac "serious sam anti piracy"
« Ostatnia zmiana: Luty 14, 2017, 01:15:23 wysłana przez lethern »

Offline Jakub27

  • Użytkownik

# Luty 14, 2017, 01:22:44
20 czerwca ? Którego roku ?

Normalnie trzymał bym kciuki, niestety wszystko co piszesz wskazuje na to że nie jest to prawda.
Tego roku.  Cztery lata pracy po 16h dziennie... Kasa się kończy a żyć trzeba. Firma jest zarejstrowana od listopada.  Na początku będą to skromne projekty. Czy wierzysz czy nie to nie moja sprawa :) wiem,  że temat wrażliwy dlatego pozostańmy przy temacie głownym.

Offline Jakub27

  • Użytkownik

# Luty 14, 2017, 01:25:51
zaciemnianie kodu to (jak podejrzewam) jedynie odroczenie o dni, no tygodnie, faktu pojawienia się gry na torrentach - jeżeli komuś będzie się chciało (jeżeli gra jest tego warta)
inną technikę obrali ludzie z Croteam (od serious sam), tam gdy gra wykrywała piractwo, zaczęła podnosić poziom trudności "do nieskończoności".. jaki to miało skutek w tym temacie i czy pomogło, nie wiem, ale mozna wygooglowac "serious sam anti piracy"
Też tak myślę do tego mogą pojawić się jakieś bugi itp. Napisałem do znajomego co pracuje już kilka dobrych lat w małym studiu i zobaczę czy u nich takie coś się stosuje hmm

Offline Joker

  • Użytkownik

# Luty 14, 2017, 02:06:34
Szkoda na to środków. Jeżeli gra nie odniesie sukcesu nikt jej i tak nie ukradnie, bo nikogo nie będzie interesowała. A jak odniesie to i tak ktoś te zabezpieczenia szybko złamie. Jak panicznie się boisz jednak to jedynym pewnym DRM póki co jest rynek konsolowy, czy to Xbox one, czy PlayStation 4, tam piractwa nie ma póki co.

Offline Jakub27

  • Użytkownik

# Luty 14, 2017, 02:53:27
Ten asset mogę kupić to nie majątek. O same piractwo się nie martwię. Tak jak pisałem wyżej będą chcieli piracić to będą i tyle :) Ale myślę, że takie zaciemnianie  kodu jest spoko.  I tak nic więcej nie da się zrobić  bez wiekszego nakładu kosztów i pracy.  Czy odniesie sukces  czy nie to już tylko Bóg wie :p moim skromnym marzeniem jest sprzedać 1tys sztuk.  Przy 10tys sprzedanych sztuk to już nawet udostępnię grę za free :)

Offline Rakieta

  • Użytkownik

# Luty 14, 2017, 10:11:32
Okej jeśli chcesz tylko utrudnić czytanie kodu to tak, ma to sens. Żadnych wskazówek jednak nie mogę napisać, wiem tylko z doświadczenia, że dobrze zmielony kod bywa trudny do dekompilacji i może zostawiać dziury.

Dodam jeszcze już "na trzeźwo", że stosuję takie zaciemnianie, ale w JS. Do kodu JS gracz ma ciągły dostęp, nie musi nic otwierać i dekompilować, każdą funkcję i zmienną może wywołać z poziomu konsoli. Zajmuje się tym mój skrypt, a dopiero później gotowe rozwiązanie - akurat w tym przypadku Koala. Mam nadzieję, że będę mógł się niedługo pochwalić takim dziełem :)

Offline beem

  • Użytkownik
    • Wordpress Blog

# Luty 14, 2017, 12:49:14
Ja na waszym miejscu próbowałbym dystrybuować grę przez Steam - prawie zerowe piractwo, dużo szersze grono odbiorców.

Offline wezu

  • Użytkownik

  • +4
# Luty 14, 2017, 13:13:35
Esh, kopro... znaczy korporacyjne myślenie kiedyś zgubi tą całą naszę cywilizację.

Jaki jest cel zaciemniania kodu? Boisz się, że ktoś użyje twojego genialnego rozwiązania w swojej grze? Jeśli twoje rozwiązanie jest tak  genialne to opisz je na jakimś branżowym portalu, a potem kasuj hajs za wykłady na GDC i pokrewnych konferencjach.

Jak nie robisz w swoim kodzie nic rewolucyjnego, to nikt przy zdrowych zmysłach nie połasi się na twój kod jak w sieci jest pełno darmowych i legalnych tutoriali z gotowymi przykładami.

Przed piratami się nie obronisz, sam tak napisałeś.

Jak chcesz zapewnić bezpieczeństwo przez zaciemnianie kodu to skończysz jak kierowca BORu

Jak chcesz ukryć własny kod bo się go wstydzisz to... no, dobra, przyznam, że wtedy ma to sens, ale z drugiej strony jak to świadczy o jakości twojego produktu?

Jedyną grupą, która może być zainteresowana twoim kodem to moderzy, a patrząc na tytuły z pod znaku TES nic tak nie napędza sprzedarzy w dłuższym okresie jak ...multiplayer... no ale gdzieś na drugim czy trzecim miejscu siedzą mody. 

Mało tege, że nie powinieneś tracić czasu i pieniędzy na nieskuteczne i bezcelowe zaciemnianie kodu, to powinieneś wciskać swój kod źródłowy drzwiami i oknami każdemu kto tylko chce zerknąć w kierunku twojej gry.

Ale co ja tam wiem? Powodzenia życzę nawet jak masz mikrotranzakcje i quick time events w swojej produkcji.

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Luty 14, 2017, 16:51:24
Też nie rozumiem jaki cel ma to zaciemnianie, w pierwszym poście że przeciw piractwu a w następnych że jednak nie.
Strata czasu chyba że kod jest z templatu i wstyd ;p