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

Reportes con imagenes en Java (Video)

Reportes con imagenes en Java (Video)

Video Tutorial que muestra una de las maneras de utilizar y mostrar imagenes en iReport, pasando estas como parametros d...

Como paginar registros en Java/Access

Como paginar registros en Java/Access

En este post veremos una forma de realizar la paginación en una base de datos Access utilizando el lenguaje de programac...

Tabla con imagen de fondo

Tabla con imagen de fondo

En este post personalizaremos una tabla JTable Swing para pintar una imagen de fondo y darle un poco de estilo al encabe...

Gráfico de columnas con iReport

Gráfico de columnas con iReport

El gráfico de columnas es uno  tipo de gráfico que nos permite representar fácilmente la cantidad de veces que ocurre un...

Tojorí – Java/MySQL

Tojorí – Java/MySQL

Tojorí es una libreria Java/Mysql para la creación de aplicaciones de base de datos utilizando el IDE de Netbeans desde...

Crea un «Juego de Memoria» en java

Crea un «Juego de Memoria» en java

En este tutorial crearemos un sencillo juego de memoria en lenguaje java. Necesitamos IDE Netbeans 7.x Editor de imágene...

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

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

En este post crearemos un botón swing que reproducirá un sonido cuando este sea presionado por el usuario.  Sin mas que...

Muchas veces necesitamos de fotos para adornar nuestros perfiles en RRSS pero no queremos subir nuestras propias fotos p...

En esta ocasión aprenderemos a conectaros con una base de datos Oracle desde Laravel. Es un tutorial sencillo y cortito,...

En este tutorial conoceremos una forma de conectar una aplicación en Laravel con tres bases de datos diferentes, 2 en My...

Herramientas

Generador de Enlaces a Whatsapp