Перетаскивание лицензий для разработчиков приложений. Как мне убедиться, что исходный код не будет декомпилирован и использован повторно? - PullRequest
1 голос
/ 08 февраля 2020

Я работаю над перетаскиванием приложений. Концепция проста: пользователи могут создавать свои приложения визуально, а затем параметры приложения превращаются в файл конфигурации, который будет использоваться приложением для определения того, как его конструировать (какие представления следует показывать, как должна выглядеть навигация, и т. Д.). c.)

Моя главная задача, как только пользователи загрузят файл apk (или ipa), они смогут декомпилировать его, что-то изменить в файле конфигурации и повторно скомпилировать / переподписать для публикации. как новое приложение.

Я думал о том, чтобы поместить часть логики c на стороне сервера, но это поставило бы меня перед следующими проблемами:

  • Если 1000 Люди создавали и публиковали приложение с моим программным обеспечением, и каждое приложение отправляло на мой сервер только 10 000 ежедневных запросов, это уже 10 000 000 запросов в день, что было бы довольно дорого.

  • Если мой сервер по какой-то причине не работает, ко мне будут приходить злые пользователи.

Есть идеи?

1 Ответ

0 голосов
/ 08 февраля 2020

Нет нет точного способа остановить процесс декомпиляции / обратного инжиниринга из android приложения или apk!

Но есть некоторые шансы на уменьшить область видимости кода после декомпиляции / процесса обратного инжиниринга!

Вот некоторые привычки, которыми я делюсь

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

2) Методы обнаружения отладчика : При использовании значений с твердым покрытием или строки используются некоторые формулы или методы шифрования , которые могут помочь скрыть фактических значений

3) Написать важные части кода на C / C ++ : Вы также можете написать важные части своего кода на C / C ++ и добавить их в виде скомпилированной библиотеки. Хотя его можно разобрать в код сборки , обратный инжиниринг большой библиотеки из сборки занимает очень много времени. Java легче декомпилировать по сравнению с C / C ++.

Вот некоторые ключевые привычки, о которых позаботится хороший разработчик. Вы также должны проверить этот ответ а!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...