En este nuevo post del blog de nuestra consultora informática queremos ver si la ingeniería inversa es una técnica válida para cualquier tipo de objeto o software. A continuación, vemos su funcionamiento y las aplicaciones de esta ingeniería.
Es un proceso mediante el cual se observa cómo está construido y cómo funciona un objeto, proceso, programa o sistema. La meta es mejorarlo o duplicarlo. Se puede averiguar cuáles son sus componentes, cómo interactúan entre sí o de qué forma se fabricó el producto.
La ingeniería inversa de hardware o de producto
Este tipo de ingeniería inversa se ocupa de objetos físicos como componentes electrónicos, máquinas o dispositivos. A veces este proceso es iterativo y hay que llevar a cabo varias modificaciones del diseño original. Este tipo de ingeniería puede ser una excelente herramienta para averiguar las dimensiones de objetos hechos de forma manual o de forma libre.
Sus aplicaciones son:
- Creación de nuevos modelos a partir de los existentes ya obsoletos.
- Producción en serie de un producto si no hay datos del modelo.
- Reconstrucción y modelado de superficies complejas.
- Modelado CAD en 3D.
- Comparaciones con el mercado (benchmarking).
- Reproducción de dispositivos o herramientas desgastados.
Aplicaciones de la ingeniería inversa
En sus orígenes, durante la Segunda Guerra Mundial, la ingeniería inversa se aplicó en tecnología armamentística para crear máquinas más potentes que el enemigo. Sin embargo, hoy día se utiliza para fines más diversos. Por ejemplo, tanto para la creación de software como de hardware.
También para averiguar si se infringe alguna patente, para desarrollar programas compatibles con otros o para comprobar que un programa informático no tenga brechas de seguridad.
- Optimizar procesos de fabricación en recuperación de superficies.
- Separar los datos obtenidos por escaneado en 3D.
- Modificar diseños existentes y mejorarlos.
- Preparar el modelado 3D para la simulación digital.
- Facilitar la construcción virtual.
- Inspeccionar estructuras y buscar posibles patologías.
- Conocer el comportamiento de los materiales constructivos por el desgaste mecánico, daños localizados, patologías estructurales o las agresiones químicas.
- Modificar detalles geométricos de las estructuras constructivas o llevar a cabo un estudio en 3D.
Como ves, la ingeniería inversa puede tener multitud de usos y aplicaciones de Software Factory. En la actualidad su uso se ha extendido al software y hardware. En inglés hablamos de reverse engineering. Es un proceso que busca descubrir los principios tecnológicos de un objeto, herramienta, dispositivo o sistema valiéndose del razonamiento abductivo sobre su estructura, función y operación.
Se trata de coger, por ejemplo, un dispositivo mecánico o electrónico y analizar su funcionamiento al detalle para crear otro dispositivo que haga las mismas tareas o similares, pero sin copiar los detalles del original.
La ingeniería inversa en el mundo del ‘software’ y ‘hardware’
En Imagar te recordamos que la ingeniería inversa aplicada al software supone la reversión de un programa codificado en lenguaje máquina (lenguaje de bajo nivel) al código fuente de alto nivel en el que fue escrito en un principio.
El objetivo es recuperar el código fuente de un programa que tiene que corregirse o mejorarse. La ingeniería inversa de software que busca duplicar con un propósito comercial puede considerarse una violación a las leyes de copyright. De hecho, en muchos casos el uso de un programa bajo licencia prohíbe esta práctica.
En la ingeniería inversa de hardware, se recurre al desmontaje de un dispositivo para comprobar cómo funciona. También está prohibido hacer esto para fabricar un producto similar.