Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Obfuskace Java kódu

V předchozí lekci, Java spuštění - JVM argumenty, jsme si předvedli, jak se při spuštění definují JVM parametry.

V tomto článku si vysvětlíme co to ta obfuskace je a taky si povíme něco málo o jednom z nejznámnějších obfuskátorů pro Javu.

Takže co to ta obfuskace vůbec je? A proč ji používat?

Již z anglického názvu obfuscate, což znamená mimo jiné zatemnit, vyplývá, že půjde o znemožnění čtení zdrojového kódu. Takovéto obfuskátory jsou pro většinu jazyků. Je dobré je používat, když Vaše projekty nejsou open source, nebo tomu podobné a nechcete aby někdo obcházel licenční čísla či nějaká hesla. Většinu lidí obfuskovaný kód odradí a dále ho nechají být, 99% určite, se zbylým procentem se musíte smířit, to jsou převážně hackeři kteří jdou za svým cílem a zdrojový kód nějak získají.

Jak to funguje?

Většinou to dělá tyto věci:

  • odstraňuje Vaše poznámky, komentáře
  • smaže veškeré mezery, prostě naprosto zničí úpravu kódu
  • přejmenuje proměnné, metody, třídy, případně rozdělí na několik tříd navíc

Proč používat?

V .jar souboru jsou přeložené třídy do byte kódu (u GUI jsou tam i listenery), které jdou lehce přeložit zpět, obzlášť v Javě. Pokud nechcete, aby někdo věděl, jak jste docílili výsledku, znal vaše postupy, nebo nechcete, aby obcházeli různé ochrany, které tam máte, tak je dobré kód obfuskovat. Kód to změní k nepoznání, do té míry, aby to interpret přelouskal. Pro člověka, který to bude chtít přečíst, to bude nepoužitelné, všechny proměnné, metody, třídy budou různě rozházeny a pojmenovány pár písmeny z abecedy. Tím pádem nebude vědět, co co dělá a proč to dělá.

Tak to jsme si řekli něco málo o obfuskaci. Ted je řada na obfuskator pro Javu. Nejznámnějším je nejspíš ProGuard a to z důvodu že neobsahuje jen Obfuskátor, ale mimo jiné i poskytuje optimalizaci kódu a jiné užitečné funkce.

Stáhnout si ho můžete zde: http://proguard.sourceforge.net/

U starších verzí se muselo všechno dělat přes příkazový řádek. Naštěstí již mají grafické rozhraní. Rozbalíte si složku kterou jste stáhli, půjdete do šložky bin a spustíte soubor proguardgui.bat, ten Vám zapne samotný program. Dále se jen řídíte průvodcem. Většina věcí je již nastavená takže jen zadáte .jar soubor který chcete obfuskovat a cestu kam se má výsledný soubor uložit. Pak stačí jen vše přeskočit a obfuskovat. Pokud se Vám to bude zdát nedostatečné můžete si pohrát s nastavením, ale myslím že je to nastavené optimálně.

Samozřejmě existují i tzv. deobfuskátory, ale těch nejsem příznivcem =)


 

Předchozí článek
Java spuštění - JVM argumenty
Všechny články v sekci
Kompilace manuálně v Javě
Článek pro vás napsal Fugiczek
Avatar
Uživatelské hodnocení:
4 hlasů
Aktivity