Uzavřený kód v Jave

Uzavřený kód v Jave
« kdy: 25. 06. 2012, 11:18:22 »
Jak je to s Javou kdybych chtěl vytvořit uzavřený kód? Platí se za to něco Oraclu?


branchman2

Re:Uzavřený kód v Jave
« Odpověď #1 kdy: 25. 06. 2012, 11:41:02 »
Keby si chcel upravit JDK alebo JRE a uzavriet zdrojaky, tak ano, je treba sa dohodnut (otazka je sice formulovana aj takto, ale toto nepredpokladam).

Ak chces len spravit program, ktory bude napisany v Jave a bude pouzivat Javovske libraries, tak netreba platit nikomu nic.

Re:Uzavřený kód v Jave
« Odpověď #2 kdy: 25. 06. 2012, 12:30:16 »
ted polozim jednu obzvlast hloupou otazku, tak me prosim nekamenujte :): lze vytvořit jar soubor tak aby z toho nebyl pro cizí uživatele zjistitelný kód?

a pokud bych vytvořil program, který by si někdo chtěl ode mě koupit, bude po mě Oracle něco chtít?

Re:Uzavřený kód v Jave
« Odpověď #3 kdy: 25. 06. 2012, 13:01:43 »
Ne, Oracle po tobě nebude nic chtít.

Kojot

Re:Uzavřený kód v Jave
« Odpověď #4 kdy: 25. 06. 2012, 13:03:53 »
V Jave nedelam, takze to ber jen jako nastrel. V Jave, .NET a podobnych VM je vetsinou k dispozici nejaka moznost nacteni kodu z pameti. U Javy je to myslim ClassLoader. Je tedy mozne mit vse, krome nejakeho zavadece, zasifrovano pres nejaky klic v souboru, ktery se pak nacte, rozkoduje a spusti. Nevim jestli Java podporuje i pripadnou ochranu proti cteni pameti apod., ale jako zakladni jednoducha ochrana to muze stacit. Klic k odkodovani muze byt urceny na miru k pocitaci, uzivateli, nebo stazen z internetu.


Re:Uzavřený kód v Jave
« Odpověď #5 kdy: 25. 06. 2012, 13:05:19 »
Díky dost si mi pomohl...

Ivan

Offtopic
« Odpověď #6 kdy: 25. 06. 2012, 13:12:29 »
Muzes nejak poodhalit o co presne ti jde? Na prvni pohled to vypada, ze nemas zadny velky zkusenosti z programovanim, ale na druhou stranu predpodladas, ze prave tvuj kod bude natolik zajimavej ze bude nekomu stat za reverzovani.

Jak pro Javu tak i pro .Net existuji docela schopne de-kompilatory.

Re:Offtopic
« Odpověď #7 kdy: 25. 06. 2012, 13:39:12 »
Muzes nejak poodhalit o co presne ti jde? Na prvni pohled to vypada, ze nemas zadny velky zkusenosti z programovanim, ale na druhou stranu predpodladas, ze prave tvuj kod bude natolik zajimavej ze bude nekomu stat za reverzovani.

Jak pro Javu tak i pro .Net existuji docela schopne de-kompilatory.
řekněme, že dělám na jednom projektu (programu), který má komerční potenciál a potřeboval jsem vědět jak je to s použitím javy jako prostředku pro výrobu onoho programu tak, aby to případná konkurence neměla tak jednoduchý...
samozřejmě kód to nebude nijak objevný, spíš relativně obsáhlý a jeho tvorba zabere nějaký čas - a nerad bych aby byl zbytečný...

Re:Uzavřený kód v Jave
« Odpověď #8 kdy: 25. 06. 2012, 13:43:06 »
Všechno se dá okopírovat a nepotřebuješ k tomu nějaký hacking. Prostě si naprogramuješ vlastní verzi tvého programu s vlastním kódem.

To programuješ ty?

DK

Re:Uzavřený kód v Jave
« Odpověď #9 kdy: 25. 06. 2012, 13:43:54 »
java obfuscator, pripadne to zkompiluj do exe

Rax

Re:Offtopic
« Odpověď #10 kdy: 25. 06. 2012, 15:08:55 »
řekněme, že dělám na jednom projektu (programu), který má komerční potenciál a potřeboval jsem vědět jak je to s použitím javy jako prostředku pro výrobu onoho programu tak, aby to případná konkurence neměla tak jednoduchý...

Komerční potenciál věcí v Javě je blízký nule, respektive program se dá prodat pouze párkrát a potenciální konkurenci dáváš zdrojáky jako na stříbrném podnose. Obfuskátor je asi taková překážka jako cedulka Zákaz vstupu.

Aby to konkurence měla aspoň těžší, je třeba použít nějakou pokročilou techniku ochrany jako třeba self-modifying code, hrátky se zásobníkem a podobně a to je v Javě prakticky nemožné.

Poměrně dobré úspěchy jsou s externím hardwarovým klíčem připojeným přes USB, ale to leze do peněz.

Rax

Re:Uzavřený kód v Jave
« Odpověď #11 kdy: 25. 06. 2012, 15:13:51 »
V Jave nedelam, takze to ber jen jako nastrel. V Jave, .NET a podobnych VM je vetsinou k dispozici nejaka moznost nacteni kodu z pameti. U Javy je to myslim ClassLoader. Je tedy mozne mit vse, krome nejakeho zavadece, zasifrovano pres nejaky klic v souboru, ktery se pak nacte, rozkoduje a spusti. Nevim jestli Java podporuje i pripadnou ochranu proti cteni pameti apod., ale jako zakladni jednoducha ochrana to muze stacit. Klic k odkodovani muze byt urceny na miru k pocitaci, uzivateli, nebo stazen z internetu.

Žádný program na světě nelze ochránit před vyčtením kódu nebo dat z RAM a aby byl program funkční, musíš dříve nebo později dešifrovat, takže útočník si na to počká a prostě si to zkopíruje.

Re:Uzavřený kód v Jave
« Odpověď #12 kdy: 25. 06. 2012, 15:20:48 »
Skôr Ti doporučím spraviť to ináč. Sprav servrovú aplikáciu, ktorá bude mať všetku funkcionalitu na serveri a zákazníkovi daj len jednoduchého klienta, ktorý bude komunikovať so serverom. Zákazník nebude mať na svojej strane žiadny kód a prístup k serveru zabezpečíš jednoducho napríklad cez meno a heslo, alebo ako len chceš.

Re:Uzavřený kód v Jave
« Odpověď #13 kdy: 25. 06. 2012, 15:48:07 »
s Javou začínám, takže chápu, že některý otázky mohou být pro znalce stupidní...
jinak díky za všechny reakce pomohlo mi to udělat si o tom komplexnější obraz...

Skôr Ti doporučím spraviť to ináč. Sprav servrovú aplikáciu, ktorá bude mať všetku funkcionalitu na serveri a zákazníkovi daj len jednoduchého klienta, ktorý bude komunikovať so serverom. Zákazník nebude mať na svojej strane žiadny kód a prístup k serveru zabezpečíš jednoducho napríklad cez meno a heslo, alebo ako len chceš.

aplikace musí používat server (na sdílení dat, mezi dvěma uživateli), chtěl jsem ale mít i desktop pro offline práci...
teď to asi udělám tak, že to bude primárně webová aplikace, kterou po nějaký době uvolním jako open-source i na desktopy...
chci prostě zabránit tomu (jsem trošku paranoidní), aby po měsíci co bude aplikace vypuštěna, někdo prostě nevzal její kód nepřidal tam jednu dvě funkce na víc a nevydával to za svůj výtvor...

Petr_Svetr

Re:Uzavřený kód v Jave
« Odpověď #14 kdy: 25. 06. 2012, 16:02:37 »
Vystupem z jakehokoliv prg jazyka je mikrokod, ktery zpracuje procesor. Jakakoliv ochrana je k nicemu, protoze prinejhorsim z toho holt dostanes assembler. Obejit to nijak nelze - pokud by to bylo technicky mozne, a nekdo to umel, byl by dneska milionar.
Nejlepsi varianta je asi ta server-clinet aplikace. Ale zase - pokud nemas dost zkusenosti, tak ti server nekdo hackne raz dva. Navic zase muze odchytavat komunikaci mezi klientem a server a odtud taky lze ziskat nejake informace, nebo predstavu, jak to asi funguje.
Citace
chci prostě zabránit tomu (jsem trošku paranoidní), aby po měsíci co bude aplikace vypuštěna, někdo prostě nevzal její kód nepřidal tam jednu dvě funkce na víc a nevydával to za svůj výtvor...
navic tohle nechapu - chces to vydavat jako OS, ale zaroven chces zdrojak tajit? Vykradani kodu prece brani licence - jeji poruseni je trestne vymahatelne...
Realne  - sance, ze ti ty zdrojaky nekdo ukradne je mnohem mensi, nez pravdepodobnost, ze to vubec dotahnes do produkce. No flame, kazdy nejak zacina....