Как защитить исходный код в электронном проекте
Я создаю свое первое электронное приложение, но теперь мне интересно, как защитить исходный код для просмотра другими разработчиками.
Официальный документ говорит:
Чтобы защитить ресурсы и исходный код приложения от пользователей, вы можете упаковать свое приложение в архив asar с небольшими изменениями в исходном коде.
Пока что лучшее, что я могу придумать, это уродливость исходного кода и его упаковка в файл asar, но файл asar - это просто архив, который можно легко извлечь. Я не понимаю, как сделать этот код "защищенным от пользователя"
Есть идеи?
2 ответа
В настоящее время нет официального способа защиты вашего кода от копирования, извините - если вы хотите сделать это, вам придется придумывать свой собственный способ (или просто не беспокоиться об этом)
Невозможно полностью защитить код, независимо от того, как вы его упаковываете, для того, чтобы он был запущен, он должен быть доступен и расшифрован, что означает, что ключ должен храниться локально.
Рассмотрим этот сценарий;
Авторы электронной системы и формата файлов asar реализуют шифрование, аналогичное zip-файлу, защищенному паролем, и дают вам возможность указать пароль архива во время компиляции, чтобы он "безопасно" сохранялся в.exe, и файл asar мог " не может быть открыт / читать без него.
Хакер все еще может выяснить ключ, скомпилировав электрон сам с некоторыми тестовыми ключами, например, AAAA и AAAB, а затем сравнив получившийся двоичный файл, чтобы определить местоположение строки ключа внутри него. Как только они знают, как извлечь ключ из исполняемого файла, игра окончена.
Я предполагаю, что самая надежная защита, которую вы можете сделать, - это если вы сами измените исходный код электрона, чтобы сохранить и извлечь ключ, но даже тогда злоумышленник может декомпилировать код, сравнить его с декомпилированной стандартной версией электрона, выяснить, где ваши модификации кода запустите и перепроектируйте его, пока они не выяснят, как вы храните ключ.
Опять же, в тот момент, когда у них есть ключ, игра заканчивается, и для того, чтобы электрон мог запустить любой код, он должен иметь возможность прочитать его, а это значит, что ключ должен быть доступен локально. Словить 22.