Ingeniería de software, tecnología e innovación aplicados a los nuevos desafíos de desarrollo.
Android Análisis Reverso - Generando cambio de color para #Twitter
Obtener vínculo
Facebook
X
Pinterest
Correo electrónico
Otras apps
El objetivo de este articulo es comprender el poder de las técnicas de #ingeniería-reversa, analizar las aplicaciones móviles desde una óptica interna y mejorar el fantástico mundo móvil. En este caso un enfoque práctico sobre #Android y como desafío tendremos, el modificar desensamblando y ensamblando la aplicación #Twitter para cambiar su tradicional color.
Veamos el paso a paso del proceso:
Identificamos la aplicación en el dispositivo y hacemos una copia de su #apk.
Fig.1
Vamos a trabajar con #Twitter como muestra Fig.2
Fig.2
Ya tenemos el resguardo del #apk, debemos pasarlo a nuestra laptop para iniciar las operaciones.
Fig.3
Como vamos a modificar el color de la barra central de #Twitter, vamos a hacer una captura para poder extraer el color exacto que nos facilitará la tarea de identificación sobre el código desensamblado.
Fig.4
Luego pasamos el ensamblado a nuestra laptop y los trabajamos con #apktool. Desensamblamos el #apk con el comando mostrado en la Fig.5.
Fig.5
Luego como vemos en la Fig.6 tenemos el proyecto para realizar las modificación que necesitemos. Como nuestro objetivo es cambiar el color central de la aplicación, seguramente dentro de res/values encontraremos colors.xml, tenemos muchas posibilidades de encontrar lo buscado en este archivo.
Fig.6
Abrimos colors.xml y buscamos con el color extraído de la detección que muestra la Fig.4.
Fig.7
Guardamos colors.xml y procedemos a ensamblar el código nuevamente utilizando #apktool. Fig.8
Fig.8
Luego pasamos el ensamblado generado al dispositivo. [recuerden que el ensamblado nuevo se genera en la carpeta #dist] y lo firmamos con #ZipSigner. Fig.9
Fig.9
Solo resta instalar manualmente el nuevo ensamblado firmado. [recuerden desinstalar antes la aplicación a reemplazar, para ser ordenados en el proceso]. Fig.10
Fig.10
El proceso completo se encuentra grabado en vivo en este video:
¿Qué sucedería si preparamos un experimento que comparara un modelo con características similares usando CPU de escritorio tradicional y por otro lado, una EDGE TPU? Cada Edge TPU es capaz de ejecutar 4 trillones de operations (tera-operaciones) por segundo (TOPS), utilizando 0.5 watts por cada TOPS (2 TOPS por watt). como se traduce este rendimientopara su aplicación dependerá de una variedad de factores. Cada modelro de red neuronal tiene diferentes requerimientos, y si stá utilizando un dispositivo acelerador USB, el rendimeinto total también variará dependiento el CPU host, la velocidad de USB y otros recursos del sistema. referencia (english) Exploremos ahora una experiencia utilizando el acelerador USB, tomando contacto con el dispositivo Comenzando el experimento Al explorar la tabla de "tiempo por inferencia", tengo curiosidad por experimentar con la inferencia de modelos, utilizando una CPU de escritorio y con la misma CPU host ...
Desde su lanzamiento TensorFlow me cautivó por su poder, funcionalidad y enfoque abierto como librería para calculo numérico avanzado y desde luego para representar, diseñar e implementar modelos de aprendizaje automático. Pero desde la incorporación de Keras , la flexibilidad y simplicidad para la representación de modelos de aprendizaje profundo es maravillosa. Desde su definición, Keras es una API de alto nivel para construir y entrenar modelos de aprendizaje profundo. Se utiliza para creación rápida de prototipos, investigación avanzada y por supuesto esto es válido también para producción. Tres ventajas claras nos propone, es fácil de usar, modular, y relativamente fácil de extender . ❗ si buscan un glosario en español una opción que se ve bien es el propuesto por Google en su iniciativa " Glosario sobre aprendizaje automático " Si les interesa analizar un ejemplo que es un tanto académico pero es interesante para afianzar la mecánica de operaciones de un red ...
Antes de comenzar la actividad de desarrollo vamos a definir de que se trata, cuando establecemos que utilizaremos intents implícitos en la solución mobile de Android. Los intents implícitos se utilizan cuando no se especifica un componente exacto a utilizar, en su lugar, se especifica la funcionalidad requerida a través de una acción (por ejemplo, 'ver', 'hacer búsqueda', 'marcar') y un dato (por exemplo, la URL de la página que se desea ver, el número que se desea marcar), y Android debe determinar el mejor componente para su utilización. Esa es una de las características más interesantes de Android, porque permite que una aplicación desencadene un “Intent” sin conocer exactamente cuál será la aplicación o componente que lo recibirá, y por eso puede interactuar con otras aplicaciones de manera muy flexible El filtro más comunmente utilizado es una acción, y la acción más común tiene que ver con el modo ACTION_VIEW. Los pasos básicos para lanzar una activid...
Comentarios
Publicar un comentario