Могут ли пользователи преобразовать файл apk моего приложения в реальный код? Если они это сделают - есть ли способ предотвратить это?
Можно ли декомпилировать файл .apk для Android?
Ответ 1
Во-первых, файл apk - это просто модифицированный файл jar. Таким образом, реальный вопрос заключается в том, могут ли они декомпилировать файлы dex внутри. Ответ вроде. Уже есть дизассемблеры, такие как dedexer и smali. Вы можете ожидать, что они станут только лучше, и теоретически в конечном итоге должна быть возможность декомпилироваться в реальный исходный код Java (по крайней мере, иногда). Смотрите предыдущий вопрос декомпиляции DEX в исходный код Java.
То, что вы должны помнить, это запутывание никогда не работает. Выберите хорошую лицензию и приложите все усилия, чтобы обеспечить ее соблюдение законом. Не тратьте время на ненадежные технические меры.
Ответ 2
Возможно декомпиляция файла APK. Но может быть трудно понять код, если он запутан.
ApkTool для просмотра ресурсов внутри файла APK
- Извлекает AndroidManifest.xml и все в папке res (макет xml файлов, изображений, htmls, используемых в webview и т.д.).
- команда:
apktool.bat d sampleApp.apk
- ПРИМЕЧАНИЕ.. Вы можете добиться этого, используя zip-утилиту, такую как 7-zip. Но он также извлекает файл .smali всех файлов .class.
Использование dex2jar
- Генерирует файл .jar из файла .apk, нам нужен JD-GUI для просмотра исходного кода из этого .jar.
- команда:
dex2jar sampleApp.apk
Декомпиляция .jar с использованием JD-GUI
- декомпилирует файлы .class(obfuscated - в случае приложения Android, но считываемый исходный код получается в случае другого .jar файла). то есть мы вернемся из приложения .java.
Ответ 3
Я думаю, что его можно использовать dex2jar и gd-gui для извлечения ресурсов вы можете изменить расширение apk на zip. но код, декомпилированный с использованием dex2jar, не будет таким же, как оригинал поскольку Android использует proGuard по умолчанию
Ответ 4
Я также могу добавить, что в настоящее время можно декомпилировать Android-приложение онлайн, без необходимости программного обеспечения!
Вот два варианта для вас:
Ответ 5
Загрузите этот инструмент jadx https://sourceforge.net/projects/jadx/files/
Разархивируйте его, а затем в папку lib запустите файл jadx-gui-0.6.1.jar, чтобы просмотреть файл apk. Это было сделано. Автоматически apk декомпилирует и сохраняет его, нажав кнопку сохранения. Надеюсь, это сработает для вас. Благодаря
Ответ 6
Иногда вы получаете сломанный код при использовании dex2jar
/apktool
, особенно в циклах. Чтобы избежать этого, используйте jadx, который декомпилирует байт-код dalvik в исходный код java, не создавая сначала файл .jar
/.class
dex2jar
делает (apktool использует dex2jar, я думаю). Он также работает с открытым исходным кодом и активно развивается. У него даже есть GUI, для GUI-фанатиков. Попробуйте!
Ответ 7
Могут ли пользователи преобразовать файл apk моего приложения обратно в реальный код?
да.
Люди могут использовать различные инструменты для:
- анализ: ваш апк
- расшифровать/взломать ваш apk
- использование
FDex2
дляFDex2
файлаdex
- затем с помощью
dex2jar
конвертировать вjar
- затем с помощью
jadx
дляjadx
в исходный кодjava
- затем с помощью
- затем с помощью
- использование
Если они это сделают - есть ли способ предотвратить это?
да. Несколько (можно комбинировать) способов предотвратить (в определенной степени) это:
- низкий уровень: запутывание кода
- с помощью Android
ProGuard
- с помощью Android
- высокий уровень: используйте сценарий защиты Android
Более подробную информацию можно найти в моем учебнике по китайскому языку: 安卓 应用 的 安全 和 破解