domingo, 30 de octubre de 2016

Ingeniería inversa "regresando de los binarios al código fuente".


La ingeniería inversa, es la forma de investigar o de obtener información de como esta hecho un producto para determinar como se hace o como fue fabricado, aplicándolo al mundo de la informática, en el caso de un software la única forma que generalmente tenemos a la mano para observar es la aplicación ya compilada la cual podemos observar como funciona pero, ¿Cómo fue programada?, pues es sencillo si existió una forma de compilarla hay una forma de des-compilarla, de esta manera obtenemos los códigos fuentes de la aplicación y allí observamos de forma detallada como fue programada.

¿Quien usa la ingeniería a la inversa?.

Pues aunque no lo creas las grandes empresas como apple o samsung la usan, de seguro pensaste, en los hackers y crackers que las usan para desbloquear aplicaciones y usarlas sin pagar la licencia si es cierto pero en la actualidad, las empresas las usan para poder saber que uso el competidor en el desarrollo de una aplicación y si este copió el código de la empresa o esta usando librerías que son pagas, entre otros.

Ventajas de la misma (Fuente Wikipedia)

La aplicación de ingeniería inversa nunca cambia la funcionalidad del producto objeto de la aplicación sino que permite obtener productos que indican cómo se ha construido el mismo. Su realización permite obtener los siguientes beneficios:

  • Reducir la complejidad del sistema: al intentar comprender el software se facilita su mantenimiento y la complejidad existente disminuye.
  • Generar diferentes alternativas: del punto de partida del proceso, principalmente código fuente, se generan representaciones gráficas lo que facilita su comprensión.
  • Recuperar y/o actualizar la información perdida (cambios que no se documentaron en su momento): en la evolución del sistema se realizan cambios que no se suele actualizar en las representaciones de nivel de abstracción más alto, para lo cual se utiliza la recuperación de diseño.
  • Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que surjan efectos no deseados, esta serie de anomalías puede ser detectados por la ingeniería inversa.
  • Facilitar la reutilización: por medio de la ingeniería inversa se pueden detectar componentes de posible reutilización de sistemas existentes, pudiendo aumentar la productividad, reducir los costes y los riesgos de mantenimiento.

Si te gusto esta información no dudes en realizar un donativo.


No hay comentarios:

Publicar un comentario