jump to navigation

Obfuskacja – zaciemnianie kodu w Javie, narzędzie 17 Czerwiec 2009

Posted by artiko in Java, Software.
Tags: , , , ,
trackback

W dzisiejszych czasach aplikacje pisane w Javie lub C# dość łatwo zdekompilować i otrzymać czasami przejrzysty kod. Oczywiście już dawno temu wymyślono sposoby na zabezpieczanie się przed tym :)
Jednym i bardzo prostym jest właśnie obfuskacja, czyli zaciemnianie kodu. Polega ona na takiej modyfikacji kodu bądź bytecodu, by nie było możliwe jego późniejsze zrozumienie. Po dokładny opis odsyłam na stronę Wikipedii – pl.wikipedia.org/wiki/Zaciemnianie_kodu.
Po bardzo krótkich poszukiwaniach w sieci znalazłem projekt o nazwie ProGuard, dzięki któremu można w naprawdę szybki sposób można zaciemnić kod, zmniejszyć objętość plików oraz dokonać optymalizacji kodu wynikowego. Można go uruchamiać z linii komend, jednak posiada również GUI. Osobiście wolę GUI, gdyż w przypadku używania wersji konsolowej trzeba tworzyć plik z konfiguracją dla każdej paczki. Aplikacja jest napisana w Javie, co czyni ją multiplatformową.
Do programu w zakładce Input/Output po prostu dodajemy nasz plik jar z aplikacją, plik wynikowy oraz, co bardzo ważne, pliki bibliotek, do których znajdują się odniesienia w naszym kodzie. Następne zakładki można pozostawić na wartościach domyślnych, w Process kliknąć Process! i po chwili dostajemy plik wynikowy, zabezpieczony przed tymi, którzy chcieliby do niego zaglądać :)
Ja przy pierwszym użyciu natrafiłem na błąd
Warning: javax.swing.JFrame: can't find superclass or interface javax.swing.TransferHandler$HasGetTransferHandler

Rozwiązanie jest proste, w zakładce Information wystarczy odznaczyć pola Skip non-public library classes i class members.

About these ads

Komentarze»

1. Michael Kendall - 25 Czerwiec 2009

I have no idea what you are saying :) as I do not understand Polish, but the tech side of it looks correct :) Reminds me of the development team meetings I conducted when the COO of a custom software development company. Great idea doing the blog. I’m impressed.

artiko - 25 Czerwiec 2009

Thanks :)
You can always try with Google Translator :) http://translate.google.com/translate?hl=en&sl=pl&u=http://artiko.wordpress.com/
It is’t an excacly correct translation but it should be more understandable :)


Dodaj komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

WordPress.com Logo

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Twitter picture

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.

%d bloggers like this: