INGENIERÍA INVERSA CON APLICACIONES DE ANDROID

El otro día se me había antojado mirar una aplicación de una persona que admiro y se me ocurrió hacer este post.


¿Qué es INGENIERÍA INVERSA?

“Ingeniería inversa, es el proceso de extraer conocimiento o información de diseño de cualquier cosa hecha por el hombre y volver a producirlo o reproducir algo en función de la información extraída. El proceso a menudo implica desmontar algo (un dispositivo, componente electrónico, programa de computadora o materia biológica, química u orgánica) y analizar sus componentes y funcionamiento en detalle ”

En palabras simplificadas, es el proceso de obtener la fuente del producto analizando solo el producto final sin otra información, en este campo nos referimos a cómo aplicar algunos algoritmos para revertir el trabajo de compilar algoritmos y saber cómo funciona el programa desensamblando a los más pequeñas piezas (código de ensamblado y código de bytes) luego traducen la información recopilada a un código fuente similar al programa analizado.

 Hay dos razones para aplicar la ingeniería inversa.
Mal Razones:
1)Los Hackers quieren el código fuente para poder robar la idea del programa y desarrollar una aplicación similar con más características, lo que ahorraría un gran momento al calcular el código base.
2)Los Hackers quieren el código fuente para que puedan crear una aplicación igual al original, pero con un troyano incorporado o adware para que puedan piratear estos dispositivos o vender anuncios a través de estas víctimas.
Buenas razones :
3) Cyber Forensics lo usa para analizar la aplicación en busca de comportamiento meramente y para obtener información sobre la persona que creó las aplicaciones (Malware Analysis).
4) Los programas lo usan difícilmente para revertir sus propios programas y para desarrollar formas de asegurarlo.

REQUISITOS:

En Kali Linux puedes encontrar las herramientas como apktool.
APKTOOL
Esta herramienta descompila el archivo .APK en la carpeta tiene todos los recursos con el código .smali.
sudo apt-get install apktool
DEX2JAR
Esta herramienta descompila el archivo .APK en el archivo .JAR.
sudo apt-get install dex2Jar
Java Descompilador
Esta herramienta descompila el archivo .JAR en el código fuente legible de Java.
Esta herramienta crea un entorno virtual Android para probar las aplicaciones. 
sudo git clone https://github.com/techexpertize/SignApk.git
También la mayoría de herramientas funciona con java 8.
sudo apt-get update
sudo apt-get install default-jre
Agregas el siguiente repo
sudo nano /etc/apt/sources.list
deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main
sudo apt-get update
sudo apt-get install oracle-java8-installer
Para ver la versión.
javac -version
Si quieres la 9
sudo apt-get install oracle-java9-installer
Te no te va andar algunas herramientas con la versión 9

Detalles importantes acerca de las aplicaciones de Android.

El formato de archivo APK es una variante del formato de archivo JAR.
Un archivo APK generalmente contiene las siguientes carpetas:
META-INF
res
Junto con un conjunto de archivos:
AndroidManifest.xml
classes.dex
resources.arsc
Los dos archivos principales a considerar son Androidmanifest.xml y classes.dex archivos.
El archivo classes.dex contiene el bytecode de Dalvik de todo el código en la aplicación.

PROCEDIMIENTO:

Instalar framework para la aplicación que desea descompilar. Puedes hacerlo con el siguiente comando.
sudo apktool if appname.apk
Descompile la aplicación con el siguiente comando.
sudo apktool d appname.apk
Podemos editarlo o modificar para subir un troyano.
Recompile el archivo apk usando el comando mencionado a continuación.
sudo apktool b appname
Al modificar la aplicación y lo subas a tu android no te va a ejecutar y lanzar error hasta agregar su certificado.
sudo java -jar signapk.jar certificate.pem key.pk8 appname.apk appname-signed.apk
Se creará una nueva aplicación firmada dentro de la carpeta signapk. Esta es tu apk modificada / editada final. Puede cambiar el nombre de esta nueva aplicación firmada.
Mueva este nuevo archivo apk firmado a su dispositivo Android e instale la aplicación modificada. No puedes instalar el archivo apk sin firmarlo, ya que Android no te permitirá hacerlo.
Cuando un desarrollador crea un archivo apk con la ayuda de Android Studio, la apk se firma de manera predeterminada. Por lo tanto, mientras descompila y vuelve a compilar el archivo apk, tendrá que hacer este paso adicional para instalarlo en el dispositivo Android.
Bueno ahora no te olvides en compartirlo para seguir escribiendo, gracias!

No hay comentarios.:

Publicar un comentario

@creadpag