Java obfuscation - ProGuard/yGuard/другое?
Это похоже на следующие вопросы:
Лучшее приложение для обфускации Java для уменьшения размера
Создание нереверсифицированных программ Java
Однако, в конечном итоге рекомендуется рекомендовать yGuard и другой ProGuard, но не упоминать обоим. Интересно, можем ли мы получить сравнение каждого из них и услышать народы с обеих сторон забора. Глядя на это сравнительная таблица на веб-сайте ProGuard, он явно склонен к ProGuard. Но как насчет реального опыта каждого из них - который производит меньшую продукцию? от которого сложнее декомпилировать? какие версии Java поддерживаются каждым?
Лично меня особенно интересует точка зрения J2ME, но, пожалуйста, не ограничивайте ее обсуждением.
Ответы
Ответ 1
Proguard - лучший продукт; особенно если у вас есть время, чтобы перейти к настройкам J2ME.
В частности, для J2ME существует гораздо лучший (коммерческий) продукт под названием mBooster
Я получаю около 25% улучшения в моем приложении после того, как он прошел через Proguard. Это в основном связано с лучшим сжатием Zip в файле Jar и всесторонней поддержкой слияния классов и предварительной проверки.
Ответ 2
Результаты для моего проекта.
- Обфускация - обе штрафы.
- Оптимизация. ProGuard выпустил код на 20% быстрее (для ограниченного узкого места приложения).
- Компактность - ProGuard примерно на 5% меньше.
- Конфигурация / Ant - YGuard гораздо проще настроить.
Итак, я бы посоветовал ProGuard, но конфигурация и интеграция ant определенно могут быть улучшены.
Ответ 3
Мое мнение - ProGuard лучше. Выход меньше. Оптимизация лучше и намного быстрее.
Декомпиляция в обоих случаях проста. Ну, я имею в виду, если вы хорошо знаете Java и действительно знаете бизнес-логику того, что вы декомпилируете, нет никакой проблемы, чтобы вернуть ее к источникам из запутанных классов.
Итак, я считаю, что ProGuard лучше.