Я занимаюсь разработкой приложения для обработки платежей для Android и хочу запретить хакеру доступ к любым ресурсам, ресурсам или исходному коду из файла APK.
Если кто-то изменяет расширение .apk на .zip, то он может разархивировать его и легко получить доступ ко всем ресурсам и ресурсам приложения. Используя dex2jar и декомпилятор Java, они также могут получить доступ к исходному коду. Обратный инжиниринг Android APK файла очень легко - более подробно см. Вопрос. Обратный инжиниринг из APK файла в проект.
Я использовал инструмент Proguard, поставляемый с Android SDK. Когда я выполняю обратный инжиниринг APK файла, созданного с использованием подписанного хранилища ключей и Proguard, я получаю запутанный код.
Однако имена компонентов Android остаются неизменными, а некоторый код, например значения ключей, используемые в приложении, остается неизменным. Согласно документации Proguard, инструмент не может запутать компоненты, указанные в файле манифеста.
Теперь мои вопросы:
- Как я могу полностью предотвратить реверс-инжиниринг Android APK? Это возможно?
- Как я могу защитить все ресурсы приложения, ресурсы и исходный код, чтобы хакеры никак не могли взломать APK файл?
- Есть ли способ сделать взлом более жестким или даже невозможным? Что еще я могу сделать, чтобы защитить исходный код в моем файле APK?