Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Android / Decompilar archivos APK

Decompilar archivos APK

Autor jc mouse martes, agosto 13, 2013

Las aplicaciones para celulares inteligentes con sistema operativo Android, se distribuyen en archivos *.APK, si como programador alguna vez tuviste la curiosidad de saber que es lo que contiene su codigo, este tuto te puede ayudar.

Los archivos APK, puedes descomprimirse con WinRar o cualquier otro compresor de archivos, pero si tratas de abrir el archivo classes.dex (que es donde esta el código java), solo veras unos garabatos sin sentido. Para decompilar un archivo APK, debemos seguir unos cuantos pasos los cuales los veras a continuación.

Herramientas.

– Un archivo APK (En este ejemplo la victima sera la aplicación licoapp.apk que encontré por internet, no se que hace pero no hace falta )

– Programa dex2jar

– Un decompilador de archivos  java (Ej. Java Decompiler)

– Sistema Operativo Windows  o Linux

¿Que son los archivos APK?

Un archivo con extensión *.apk (Application PacKage File) es un paquete para el sistema operativo Android. Este formato es una variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la plataforma Android para smartphones y tablets.1 2 [Fuente Santa Wikipedia]

Un archivo .apk normalmente contiene lo siguiente:

– AndroidManifest.xml
– classes.dex
– resources.arsc
– res (carpeta)
– META-INF (carpeta)
– lib (carpeta)

Pasos para decompilar un archivo APK

1. Descarga y descomprime el programa dex2jar en tu pc, para este ejemplo, se utilizo la dirección “E:\dex2jar\”

2. Pega dentro la carpeta “E:\dex2jar” el archivo APK que queremos decompilar. En este ejemplo, la aplicación se llama “licoapp.apk”.

3.Abre la consola de windows y escribe:

E:\dex2jar>d2j-dex2jar licoapp.apk

En linux quedaría más o menos así:

sh /home/jcmouse/dex2jar/d2j-dex2jar.sh /home/jcmouse/licoapp.apk

Presionamos ENTER y se creara en el mismo directorio un archivo de la forma tuapk-dex2jar.jar, en este ejemplo tenemos “licoapp-dex2jar.jar

con sola

4. Ya tenemos el archivo *.jar, así que podemos descomprimirlo utilizando cualquier programa compresor de archivos como Winrar.

lico

Ahora ya podemos utilizar un decompilador (Java Decompiler) para explorar los archivos.

umsa bolivia

Pero no se hagan grandes ilusiones, los archivos APK están ofuscados, osea no podrán entender el código java a menos que tengan buenos conocimientos sobre este lenguaje y aún así, realizar grandes cambios sera una tarea titanica 🙂 Pero al final vale la pena, utilizar la ingeniería inversa para conocer el funcionamiento de un programa es bastante recomendable pero recuerden que dependiendo el país donde se encuentren puede ser considerado un delito. En mi país hasta donde se 🙂 no pasa naranjas así que le metemos nomas a la piratería 🙂

Eso es todo. Enjoy!!! 🙂

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Empaquetar aplicación android para su distribución

Empaquetar aplicación android para su distribución

Cuando tenemos nuestra aplicación android terminada, lo siguiente es distribuirla ya sea en el Google Play o independien...

Componente swing jcMousePanel v1.6.9

Componente swing jcMousePanel v1.6.9

Agregar una imagen a un jpanel o a un jframe no es complicado pero para un programador novato puede convertirse en todo...

Contraseñas con emojis en java

Contraseñas con emojis en java

Semanas atrás leí un articulo en el que se pensaba implementar los emojis como contraseñas en los dispositivos con andro...

Botón en java de Windows 8 Modern UI

Botón en java de Windows 8 Modern UI

En este tutorial crearemos un botón con el estilo del nuevo windows 8 Modern UI que primero se conoció como Metro UI.  E...

Imprimir imagen con Print

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, e...

Añadir código QR a reportes con iReport

Añadir código QR a reportes con iReport

En un post anterior se vio como agregar un código DataMatrix en reportes con iReport Designer sin embargo actualmente el...

12 comentarios en “Decompilar archivos APK”

  1. Daniel dice:

    Genial tus post amigo! muchas gracias voy a investigar un poquito =)

  2. Michael Trujillo Salinas dice:

    Todo esta muy bien, pero; te cuento que estuve realizando lo que esta en tu blog, pero te cuento que este xml tiene una estructura la cual tiene un orden, lo puse antes del querystring como dice en tu tutorial, y no corría, salia un error que esperaba otra etiqueta, no lo entendía, hasta que llegué a este orden

    <![CDATA[SELECT
    y corrió.

    Este código es para alternar los colores de las filas, y se vea un poco mas elegante.

    Espero ayude en algo a lo que has hecho amigo.

  3. Enric dice:

    Hola. En primer lugar, gracias por el tutorial. Está muy bien 😉
    Por otro lado, me asalta la duda siguiente: ¿Cómo guardas las coordenadas para posteriormente, una vez que las has convertido en canvas por provincias(una por una, y separadamente), éstas vuelvan a generar la imagen del país al completo en cuestión ? Espero que entiendas la pregunta, y que puedas contestarme. Gracias de antemano de un inexperto en el campo.

    1. Mouse dice:

      :/ esto es en el post de mapas con html5 y canvas verdad, pues todo lo hace las herramientas que cito en el tutorial, es mucho código lo se, pero la mayoria es de puntos del mapa

  4. Mesias Moreno dice:

    Saludos, muy buen post sobre mapas…

  5. Ruben Rodriguez dice:

    Hola amigo como Hacer para cargar una foto a traves de java? vi en tu ejemplo, la parte donde decia cargar foto, me podrias dar un ejemplo de ese codigo paraimplementar en mi sistema?

  6. Sebastián dice:

    Hola, tengo un problema.
    Mi aplicación funciona al ir agregando filas a una Jtable, y de acuerdo a una condición, se pinta de un color o de otro. Cuando agrego una, todo perfecto. El problema es cuando quiero agregar otra, desafortunadamente me pinta bien esa nueva fila, pero me “despinta” el resto de la tabla, como si fuera la primera fila que agrego.

    ¿Qué puedo hacer?

    1. Mouse dice:

      creo que tu error se encuentra en donde realizas el pintado de las celdas, cuando repintes celdas debes hacerlo con todas eso se controla con una condición osea de color rojo las impares, azul las pares o si quieres las filas de todo color, eso es más complicado, cada celda debe tener una variable donde indiques a que color corresponde “n” fila

  7. Ban Midou dice:

    Muy bueno tu tutorial pude crear mi pantalla splash en mi proyecto pero al momento de generar el archivo jar y ejecutarlo no muestra la pantalla splash?? porque sucede esto? ademas de que utilizo una biblioteca para cambiar el look and feel y de la misma forma el archivo jar que compilo no respeta la interfaz… todo lo cambia al estilo de windows…
    La verdad es que estoy perdido en este asunto… agradecere tu ayuda

    1. Mouse dice:

      que look and feel usas??? por lo general estos skin modifican el tamaño de los componentes y cuando creas la interfaz en modo diseño todo bien, pero cuando ejecutas todo se deforma :/ la solución buscar un skin que se adecue a tus necesidades o en el peor de los casos usas los skin por defecto de java

  8. Gabriel Campos dice:

    Olá, sou brasileiro e achei muito legal o seu blog, também trabalho com Android, caso você tenha interesse podemos trocar informações.

    Abraço.

  9. cergio dice:

    hola me gustaría que me ayuden con una aplicacion para ciegos que lamentablemente bale muy cara se llama mobile accessibility existe también versiones gratis demo pero vencen a los 30 días y también existe una versión que funciona solo si tenemos una linea de at&t me gustaria que pudieran ayudarme a modificar esta aplicacion mi correo es discapacidad5@gmail.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

PHPUnit es un framework que se utiliza para escribir tests en PHP, Netbeans nos permite configurarlo y usarlo fácilmente...

Una Prueba Unitaria, es una forma de comprobar que nuestro código, hace lo que se supone debe hacer; es decir, se asegur...

La prueba del camino básico, es una prueba de “caja blanca” que consiste en verificar el código de nuestros...

Si quieres cambiar el nombre de tus atributos sin tener que reescribir código java por X o Y razón, GSON te permite reno...

Android Bolivia

Bandera en Alto