Как защитить Arraylist от реверс-инжиниринга - PullRequest
0 голосов
/ 15 января 2020

У меня есть константа - arraylist в моем приложении.

Пример:

private String [] word = {"A","B" };

Я использовал pro-guard, но когда я попытался выполнить реверс-инжиниринг, я мог получить arraylist. Мне нужно набрать более 2400 слов, и можно получить arraylist, просто выполнив реверс-инжиниринг. Пожалуйста, дайте решение, чтобы никто не смог получить arraylist. Могу ли я поместить arraylist в build.gradle или где-нибудь, чтобы сделать его безопасным?

1 Ответ

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

Вам необходимо разработать утилиту (например, другое приложение java), которую вы не собираетесь распространять, которая кодирует ваш массив строк в виде зашифрованного или, по крайней мере, массива байтов или символов или в виде строки. Если вам нужно отредактировать список, который вы собираетесь редактировать и обновить это не выпущенное приложение.

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

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

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

Кроме того, не храните закодированный список в файле, потому что обычно его легче найти. Если вы хотите использовать сервер, вам нужно избегать передачи всего списка (только слова за раз), вам нужно защитить API от злоупотреблений (слишком много запросов), и это будет медленнее, чем другой вариант, и склонен к автоматизации c e Экстракторы. В среднем серверное решение сложнее реализовать, чем первое.

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