apktool

23 августа 2018 в Reverse Engineering

Описание пакета apktool

Это инструмент для обратного проектирования сторонних, закрытых, бинарных приложений для Android. Он может декодировать ресурсы почти до первоначальной формы и восстанавливать их после внесения некоторых изменений; это позволяет пошагово отлаживать код smali. Кроме того, это облегчает работу с приложением благодаря проектной структуре файлов и автоматизации некоторых повторяющихся задач, таких как сборка apk и т. д.

Он НЕ предназначен для пиратства и других нелегальных целей. Его можно использовать для локализации, добавления некоторых функций или поддержки пользовательских платформ и других ХОРОШИХ целей. Просто постарайтесь быть честными с авторами приложения, которое вы используете и, вероятно, любите.

Особенности:

  • декодирование ресурсов в почти оригинальную форму (включая resources.arsc, XML и файлы 9.png) и их восстановление
  • отладка smali: SmaliDebugging
  • помогая с некоторыми повторяющимися задачами

Инструменты, включенные в пакет apktool

apktool - инструмент для реинжиниринга Android apk файлов

root@kali:~# apktool
      Apktool v2.3.4-dirty - a tool for reengineering Android apk files
      with smali v2.2.3-dev and baksmali v2.2.3-dev
      Copyright 2014 Ryszard Wiśniewski <brut.alll@gmail.com>
      Updated by Connor Tumbleson <connor.tumbleson@gmail.com>
      
      usage: apktool
       -advance,--advanced   prints advance information.
       -version,--version    prints the version then exits
      usage: apktool if|install-framework [options] "framework.apk"
       -p,--frame-path "dir"   Stores framework files into "dir".
       -t,--tag "tag"          Tag frameworks using "tag".
      usage: apktool d[ecode] [options] "file_apk"
       -f,--force              Force delete destination directory.
       -o,--output "dir"       The name of folder that gets written. Default is apk.out
       -p,--frame-path "dir"   Uses framework files located in "dir".
       -r,--no-res             Do not decode resources.
       -s,--no-src             Do not decode sources.
       -t,--frame-tag "tag"    Uses framework files tagged by "tag".
      usage: apktool b[uild] [options] "app_path"
       -f,--force-all          Skip changes detection and build all files.
       -o,--output "dir"       The name of apk that gets written. Default is dist/name.apk
       -p,--frame-path "dir"   Uses framework files located in "dir".
      
      For additional info, see: http://ibotpeaches.github.io/Apktool/
      For smali/baksmali info, see: https://github.com/JesusFreke/smali

Пример использования apktool

Используйте режим отладки (d) для декодирования данного файла apk (/root/SdkControllerApp.apk):

root@kali:~# apktool d Facebook\ Lite_v121.0.0.8.97_apkpure.com.apk
      I: Using Apktool 2.3.4-dirty on Facebook Lite_v121.0.0.8.97_apkpure.com.apk
      I: Loading resource table...
      I: Decoding AndroidManifest.xml with resources...
      I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk
      I: Regular manifest package...
      I: Decoding file-resources...
      I: Decoding values */* XMLs...
      I: Baksmaling classes.dex...
      I: Copying assets and libs...
      I: Copying unknown files...
      I: Copying original files...