570 Shares 6056 views

La ingeniería inversa para los principiantes. Todas las aplicaciones Android de protección de la ingeniería inversa

A veces uno quiere ver, y qué tipo de inserción en un programa específico? Entonces tiene que usar una ingeniería inversa. ¿Qué es? ¿Cómo funciona? ¿Cómo es este proceso? Todo esto se aprenderá de este artículo.

¿Qué es un programas de ingeniería inversa?

Llamado análisis de la aplicación del proceso con el fin de entender cómo funciona, por lo que en el futuro para recrear este proceso al hacer los cambios necesarios. Por lo general se utiliza para este propósito depurador y ensamblador. Dependiendo de la calidad del software utilizado será diferente y el resultado es la cantidad de tiempo que debe ser gastado en él para llevar en una forma normal. Explicar la ingeniería inversa para principiantes el mejor ejemplo. A medida que los mismos realizar una solicitud por escrito para Android. Ahora vamos a ser para averiguar qué y cómo.

Trabajar con Android-aplicaciones

En primer lugar hay que aclarar algunos puntos. La aplicación utiliza el código de bytes y LogCat. Este contrapartes locales mencionados anteriormente depurador y ensamblador. También es necesario entender la estructura de las propias aplicaciones. Por lo tanto, cada programa es un archivo con la extensión apk. Empacó zip'om. Estamos interesados en su contenido – recursos de la aplicación, y classes.dex AndroidManifest.xml. Si lo hace la programación en Android, los problemas con el primero y el último no debe ser. Pero classes.dex – el código de bytes programa que se compila específicamente para la máquina virtual. Extraer de su código fuente de Java disponible en Internet no reciben los fondos. Sin embargo, es posible la obtención de códigos de operación Dalvik – un conjunto especial de comandos que se utilizan para la máquina virtual. Por analogía, podemos decir que esta asamblea de inundación local. Classes.dex también se puede convertir en un archivo con el frasco. Incluso en tal caso, se puede obtener un código de Java después de descompilación, que será más o menos legible. Ese es el camino que vamos.

descompilación

Este proceso se llevará a cabo mediante el programa de Apk Manager. Antes de empezar, asegúrese de que no es el controlador correcto para devaysa y funcionando modo USB-depuración. Inicialmente, tendremos que mover el archivo que se analiza en un apk_manager Directiva lugar-apk-aquí-para-modding. Después de eso se debe ejecutar Script.bat. Si no hay ningún problema, a continuación, iniciar la consola, que será letras verdes. Seleccione el número de punto de nueve – "Descompilar". Una vez iniciado el proceso, es necesario no cerrar la consola. Entonces, el interés abierto apk-archivo con el archivador y el extracto de ella classes.dex, para ser procesado dex2jar programa. Para nosotros el resultado requerido, es necesario mover un objeto con el bat extensión. Verá el archivo, que finalizará en .jar. Hasta el momento, la ventana no se cierra.

analizamos los datos

Para obtener información acerca de la aplicación, debe abrirlo manifiesto. De acuerdo con ello, determinamos que actúa como la actividad principal. Fue ella la que ahora presenta la mayor importancia para nosotros. También es deseable que mirar en la parte inferior del programa. Si el fondo es la información sobre el administrador de licencias, es significativamente más difícil de llevar a cabo la ingeniería inversa. Si cambia a JD-GUI y expanda el árbol, podemos ver varios espacios de nombres. Supongamos que los tres de ellos. En la primera se encuentran los archivos asociados con la publicidad. La segunda será las clases del administrador de licencias. En la tercera, somos los datos necesarios. Es cuando vamos. Habrá que encontrar y retirar la llave, y luego el resto de las líneas que comprueban si versión con licencia de trabajo. Todos estos necesitan ser limpiados. Luego, en nuestra Apk Gerente buscando un lugar en el que el lugar de código de bytes especificado. Ahora vamos a hacer una pequeña digresión y comente el equipo, lo que potencialmente puede causar problemas. Después de eso, sólo tenemos que compilar el programa.

construir aplicaciones

Esto nos ayudará a todos la misma Apk Manager. En la consola, que no hemos bloqueado, seleccione el elemento №14. Siguiente truco. Si la aplicación es bastante complicada, cuando se inicia, puede perder parcial o totalmente su eficacia. No se preocupe, esto significa que sólo estamos a mitad de camino y en otro lugar a donde ir. Continuamos para llevar a cabo aplicaciones de Android Todos ingeniería inversa. Decir, qué hacer en un caso particular, en términos generales, por desgracia, es imposible. Por lo tanto, buscar áreas problemáticas tendrán su propio. Por ejemplo, si una ventana de aplicación se bloquea la ventana emergente, debería ver el código y eliminar la parte que se encarga de este diálogo. Para ayudar con esto puede JD-GUI. Como se puede ver, la ingeniería inversa no es un negocio fácil, y requiere de una tienda considerable de conocimientos. Incluso si todo se ejecuta sin problemas, será necesario para probar el rendimiento de las aplicaciones. Es decir, la ingeniería inversa es más actividad que consume tiempo. Seguimos trabajando hasta que se identifiquen todos los problemas.

seguridad

¿Qué pasa si necesitamos protección Todas las apps aplicación de la ingeniería inversa? En este caso, hay dos opciones: el uso de programas específicos o la creación de una estructura de código que interfiera para hacer análisis sintáctico escrito. La última opción es adecuado sólo los profesionales experimentados, por lo que vamos a considerar solamente el primer método de protección. Como el uso de software especializado ProGuard. Esta aplicación, que se utiliza para reducir, ofuscación y optimización de código. Si el programa de "persecución" a través de ella, se obtiene un archivo con la extensión * .apk más pequeño que él. En tal caso, sería mucho más difícil de desmontar. Y la ventaja de este programa es que incluso se ha introducido en la construcción de aplicaciones de Android con actualizaciones R9. Por lo tanto, tomar ventaja de ello es que cualquier desarrollador que tiene las herramientas estándar de creación y desarrollo.

conclusión

No podemos decir que la ingeniería inversa se puede representar como algo uniformemente bueno o malo. Por supuesto, desde el punto de vista de los desarrolladores, que han creado una aplicación, no es un acontecimiento feliz. Pero, por otro lado, en muchos casos experimentados programadores escriben los archivos necesarios puede ser un momento menos costoso que el uso de tales herramientas. Aunque para los desarrolladores novatos ingeniería inversa puede prestar un buen servicio si no hay una idea de cómo poner en práctica algo, aunque ejemplar, y no está muy claro esquema puede ayudar en la consecución de este objetivo.