Я разрабатываю программное обеспечение для обеспечения безопасности и хочу запутать свой код Java, чтобы его невозможно было перепроектировать. Какой самый надежный обфускатор Java?
Лучший обфускатор Java?
Ответы (10)
Во-первых, вам действительно нужно иметь в виду, что никогда невозможно что-то перепроектировать. Все поддается взлому. Умный разработчик, использующий умную IDE, уже может продвинуться достаточно далеко.
Вы можете найти здесь список. ProGuard очень хорош. Я сам использовал его, но только для «уменьшения» Java-кода.
Если компьютер может запустить его, человек с соответствующей мотивацией может его реконструировать.
Ознакомьтесь с моей статьей Защитите свой Java-код — с помощью обфускаторов и не только [в архиве] для обсуждения обфускации и трех других способов удорожания обратного проектирования ваших приложений, а также подборки ссылок на инструменты и дополнительные материалы для чтения.
Я думаю, что Proguard является лучшим. Его также можно интегрировать с вашей IDE (например, NetBeans). Однако учтите, что если вы запутаете свой код, будет сложно отслеживать проблемы в ваших журналах.
Как сказано в другом месте здесь, proguard — это хорошо, но, возможно, неизвестно, что есть еще и третий — плагин party maven для этого здесь http://pyx4me.com/pyx4me-maven-plugins/proguard-maven-plugin/... Я использовал их оба вместе, и они очень хороши.
Это правда, что всегда можно перепроектировать какой-то код, точно так же, как невозможно защитить дом так, чтобы никто никогда не мог его украсть. Однако это не мешает мне запереть дверь. На самом деле, я не в мире Java, я использую BitHelmet для .net.
Раньше я работал с Klassmaster в моей предыдущей компании, и это работает очень хорошо и может довольно хорошо интегрируется с системами сборки (отличная поддержка maven). Но это не бесплатно.
Нам гораздо больше повезло с шифрованием банок, чем с запутыванием. Мы используем Classguard.
Я не знаю точно, безопасно ли это решение, но о решении ClassGuard интересно почитать статью и комментарий по адресу: http://www.javaworld.com/community/?q=node/1604#comment-12296