Одним из самых известных обфускаторов является
ProGuard. Изначально это была библиотека для оптимизации кода, поэтому он не настолько мощный как некоторые платные обфускаторы на подобии Stringer. Но в сочетании с тем же Stringer'ом благодаря ProGuard можно добиться просто нереально крутых результатов.
ProGuard позволяет делать следующее:
- минификация и сжатие скомпилированного кода;
- непосредственно обфускация;
- обнаружение и удаление ненужного кода;
- оптимизация кода.
Воспользовавшись Proguard можно уменьшить размер скомпилированного приложения в несколько раз, что до сих пор актуально, например, для мобильных приложений.
Для написания своего обфускатора надо уметь модифицировать байт-код скомпилированных классов. Существуют библиотеки, позволяющие это делать, например, ASM. Если дойдут руки, в будущем вместе с вами напишем простой обфускатор java кода своими руками. Ну а на сегодня пока что все.
Источник:
Обфускация Java кода - обзор шифраторов байт-кода