Definición

La ingeniería inversa, también conocida como retroingeniería, es la práctica de examinar a fondo un objeto, herramienta, dispositivo o sistema para entender su funcionamiento interno y su lógica de diseño. Este proceso implica analizar su estructura, función y operación mediante el razonamiento abductivo, es decir, formulando hipótesis sobre cómo funciona y luego verificándolas. El objetivo final es crear un dispositivo que realice la misma tarea o una similar, sin copiar los detalles del original.

Objetivo

El objetivo de la ingeniería inversa es obtener la mayor cantidad de información técnica posible sobre un producto, del que no se tiene ningún conocimiento previo de su diseño, construcción y funcionamiento. Para lograr esto, se debe examinar cuidadosamente cada parte del sistema y tomar notas detalladas. La retroingeniería se utiliza a menudo cuando no se dispone del diseño original o cuando se quiere mejorar un producto existente.

Antecedentes

La ingeniería inversa es una rama relativamente reciente de la ingeniería, cuyos orígenes se remontan a la Segunda Guerra Mundial. Durante este conflicto, los aliados y las potencias del Eje capturaban regularmente maquinaria y equipos del bando contrario. Una vez en su poder, los ingenieros analizaban el equipo en detalle para comprender la tecnología del enemigo y encontrar fallas o puntos débiles que pudieran explotar.

¿Para qué se utiliza la ingeniería inversa?

Usos

La ingeniería inversa tiene muchas aplicaciones en el mundo actual y es utilizada por todo tipo de empresas en diversos campos tecnológicos. Algunos de sus usos más comunes incluyen:

  • Investigar, analizar y comprender la tecnología utilizada por otras naciones o por otras empresas.
  • Analizar los productos de la competencia para analizar sin infringen alguna patente de otra empresa.
  • Desarrollar productos que sean compatibles con otros productos, sin tener acceso a los detalles técnicos de estos últimos.
  • Comprobar la seguridad de un producto, en informática por ejemplo, para conocer las brechas de seguridad que puede tener un programa.

División

Actualmente, la ingeniería inversa se divide en dos grandes categorías: ingeniería inversa de productos y de software. La ingeniería inversa de productos se ocupa de todos los productos físicos, como máquinas, componentes electrónicos, dispositivos y sistemas mecánicos. Por otro lado, la ingeniería inversa de software se encarga de protocolos, códigos de programación, aplicaciones digitales y sistemas informáticos.

¿Ingeniería inversa?

Las tareas habituales de la ingeniería implican seguir la dirección de lo específico a lo general, pero la ingeniería inversa indica que las labores deben realizarse siguiendo la dirección opuesta, de lo general a lo específico, algo poco común para los ingenieros, que implica invertir el modo de pensamiento y que sin duda es un gran ejercicio de pensamiento además que es una habilidad de mucha importancia hoy en día.

Ingeniería inversa ¿solución o aprendizaje?

¿Método de aprendizaje?

La ingeniería inversa no es un método de solución, sino más bien un método de aprendizaje. Implica analizar un objeto hasta el punto de comprender cada uno de sus componentes y sus funciones. Si bien la cantidad de conocimientos que se pueden obtener es grande, solo se ha logrado un aprendizaje teórico. Para solucionar un problema, se debe aplicar lo aprendido y empezar de cero.

¿Problemas legales?

Si se sigue un proceso de ingeniería inversa bien establecido, no debería haber ningún problema legal. El objetivo de la ingeniería inversa es obtener un producto que realice la misma tarea o una similar, pero que no aplique los mismos principios de funcionamiento del producto analizado. En otras palabras, la ingeniería inversa debe utilizarse únicamente para conocer un producto, con el fin de crear uno que haga lo mismo pero de manera diferente.

Vía: Wikipedia en Inglés, Wikipedia en Español, DSP.