Wykradanie kodu

0

Witam,
mam pytanie, czy istnieje możliwość ukraść kod ze skompilowanego programu .jar? I czy jest może jakaś opcja zabezpieczenia się przed tym?

0

W pliku jar masz bytecode i raczej się przed kradnięciem go nie zabezpieczysz :P

0

Udostępnij kod na licencji GPL w jakimś popularnym miejscu, np. github.
Jeżeli ktoś wyda Twój kod (zmieniony lub nie) na innej licencji, to będziesz mógł go podać do sądu.

0

I w czym mu to pomoże niby? nawet jeszcze ułatwi sprawę potencjalnym złodziejom... też mi sposób...
Zwykły copyright daje Ci takie samo prawo do pozwania kogoś do sądu. Ale co z tego, skoro nikt o zdrowych zmysłach nie przyzna się, że kradł kod albo że zcrackował aplikację i umieścił ją w sieci...

Nie da się przed tym zabezpieczyć całkowicie... w jakim byś języku nie pisał, jak się znajdzie uparty, to złamie zabezpieczenia.

Można kod zobfuscować, np ProGuardem...
http://proguard.sourceforge.net/ - utrudni to sprawę, ale wciąż będzie możliwe i (w porównaniu do RE kody natywnego) łatwe

Można kod zaszyfrować i napisać natywny launcher, który go odszyfruje. (launcher zabezpieczyć packerami i wszelkim takim szitem) - utrudni to sprawę, ale nie uniemożliwi. Wciąż, ktoś kto siedzi w RE będzie to w stanie ukraść... ale już na pewno nie byle jaki script-kiddie.

Najlepszym przykładem na to są gry wydawane przez duże firmy... tyle inwestują w zabezpieczenia, a wszystko i tak jest łamane po kilku tygodniach.

0

Ktoś mi mówił, że istnieją firmy, które specjalizują się w wyłapywaniu złamań postanowień licencyjnych, czyli np łamaniem GPLa.

0

Dzięki za odpowiedzi, swój kod będę starał się zabezpieczyć jak się da, bo wolę poświęcić kilkanaście godzin i wiedzieć, że zrobiłem wszystko co się dało by tego uniknąć. Dzisiaj byłem świadkiem złamania jednego kodu w c++ i właśnie ten precedens bardzo mnie zaniepokoił. Koleś zdobył cały kod w jeden dzień.

0

@Kerai wspomniał o szyfrowaniu i natywnym launcherze. Tego typu rozwiązaniem jest np. ClassGuard Kod Javy jest potraktowany AESem 128bit. Testowałem na dużej, ciężkiej aplikacji - uruchamia się bez opóźnień. Jest też JarCrypt

Co do obfuskacji - trzeba uważać. Wiele rzeczy może nagle przestać działać, więc trzeba dobrze przetestować zobfuskowany program.

0

Po co zabezpieczać? Ponosić koszty skoro i tak jak ktoś będzie chciał to uzyska dostęp? Szkoda zasobów na takie zabawy.

0

Stwórz aplikację serwerową i niech działający klienci logują się do niej (oczywiście dostęp do indywidualnych paczek danych przez konto usera) i niech ściągają w locie zabezpieczony kod od razu do pamięci i do wykonania. Nie ma na dzisiaj lepszego zabezpieczenia niż sieciowe "DRM". Jak myślisz skąd się wziął taki wysyp różnych gier MMO?

0

@Olamagato, mylisz trochę pojęcia. SaaS to faktycznie dobra metoda na zabezpieczenie, gdy klient dostaje wynik. Całe przetwarzanie jest po stronie serwera. Tak jak i w MMO, które robią tylko i wyłącznie za interfejs.
Ściąganie w locie zabezpieczonego (?) kodu od razu do pamięci nie różni się w ogóle od scrackowania normalnej aplikacji. Wszak też musi być wczytana do pamięci i wykonana.

1 użytkowników online, w tym zalogowanych: 0, gości: 1