Электрон с бэкэндом C ++ - безопасный? - PullRequest
0 голосов
/ 16 января 2020

Я написал пользовательский интерфейс в Electron, и я хотел бы связать его с моим C ++ кодом. Тем не менее, я буду продавать этот продукт, и поэтому я хотел бы знать, облегчает ли это людям взломать мой код C ++? Очевидно, я знаю, что скомпилированный C ++ может быть взломан в любом случае, но влияет ли это каким-либо образом?

Кроме того, каков наилучший способ go об этом при сохранении максимально возможной безопасности?

Спасибо.

РЕДАКТИРОВАТЬ: Как насчет этого? Можно ли использовать C ++ в качестве внутреннего интерфейса для Electron. js?

EDIT2: Для пояснения, мое приложение Electron будет показывать состояние операций выполняется в программе C ++. Поэтому мне нужно будет отправлять списки, словари, строки и т. Д. c. из C ++ в JS, который затем будет отображать его. Кроме того, кнопки в моем приложении Electron должны запускать действия в коде C ++, такие как остановка или запуск определенных частей программы.

1 Ответ

0 голосов
/ 16 января 2020

Я написал пользовательский интерфейс в Electron, и я хотел бы связать его с моим кодом C ++ ... Я хотел бы знать, облегчает ли это людям взломать мой код C ++?

Использование электроники не имеет смысла для защиты исходного кода C ++. (Ваша интеллектуальная собственность)

Код Javascript, работающий на электроне, будет очень легким для обратного инжиниринга, что дает пользователям преимущество при экспериментировании с вашим двоичным кодом C ++ . Использование инструментов минимизации и запутывания может, по крайней мере, усложнить задачу.

Для стороны C ++ подключение C ++ к Electron может быть выполнено, по крайней мере, двумя способами:

  • Путем динамической ссылки на разделяемая библиотека (Node.js C ++ Addons )
    В этом случае ваш API C ++ будет функциями, которые экспортируются совместно используемой библиотекой. Существует много инструментов для проверки разделяемых библиотек (DLL) и просмотра этих функций.
  • Посредством связи с другим процессом используется какой-то тип Межпроцессное взаимодействие .
    В этом случае ваш API будет зависеть от используемого метода IP C. Если бы это были сообщения TCP / UDP, вы могли бы использовать Wireshark для проверки пакетов между процессами. Существуют способы проверки сообщений, проходящих по любому типу IP C.

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

Следует также ожидать, что опытный конечный пользователь будет иметь доступ к другим инструментам, которые могут проверять API и реализовывать третье средство. код стороны, который обращается к этому API.

Кроме того, каков наилучший способ go об этом при сохранении максимально возможной безопасности?

By "максимально возможная безопасность "Я предполагаю, что вы имеете в виду предотвращение несанкционированного использования кода C ++ с другими приложениями.

Вам потребуется система лицензирования, которая может аутентифицировать приложение, использующее API вашего двоичного кода C ++. Объяснение того, что именно будет, вероятно, является слишком большим ответом для переполнения стека, и вам придется провести некоторое исследование о том, как реализованы системы лицензирования.

Теоретически невозможно разработать Идеальная система лицензирования . Если взглянуть на игровую индустрию, лицензирование программного обеспечения обходится для каждой новой выпущенной игры всего за несколько дней. Единственная программная архитектура, которая взломала еще не полностью, - это облачные приложения, которые фактически не доставляют скомпилированный код со своими бизнес-логиками c на компьютер конечного пользователя.

...