cómo extraer el código del archivo apk

En realidad, estoy tratando de extraer el código de un archivo .apk llamado cloudfilz.apk y quería manipularlo en su código fuente, así que seguí los pasos que figuran a continuación:

crea una nueva carpeta y coloca el archivo .apk (que deseas decodificar) ahora cambia el nombre de este archivo .apk con la extensión .zip (p. ej., cambia el nombre de filename.apk a filename.apk.zip) y guárdalo … ahora obtienes clases archivos .dex, etc … en esta etapa puede ver archivos dibujables pero no xml y java … así que continúe …

paso 2:

ahora extrae este archivo zip apk en la misma carpeta (en este ejemplo, por ejemplo, NUEVA CARPETA). Ahora descargue dex2jar de este enlace http://code.google.com/p/dex2jar/ y extráigalo a la misma carpeta (en este caso, NUEVA CARPETA) ….. ahora abra el símbolo del sistema y llegue a esa carpeta (en este caso NUEVA CARPETA) …. después de llegar escribe “dex2jar classes.dex” y presionas enter ….. ahora obtienes el archivo classes.dex.dex2jar en la misma carpeta ……

=> Pregunta: “Logré el paso 1 con éxito, pero en el paso 2 cuando estoy ejecutando dex2jar classes.dex recibo un error en el símbolo del sistema java.lang.UnsupportedClassVersionError , sé que esto se debe a la incompatibilidad entre mi versión jdk instalada y las clases El número de versión .dex jdk está tan trabado aquí y no tiene salida …

Nota: Todas las instrucciones siguientes se aplican universalmente (también conocido como todos los SO) a menos que se especifique lo contrario.


Prerequsites

Necesitará:

  • Una instalación Java en funcionamiento
  • Un terminal de trabajo / indicador de comando
  • Un ordenador
  • Un archivo APK

Pasos

Paso 1: Cambiar la extensión de archivo del archivo APK

  1. Cambie la extensión de archivo del archivo .apk agregando una extensión .zip al nombre del archivo, o cambie .apk a .zip .

    Por ejemplo, com.example.apk convierte en com.example.zip o com.example.apk.zip . Tenga en cuenta que en Windows y macOS, puede indicarle si está seguro de que desea cambiar la extensión del archivo. Haga clic en Aceptar o Agregar si está usando macOS:

MacOS agrega diálogo de confirmación de extensión

Paso 2: extracción de archivos Java desde APK

  1. Extraiga el archivo APK renombrado en una carpeta específica. Por ejemplo, deja que esa carpeta sea demofolder .

    • Si no funcionó, intente abrir el archivo en otra aplicación como WinZip o 7-Zip.

    • Para macOS, puede intentar ejecutar unzip en Terminal (disponible en /Applications/Terminal.app ), donde toma uno o más argumentos: el archivo para descomprimir + argumentos opcionales. Ver man unzip para documentación y argumentos.

  2. Descargue dex2jar (vea todos los lanzamientos en GitHub) y extraiga ese archivo zip en la misma carpeta que se indicó en el punto anterior.

  3. Abra el símbolo del sistema (o un terminal) y cambie su directorio actual a la carpeta creada en el punto anterior y escriba el comando d2j-jar2dex.bat classes.dex y presione enter. Esto generará el archivo classes-dex2jar.jar en la misma carpeta.

    • Usuarios de macOS / Linux: d2j-jar2dex.bat con d2j-jar2dex.sh . En otras palabras, ejecute d2j-jar2dex.sh classes.dex en el terminal y presione enter.
  4. Descargue Java Decompiler (vea todas las versiones en Github) y extráigalo e inicie (también haga doble clic) el ejecutable / aplicación.

  5. Desde la ventana JD-GUI, arrastre y suelte el archivo classes-dex2jar.jar generado en él, o vaya a File > Open File... y busque el File > Open File... jar.

  6. A continuación, en el menú, vaya a File > Save All Sources (Windows: Ctrl + Alt + S , macOS: + + S ). Esto debería abrir un cuadro de diálogo que le pregunta dónde guardar un archivo zip llamado `classes-dex2jar.jar.src.zip” que consta de todos los paquetes y archivos java. (Puede cambiar el nombre del archivo zip que se guardará)

  7. Extraiga ese archivo zip ( classes-dex2jar.jar.src.zip ) y obtendrá todos los archivos java de la aplicación.

Paso 3: Obtener archivos xml de APK

  • Para obtener más información, consulte el apktool web de apktool para obtener instrucciones de instalación y más.
  • Windows:

    1. Descargue el script de contenedor (opcional) y el archivo jar apktool (obligatorio) y colóquelo en la misma carpeta (por ejemplo, myxmlfolder ).
    2. Cambie su directorio actual a la carpeta myxmlfolder y cambie el nombre del archivo apktool jar a apktool.jar .
    3. Coloque el archivo .apk en la misma carpeta (es decir, myxmlfolder ).
    4. Abra el símbolo del sistema (o terminal) y cambie su directorio actual a la carpeta donde se almacena apktool (en este caso, myxmlfolder ). A continuación, escriba el comando apktool if framework-res.apk .

      Lo que estamos haciendo aquí es que estamos instalando un marco. Para obtener más información, vea los documentos .

    5. El comando anterior debería dar como resultado “Marco instalado …”
    6. En el símbolo del sistema, escriba el comando apktool d filename.apk (donde filename es el nombre del archivo apk). Esto debería decodificar el archivo. Para obtener más información, vea los documentos .

      Esto debería dar como resultado una carpeta filename.out está generando, donde filename es el nombre original del archivo apk sin la extensión de archivo .apk . En esta carpeta están todos los archivos XML, como el diseño, los elementos extraíbles, etc.

Fuente: Cómo obtener el código fuente del archivo APK – Comptech Blogspot

Cualquier archivo .apk del mercado o sin firmar

  1. Si apk se descarga del mercado y, por lo tanto, se firma Install Astro File Manager del mercado. Abra Astro> Herramientas> Administrador de aplicaciones / Copia de seguridad y seleccione la aplicación para hacer una copia de seguridad en la tarjeta SD. Monte el teléfono como unidad USB y acceda a la carpeta ‘backupsapps’ para encontrar la aplicación de destino (vamos a llamarla app.apk). Cópielo en su unidad local igual que en el caso de .apk sin firmar.

  2. Descarga Dex2Jar zip desde este enlace: SourceForge

  3. Descomprime el archivo zip descargado.

  4. Abra el símbolo del sistema y escriba el siguiente comando al llegar al directorio donde está el exe dex2jar y también copie el apk en el mismo directorio.

    dex2jar targetapp.apk file (./dex2jar app.apk en el terminal)

  5. http://jd.benow.ca/ descargar decompiler desde este enlace.

  6. Abra ‘targetapp.apk.dex2jar.jar’ con jd-gui File> Save All Sources para guardar los archivos de clase en archivos jar a java.

paso 1:

enter image description here Descargue dex2jar aquí . Cree un proyecto java y pegue (dex2jar-0.0.7.11-SNAPSHOT / lib) archivos jar.

Copie el archivo apk en el proyecto de Java

Ejecuta y después de actualizar el proyecto, obtienes el archivo jar. Al usar el descomstackdor de Java puedes ver todos los archivos de la clase java

paso 2: Descargue el descomstackdor de Java aquí

Haga clic aquí, este es un buen tutorial para ambos, ventana / ubuntu.

  1. apktool1.5.1.jar descarga desde aquí .

  2. apktool-install-linux-r05-ibot descarga desde aquí .

  3. dex2jar-0.0.9.15.zip descarga desde aquí .

  4. jd-gui-0.3.3.linux.i686.tar.gz (java de-complier) descarga desde aquí .

  5. framework-res.apk (ubicado en su dispositivo android / system / framework /)

Procedimiento:

  1. Cambie el nombre del archivo .apk y cambie la extensión a .zip,

se convertirá en .zip.

  1. Luego extrae .zip.

  2. Descomprima el archivo descargado dex2jar-0.0.9.15.zip, copie el contenido y péguelo para descomprimir la carpeta.

  3. Abra el terminal y cambie el directorio para descomprimir “dex2jar-0.0.9.15”

– cd – sh dex2jar.sh classes.dex (el resultado de este comando “classes.dex.dex2jar.jar” estará en la carpeta extraída ).

  1. Ahora, crea una nueva carpeta y copia “classes.dex.dex2jar.jar” en ella.

  2. Descomprima “jd-gui-0.3.3.linux.i686.zip” y abra el “Java Decompiler” en modo de pantalla completa.

  3. Haga clic en abrir archivo y seleccione “classes.dex.dex2jar.jar” en la ventana.

  4. “Java Decompiler” e ir a archivo> guardar y guardar la fuente en un archivo .zip.

  5. Crea la carpeta “source_code”.

  6. Extraiga .zip guardado y copie los contenidos a la carpeta “source_code”.

  7. Aquí es donde guardaremos su código fuente.

  8. Extrae apktool1.5.1.tar.bz2, obtienes apktool.jar

  9. Ahora, descomprime “apktool-install-linux-r05-ibot.zip”

  10. Copie “framework-res.apk”, “.apk” y apktool.jar

  11. Pégalo en la carpeta “apktool-install-linux-r05-ibot” para descomprimir (línea no 13).

  12. Luego abre la terminal y escribe:

    – discos compactos

    – chown -R: ‘apktool.jar’

    – chown -R: ‘apktool’

    – chown -R: ‘aapt’

    – sudo chmod + x ‘apktool.jar’

    – sudo chmod + x ‘apktool’

    – sudo chmod + x ‘aapt’

    – sudo mv apktool.jar / usr / local / bin

    – sudo mv apktool / usr / local / bin

    – sudo mv aapt / usr / local / bin

    – apktool si framework-res.apk – apktool d .apk