Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Android / Decompilar archivos APK

Decompilar archivos APK

Por 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

Artículos similares

Contar segundos (Problema Resuelto)

El problema dice asi: Se desea contar los segundos que se presiona un JButton en un formulario. Solución: Para resolver[...]

Compartir texto plano con un ShareActionProvider en Android

Un Action Provider es un elemento que habita en la Action Bar para incrementar la accesibilidad de nuestras aplicaciones[...]

Alda: Lenguaje de programación para composición musical

Alda es un lenguaje de programación desarrollado por Dave Yarwood el cual esta basado en texto para composición musical,[...]

Cargar fuente TTF

Necesitamos: Android Studio 2 tipos de fuente TTF Agregar Archivo de fuente al proyecto Paso 1: Crear carpeta assets Cli[...]

Crear XML desde una base de datos con jDom

Un post cortito de fin de semana 🙂 , este trata de la forma de extraer la información de una base de datos formar una es[...]

Mapas con HTML5 – Funciones de pintado – Parte 5

En esta penúltima parte, declaramos las funciones que nos permitirán pintar los shapes en el canvas, vamos al grano que[...]