2.13.2019

Exploiting Inside Pokémon Red - I Un poco de historia para iniciar

Hola soy StateX y desde que cerré mi blog he estado años sin armar una entrada.Así que, ahora que tengo ganas de escribir, compartiré con vosotros algo raro pero que me moría de ganas por saber como funcionaba.


No sé tu nivel de conocimiento sobre la historia de los videojuegos, pero empezaré: detallando el hardware de Gameboy, la historia de cómo se creó Pokémon y terminaremos con un desmontaje de un cartucho de Pokémon Rojo y la compilación de varios fallos y exploits.

Si nunca has jugado... no puedo creerlo pero ... si nunca has jugado con una Gameboy, puedes jugar a Tetris haciendo clic en el siguiente enlace:


Cool right?. Este videojuego fue una revolución para la época y ahora que sabéis lo que fue la GameBoy para los chavales de mi época y los puntos que vamos a tratar en las siguientes entradas, os dejo un poco de información del hardware que usaba la pequeña de Nintendo:



CPU - LR25902 de 8 bits a 4.194304 MHz.
Velocidad del reloj: 4.194304MHz
RAM de trabajo - 8K Byte (Sharp)
RAM de video - 8K Byte (Sharp también)
Tamaño de la pantalla - 2.6 "Resolución - 160x144 (azulejos 20x18)
Máx. - Máx. 40 por pantalla, 10 por línea
tamaño Sprites - 8x8 o 8x16 píxelesPaletas - 1x4 BG, 2x3OBJ
Colores- 4 grayshades
Horiz Sync - 9198 KHz
Vert Sync -59,73 Hz
Sonido- 4 canales con sonido estéreo Potencia - DC6V 0.7W



Sed Buenos ;)

Compartir:

2.11.2019

Android Reversing 101: Instalación y Configuración de Herramientas II

Hola a todos , seguimos con los post de Android Reversing . En esta ocasion no sera tan largo esta entrada pues solo nos falta algunos detalles para comenzar a resolver algunos retos y tomar mas practica en este mundillo. Sin embargo antes de comenzar te agradeceria que leas el anterior post , actualize unas herramientas y es imprenscindible para seguir con este tutorial.

Ya tenemos casi todas las herramientas básicas para comenzar y no quiero decir que mas adelante no necesitemos otras,  pero al culminar esta entrada tendremos lo basico para comenzar.  Dicho esto solo nos faltaria saber como extraer un apk android desde el Play Store para poder analizar desde una fuente confiable y tambien obtener un entorno donde realizar las pruebas a las aplicaciones.

Debo decir que en este o futuros post no analizaremos aplicaciones comerciales de Play Store, pues para practicar y aprender muchas personas crearon crackmes que podrian ser hasta mas complicados que una aplicacion comercial.

A comenzar  


Estamos listos para comenzar y la mision del dia de hoy es conseguir un aplicacion y poder testearla , para hacer esto tenemos dos opciones usar un emulador android o usar nuestro propia dispositivo android que podremos conectarla por medio de ADB . Pero que es un emulador android o ADB ? .

Que es un emulador Android ?

Un emulador de Android nos permite simular un dispositivo, permitiendo de esta manera trabajar desde la computadora, permitiendo crear un entorno de testeo para el desarrollo de prototipos de aplicaciones.

Que es ADB en android ?

ADB es el acronismo de "Android Debugging Bridge" o en español "Puente de depuración de Android". Es una Herramienta que viene junto con el SDK de android y nos permite acceder y controlar un dispositivo android desde una PC.

Emulator NoxPlayer

Durante esta serie de entradas utilizaremos el Emulador NoxPlayer con la principal ventaja que es gratuito, la descarga del mismo ser realiza desde su página oficial. La instalacion es muy sencilla además de configurarlo a nuestra necesidad.





Se puede configurar el tamaño que deseemos. El siguiente paso es realizar el registro de una cuenta en la Play Store, que nos permitira realizar la descarga de las aplicaciones disponibles en el market y utilizar en el emulador.



Para este proceso necesitamos tenerlo en modo root, guardamos y reiniciamos .




Es posible contar con una carpeta compartida con nuestra PC, una vez marcado se tiene el directorio /data/app/, veremos en este ejemplo donde se encuentra y como proceder para extraer el mismo y si tenemos la necesidad de hacer un análisis estático.



Una vez accedemos al directorio marcamos la aplicación que deseamos extraer.




Movemos el APK en el directorio /mnt/shared/App que es el directorio compartido con el host anfitrión.






Usando ADB Android

Se realizo una actualización de la entrada anterior, en el cual explico como configurar y tener ADB, esta en la sección Instalando SDK Platfom Tools,  este proceso es cuando realizemos algun trabajo con un dispositivo fisico no virtualizandolo (emulando) a pesar de que se puede realizar la misma conexión con el entorno virtualizado, considerando que tenemos listo el entorno con ADB solo debemos de conectar el dispositivo al ordenador, y habilitar en el móvil el modo desarrollador y activar la depuracion usb.

El proceso se realizada de la siguiente manera:

Ajustes > Sistema > Acerca del telefono  pulsando 10 veces sobre número de compilación, con esto ya estariamos en modo desarrollador.
Despues se debe ingresar  Ajustes > Sistema > Opciones de desarrollador y activa la “Depuración USB“.

Por cierto no olvidar descargar antes los drivers del móvil para que el mismo sea reconocido por el ordenador.


Hemos digitado nuestro primer comando de ADB , adb devices que nos lista los Dispositivos/Emuladores conectados a nuestra computadora , si tal vez no nos sale de esta manera o similar el proceso es habilitar y desahibilitar la depuración USB, además de autorizar y dar los permisos respectivos.

A continuación detallo los comandos mas usados con ADB.

  • adb devices: Imprime una lista de todos los emuladores/dispositivos conectados
  • adb push: Copia un archivo desde el ordenador al emulador/dispositivo.
  • adb pull: Nos permite extraer un archivo del teléfono y pasarlo al ordenador.
  • adb shell: Se obtiene una shell de comandos para interactuar con el emulador/dispositivo.
  • adb install: Permite realizar la instalación de un APK al emulador/dispositivo
  • adb uninstall: Permite desinstalar aplicaciones del emulador/dispositivo.

Ahora que tenemos una idea de los comandos, necesitamos obtener el apk de aplicacion de play store asi que desde mi computadora entremos desde nuestro navegador a la web de play store y buscamos con el nombre a la app que tenemos en nuestro dispositivo móvil.




En la url tenemos el nombre de la aplicación lo cual nos permite identificar para realizar la busqueda en el dispositivo móvil.



Al ejecutar el comando adb shell pm path [nombre_aplicacion] vemos que imprime la ruta de la aplicación, la cual nos permitira descargar


Ejecutando adb pull [ruta_aplicacion] copiara en la ruta que estamos situados el APK, en este caso es C:\Users\AbelJM\Desktop 


Cabe aclarar que el uso de estos dos metodos para obtener el archivo apk es a gusto de cada uno, por que tambien es posible utilizar servicios ONLINE como ser APK Mirror, por mencionar.

Por ultimo solo queda despedirme espero que les haya gustado esta entrada y en la próxima ya estaremos analizando y haciendo cosas divertidas . nos vemos.

AbelJM   
Compartir: