Destripando aplicaciones en Android: Primera parte

Todos somos conscientes, de que si no manejas el programa este te maneja a ti, hoy en día las personas que nos preocupamos por la seguridad y la privacidad, hemos interiorizado, esta frase, y hacemos de ella, una forma de lucha contra el sistema y su «gran hermano» que todo lo vigila y quiere controlar.

Con el boom de las aplicaciones móviles, hemos lidiado, fomentando el software libre de repositorios como fdroid, y hemos intentado inculcar que existe vida mas allá de markets privativos, donde se alojan aplicaciones que no sabemos realmente que es lo que hacen, puesto que su código no esta disponible. Llamémosle paranoia,seguridad, privacidad o como bien quieras llamarlo, pero ¿sabes realmente que hacen las aplicaciones privativas que tienes instaladas en tu teléfono? ¿sabes si realmente aparte de la funcionalidad que «supuestamente» deben de hacer no realizan, otra recolección de datos para otros fines? Se sincero/a no lo sabes, y si no saberlo no te preocupa y prefieres seguir viviendo en «matrix» cierra esta ventana y a otra cosa, pero si de verdad te preocupa y tienes un mínimo interés por ver como funcionan intentaremos explicarlo.

Un sencillo ejemplo Entre las aplicaciones que solemos tener instaladas en el móvil, hay algunas que vienen predefinidas por el fabricante y suelen ser aplicaciones muy básicas como reloj,despertador,calculadora,notas,etc.. Veamos los permisos que android requiere para un simple reloj despertador.

Umm demasiados permisos para un simple reloj despertador ¿no crees?, vamos a empezar nuestra disección por esta aplicación, para ello vamos a conectarnos por adb y copiaremos la aplicación a nuestro disco duro de la siguiente manera:

  • Descargamos el paquete SDK de android (si tenemos instalado android studio no necesitamos descargarlo aparte bien includo)

             wget https://dl.google.com/android/repository/tools_r25.2.3-linux.zip
    
    • Extraemos, el paquete y conectamos nuestro movil al equipo activando la depuracion usb
    • Listamos los dispostivos ejecutando adb de la siguiente manera:

      ./adb devices
      

– Si vemos nuestro dispositivo esta todo bien, por lo que vamos a lanzar el comando para listar todas nuestras aplicaciones:

adb shell pm list packages

– Nos fijamos en el nombre de nuestro aplicacion, en nuestro caso com.sec.android.app.clockpackage y ejecutamos el siguiente comando para ver el path de nuestra aplicación.

adb shell pm path com.sec.android.app.clockpackage

– Ahora que sabemos el path de nuestra aplicacion la copiamos a nuestro sistema

./adb pull /system/app/ClockPackage_ESS.apk
  • Ya tenemos nuestra aplicación en nuestro sistema, ahora vamos a «desguazarla»

Para el proceso de «decodificación» de nuestra aplicación vamos a usar apktool los archivos apk, no son mas que archivos zip que contienen los recursos código ensamblado de java y que podemos descomprimir fácilmente con un simple unzip, pero obviamente no es posible ver o editar archivos compilados con este método, por eso vamos a utilizar apktool.

Instalacion apktool

  • La instalación de la herramienta es muy sencilla:

  • Instalamos la ultima version de java(openjdk) disponible

        apt-get install openjdk-8-jre
    
  • Descargamos el wrapper scrip y lo guardamos como apktool

    wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
    
  • Descargamos la versión mas reciente de apktool y la renombramos como apktool.jar

    wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.2.2.jar
    
    • Activamos el soporte para librerías de 32 bitss(si nuestro sistema es de 64)

      dpkg --add-architecture i386(debian)
      
    • Copiamos apktool y apktool.jar a /usr/local/bin y les damos permisos de ejecución(chmod +x)

Decodificando

  • Ejecutamos apktool indicándole nuestro archivo apk

     apktool d ClockPackage_ESS.apk
    

Por ahora, lo dejaremos aquí,evidentemente hemos omitido algunas cosas como los archivos dex,frameworks,data que veremos mas adelante, pero por ahora tenemos nuestro apk decodificado para que podamos ir curioseando.

Happy Hacking ;)

Compartir

6 Comentarios

  1. al ejecutar apktool d nombre aplicacion.apk me tira un error «línea 77: exec: java: no se encontró», esto que puede ser?
    gracias un saludo

    1. Buenas, el error que te indica es que no tienes java instalado, se me olvido comentarlo en el articulo lo edito para añadirlo.

      Gracias

      Un Saludo

Deja una respuesta

Your email address will not be published. Required fields are marked *