Безопасное копирование рабочего приложения с одного компьютера на другой - PullRequest
0 голосов
/ 24 февраля 2019

Я создал приложение JavaFx. Теперь я хотел бы защитить его от копирования на другие компьютеры. Более подробно я продаю свое приложение одному клиенту, и после установки этого приложения мне нужно защитить его, скопировать его с одного компьютера на другие.Как я могу предотвратить копирование с другого компьютера. Приложение в формате jar

1 Ответ

0 голосов
/ 24 февраля 2019

Теоретически вы не можете.


Однако: Вы можете сделать несколько вещей, чтобы уменьшить вероятность.Я упомяну их, начиная с самых безопасных.

Что такое: Удаленное лицензирование (или хранить лицензии на сервере).Ваше приложение может генерировать уникальный вид id и при каждом запуске проверяет, есть ли этот идентификатор в базе данных удаленного сервера.(Хороший вариант здесь - RESTful-сервисы в качестве бэкэнда. Тогда будет достаточно HTTP-запроса.) Если этот идентификатор не существует в удаленном режиме, ваша программа завершает работу.

Что если клиент не имеет подключения к Интернету, должно ли оно быть прекращено?

Есть возможность справиться с этим, но все же, может быть "обойдена".Всякий раз, когда он запускается (с подключением к Интернету), он сохраняет «положительный» ответ локально (файл, реестр или что-то).Затем, когда клиент не подключен к Интернету (удаленная проверка не проходит), ваша программа начинает поиск «положительного» ответа локально.Если он его находит, он запускается.

Что если клиент перепроектирует приложение, найдет, где оно хранит «положительный» ответ, создаст его вручную, а затем добавит правило в свой брандмауэр, чтобы предотвратитьВаше приложение говорит с пульта?

Вы говорите мне.Лучшее, о чем я могу подумать, это проверить правила брандмауэра, если удаленная проверка не удалась.


Второй вариант: Создать второй .jar, который генерирует своего рода «положительный» ответ (как уже упоминалось выше).Запустите этот .jar своему клиенту.Затем удалите его со своего компьютера.Тогда ваша заявка ищет этот «положительный» ответ.Если оно существует, приложение запускается.В противном случае это заканчивается.Если он скопирует приложение на другой компьютер, оно не запустится, потому что вы не запустили второй jar-файл.

Что если он обратный инжиниринг вашего приложения и найдет, где и как вы храните этот "позитив"ответ?

Он сможет скопировать вашу заявку, а вы никогда не узнаете.

...