Как защитить мое приложение от пиратства

Возможный дубликат:
Как генерируются лицензионные ключи программного обеспечения?

Я новичок в разработке программного обеспечения и хотел бы знать, как реализовать систему защиты в моем приложении Java, чтобы защитить его от пиратства. Я знаю, что идеального решения не существует. Но я просто хочу знать, как это защитить. И не говорите мне сделать его открытым, в моем случае это невозможно :).

Спасибо за ваше время и ответы.


person Zak001    schedule 22.12.2011    source источник
comment
Ваш Java-код скомпилирован, поэтому его источник защищен, если вы хотите защитить его скопированные версии, здесь есть аналогичный вопрос stackoverflow.com/questions/3647255/   -  person Carlos Quijano    schedule 23.12.2011
comment
@CarlosQuijano Думал, что код java компилируется, но все еще можно декомпилировать с помощью бесплатного программного обеспечения, доступного через Интернет, и даже новичок может увидеть, какой пароль вы установили для подключения к БД, какой у вас фактический код и т. Д.   -  person Airy    schedule 27.09.2014


Ответы (2)


Поскольку любое решение по обеспечению соблюдения лицензий можно взломать, приложив немного усилий, я предлагаю вам вообще не пытаться реализовать защиту от копирования. Управление лицензиями просто неудобно для ваших пользователей.

Если вы полны решимости реализовать защиту от копирования, вы можете использовать библиотеку с открытым исходным кодом.

Кроме того, вам следует запутать свой байтовый код, чтобы он немного сложно реконструировать ваше приложение.

person Niklas B.    schedule 22.12.2011
comment
Большое спасибо за ваш ответ. - person Zak001; 23.12.2011
comment
Это значительно труднее в относительном смысле. Кто-то с соответствующими навыками, вероятно, все же может отключить запутанную ловушку управления лицензиями за несколько часов, если не быстрее. - person Stephen C; 23.12.2011
comment
@StephanC: Конечно, но иначе было бы несколько минут :) - person Niklas B.; 23.12.2011

Я подумал об этом несколько лет назад. В конце концов я решил не лицензировать его; Я отдал его бесплатно, но думаю, что моей лучшей идеей было:

Отправьте им файл лицензии, содержащий ключ. Назовите файл, используя их полное имя и адрес электронной почты или что-нибудь подобное, и убедитесь, что переименование его сделает ключ недействительным. Это должно быть несложно. Вы можете использовать множество техник, которые не требуют хранения ключа в вашем приложении.

Как и любую систему, ее нельзя взломать, но, как мне объяснили много лет назад, безопасность нужна для того, чтобы честные люди оставались честными.

person OldCurmudgeon    schedule 23.12.2011
comment
да, я знаю, что нет идеального решения. - person Zak001; 23.12.2011
comment
Поскольку вы поделились со мной своей идеей, я расскажу вам о своей: 1) Я создам хеш для каждой версии. 2) перед установкой приложение вычислит собственный хэш и отправит его на сервер, который проверит правильность (хеш, версия). Если это не так, установка остановится, и сервер отправит мне электронное письмо с некоторыми деталями (IP-адрес, MAC-адрес и дата). 3) Теперь, если с хешем все в порядке, запустится проверка лицензии. Если с лицензией все в порядке, начнется установка. Все это будет зашифровано. Я знаю, этого мало. - person Zak001; 23.12.2011
comment
@ Zak001 - временное решение может занять несколько часов. Но как только обходной путь будет сделан, взломанный установщик просто пропустит этап проверки с сервером и будет использовать ранее полученный ключ для расшифровки. (Даже создание новых ключей / хэшей для каждой загрузки не предотвратит этого ...) - person Stephen C; 23.12.2011
comment
@Zak - Вы предполагаете наличие онлайн-соединения во время установки ?? Моя главная цель - сделать так, чтобы каждый мог отдать свой ключ кому-либо другому, если захочет, но если они также выдают адрес электронной почты (вы также можете использовать домашний адрес наследника, если хотите), тогда они дважды подумают. - person OldCurmudgeon; 23.12.2011