У меня есть очень большое сомнение. Я увидел инструмент для descompilar код Java, который возвращает все классы со всем исходным кодом, даже данные о связи в базу данных.
Как мы могли бы защищать наш код перед таким инструментом, который начиная с одного .jar
он способен возвращать весь исходный код?: Как мы защитили бы наше программное обеспечение, сделанное с таким популярным языком?
Полная защита невозможна, если это код, который должен работать в машине, которую ты не контролируешь.
Сделай то, что ты делаешь всегда, существует возможность использовать обратное инженерное дело; что позволит открывать, как функционирует твоя программа и данные, которых он содержит.
Могущественные корпорации попробовали защищать код Ваших продуктов с техниками как бинарная криптография и удостоверения. Чтобы видеть, поскольку Ваши схемы заканчивают тем, что являются побежденными, как он кажется, это недавний случай hacks для PS4 в Бразилии.
Что не означает, что ничего не было возможно делать. Посредством таких техник как ослепление кода возможно затруднять работу обратного инженерного дела.
Здесь у тебя есть список программного обеспечения ослепления: Open Соурсе Обфускаторс in Java
Способы защищать приложение есть многие, но, теперь приложения делаются главным образом в трех слоях:
Таким образом, у тебя есть, что единственным, что ты делаешь пользователю доступным, является интерфейс, в форме веб сайта или приложения... и из-за многого, что сделали ему обратное инженерное дело больше, что они смогут видеть, он состоит в том, что это приложение сделает названные к услуге, но никогда они не будут видеть логику дела, ни узнают ни, который является физическим расположением данных, ни никакого типа конфигурации, целого token приложения.
Сейчас, что, если твое приложение не дает основание для того, чтобы быть распространенным таким образом, заставил бы то, что сказал Хосе Антонио, ослеплять код и ждать лучшее.
Защищать код не имеет ничего общего с программированием в слоях; это вопрос ослепления исходного кода.
По умолчанию, когда ты строишь один JAR
, обычно только они упаковываются .class
которыми оно будет интерпретировано из-за JVM
. Однако, также может быть упакованным исходный код прямой формы, посредством файлов .java
.
Хотя одинокий JAR будет содержать файлы .class
, эти могут быть decompilados с программными средствами как JD-GUI.
Ты можешь ослеплять код по имени, или encriptar bytecode (хотя он волнует немного выступление).
Ты можешь видеть список техник, чтобы защищать шрифт здесь
Ослепление в Java приносит больше проблем, чем он решает, на данный момент, до того, как вышел Java 9, лучший выбор, чтобы начинаться, использовать составитель Ahead of Time
как например Excelsior РЕАКТИВНЫЙ ДВИГАТЕЛЬ.
Этот тип составителей действительно они составляют код Java, вводя оптимизацию во время компиляции и производят выполнимый двоичный код, который Ваш он может защищать с более договорными техниками как использование packers как Ультимате Пакер.