Проверить, что Android apk не был повторно упакован? - программирование
Подтвердить что ты не робот

Проверить, что Android apk не был повторно упакован?

В целях повышения безопасности моего Android-приложения, чтобы флаг, если .apk был извлечен, изменен, переупакован и ушел в отставку. Вот статья из Zdnet, отметившая проблему link1.

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

Итак, я думаю код для проверки контрольной суммы сертификата apk или подписания?

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

[обновление] Я знаю, что модуль лицензирования магазина Google Play предлагает нечто подобное, но я ищу что-то для неплатежных приложений и других/нерыночных мест.

4b9b3361

Ответ 1

В итоге я использовал Dexgaurd (платный obfuscator для Android) предлагает модуль, который задерживает проверку apk. В основном, как просто реализовать и предлагает лучшую среднюю защиту.

Здесь код для проверки:

dexguard.util.TamperDetection.checkApk(context)

Основная проблема заключается в том, где хранить контрольную сумму apk для проверки с учетом того, что ее можно заменить. Метод dexguard заключается в том, чтобы проверять его локально, но используя другие функции, такие как шифрование класса/строки и api, скрывающие неясность этого вызова.

Ответ 3

Используйте службу лицензирования Google. Он будет подключаться к магазину воспроизведения, чтобы убедиться, что пользователь купил приложение каждые несколько дней. (вы можете установить количество) Также пройдите в ProGuard. Он удаляет все имена классов, методов и переменных из вашего кода, что делает его очень трудным для понимания после его декомпиляции.