Posted By: Koles (Pipl ptacek) on 'CZprogram'
Title:     Re: Kodovani Javy
Date:      Wed Dec 11 10:59:23 2002

> Shodou okolnosti tohle resila jedna nase partnerska firma a vyslo ji 
> nasledujici:
> 
> 1) nelze zabranit dekompilaci .class (a JAR, WAR, EAR) souboru - nejak to 
> vychazi primo z podstaty Javy 

Ano.
 
> 2) nektere dekompilatory jsou tak kvalitni, ze vytahnou i puvodni 
> identifikatory objektu 

Nevim o dekompilatoru, ktery by byl natolik nekvalitni, ze by to 
neumel :-) Tedy za predpokladu, ze bytecode neni obfuskovan, coz
ale predpokladam zminujes v bode 3.

> 3) jediny prakticky zpusob, jak udelat dekompilaci obtiznejsi je pomoci 
> prekodovani identifikatoru. Existuji SW, ktery z citelneho zdrojoveho kodu 
> udelaji korektni necitelny zdrojak - chaoticky prejmenuji identifikatory a v

Pricemz porad se musime smirit s tim, ze kdejaky dekompilator ti
i z takto zpraseneho kodu vyrobi zdrojak pomerne citelny, byt 
s jinak pojmenovanymi promennymi.

Samozrejme taky zalezi na tom, jak velkou cast aplikace jsi 
schopen obfuskovat. Obvykle se obfuskuji pouze privatni promenne
a metody, coz dekompilaci usnadnuje. Pokud nase situace
umoznuje obfuskovat komplet cely kod (dobra, s vyjimkou
"public static void main (String[] args)" :-), opet jsme 
pripadnemu stouralovi zkomplikovali zivot.

Pozor na obfuskovani v pripade prace se serializovanymi
daty, pokud obe strany neobfuskuji tridy vymenovanych objektu
stejne, nebudou si rozumet.

Par informaci na tema obfuskovani muzete najit v clanku

http://www.interval.cz/clanek.asp?id=1721

byl sice psan s ohledem na mobilni aplikace, kde je obfuskovani
nutne uz proto, ze jeho sideeffectem byva zmenseni kodu
(srovnej "mojeSofistikovanaAzNepopsatelnaMetoda()" vs. "a1()"),
ale pouci se z nej urcite kazdy.

Pavel

Search the boards