Можно ли декомпилировать Android.файл apk?

могут ли пользователи конвертировать apk-файл моего приложения обратно в фактический код? Если они это сделают - есть ли способ предотвратить это?

5 ответов


во-первых, an apk файл - это просто измененный файл jar. Поэтому реальный вопрос заключается в том, могут ли они декомпилировать файлы dex внутри. Ответ рода. Уже есть дизассемблеры, такие как dedexer и smali. Вы можете ожидать, что они только улучшатся, и теоретически в конечном итоге должно быть возможно декомпилировать до фактического источника Java (по крайней мере, иногда). См. предыдущий вопрос декомпиляция DEX в Java sourcecode.

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


возможна Декомпиляция APK файла. Но это может быть трудно понять код, если он обфусцирован.

ApkTool для просмотра ресурсов внутри файла APK

  • Экстракты AndroidManifest.xml и все в папке res (XML-файлы макета, изображения, htmls, используемые в webview и т. д..)
  • : apktool.bat d sampleApp.apk
  • Примечание: вы можете достичь этого с помощью zip утилиты, как 7-zip. Но, Это также извлекает .файл smali всех .файл класса.

С помощью dex2jar

  • генерирует .jar-файл .apk-файл, нам нужен JD-GUI для просмотра исходного кода из этого .сосуд.
  • : dex2jar sampleApp.apk

Декомпиляция .jar с использованием JD-GUI

  • декомпилируется на .class files (obfuscated - в случае приложения для android, но читаемый исходный код получается в случае других .файл jar.) то есть мы получаем .Ява из приложения.

Я также могу добавить, что в настоящее время можно декомпилировать приложение для Android онлайн, не требуется программное обеспечение!

вот 2 варианта для вас:


скачать этот инструмент jadxhttps://sourceforge.net/projects/jadx/files/

распакуйте его и затем в папке lib запустите jadx-gui-0.6.1.jar файл теперь просматривать файл apk. Дело сделано. Автоматически будете декомпилировать и сохранить его, нажав кнопку Сохранить. Надеюсь, это сработает. Спасибо


иногда вы получаете сломанный код, при использовании dex2jar/apktool, особенно в циклах. Чтобы избежать этого, используйте jadx, который декомпилирует байт-код dalvik в исходный код java, не создавая .jar/ сначала dex2jar делает (apktool использует dex2jar, я думаю). Он также является открытым исходным кодом и активно развивается. У него даже есть GUI, для GUI-фанатиков. Попробуй!