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»
4. Ya tenemos el archivo *.jar, así que podemos descomprimirlo utilizando cualquier programa compresor de archivos como Winrar.
Ahora ya podemos utilizar un decompilador (Java Decompiler) para explorar los archivos.
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!!! 🙂
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! :)
Las estructuras de control de Shell son muy parecidos a otras lenguajes de programación. Las estructuras disponibles en...
Servicio Web Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protoc...
El gigante de la informática Google, ante la reciente pandemia mundial declarada por la OMS (Organización Mundial de la...
Desde java 7 esta disponible la interface ExecutorService que se extiende de Executor y nos proporciona los métodos nece...
En este post crearemos un componente gráfico para java que nos permitirá seleccionar la hora del día de una manera senci...
En este tutorial veremos una forma de trabajar con el swing JToggleButton y una base de datos para dar respuesta a una...
Los comentarios estan cerrados
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
Google Bard la inteligencia artificial de Google se actualiza con una mejora que entra a competir con el resto de IAs y...
Genial tus post amigo! muchas gracias voy a investigar un poquito =)
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.
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.
:/ 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
Saludos, muy buen post sobre mapas…
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?
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?
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
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
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
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.
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