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

Introducción a PHP con Netbeans

Introducción a PHP con Netbeans

NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Sin em...

Simulador de Arduino on line

Simulador de Arduino on line

123d.circuits.io es una aplicación web propiedad de Autodesk que permite construir circuitos en un protoboard virtual. C...

Reportes y Subreportes con iReport

Reportes y Subreportes con iReport

Cuando creamos reportes en iReport que son un poco complicadas o reportes personalizados, osea, tratando de evitar el cl...

Ejecutar función de postgreSQL desde Java

Ejecutar función de postgreSQL desde Java

Este es una continuación de un tutorial pasado [Funciones en PostgreSQL y pgAdmin], así que si quieres entenderlo mucho...

Construye la interfaz de facebook

Construye la interfaz de facebook

En este tutorial veremos un poco lo que es el diseño de interfaces en android, en lugar de colocar el ejemplo de uso de...

JSON Web Tokens: Teoría y práctica

JSON Web Tokens: Teoría y práctica

En este post aprenderemos lo que es un JSON Web Token, como crear nuestro propio token de acceso y como usarlo en un Ser...

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

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...

Un JList nos permite almacenar objetos en una lista y mostrarlos gráficamente en una serie vertical en el cual el usuari...

El proyecto “Java Decompiler” tiene como objetivo desarrollar herramientas para descompilar y analizar byte...

En este post aprenderemos lo que es un JSON Web Token, como crear nuestro propio token de acceso y como usarlo en un Ser...

Android Bolivia

Bandera en Alto