Ingeniería inversa :: ¿Qué sacar de esto?

Llevo unos días profundizando sobre este tema, hasta ahora solo había realizado pequeñas investigaciones sobre esto, pero creo que es algo que puede ayudar mucho tanto para nuevos como para veteranos.

La ingeniería inversa (en inglés, reverse engineering) es el proceso de descubrir los principios tecnológicos de un objeto, herramienta, dispositivo o sistema, mediante el razonamiento abductivo (haciendo conjeturas) de su estructura, función y operación. Dicho de otra manera, se trata de tomar algo, por ejemplo un dispositivo mecánico o electrónico, para analizar su funcionamiento en detalle, con el objetivo de crear un dispositivo que haga la misma tarea o una similar sin copiar los detalles del original.

Objetivo

La ingeniería inversa persigue el objetivo de obtener la mayor cantidad de información técnica de un producto, del cual no se tiene la más mínima información técnica de su diseño, construcción y funcionamiento, de modo que se debe partir de un todo para comprender cada pieza del sistema, para lo cual se deben tomar notas muy detalladas.

La ingeniería inversa es una rama de la ingeniería relativamente reciente, cuyos orígenes se remontan a la Segunda Guerra Mundial, cuando alguno de los dos bandos (Aliados y Potencias del Eje) capturaba maquinaria o equipo del otro bando, entonces se disponían a conocer hasta el más mínimo detalle de la tecnología del enemigo con el objetivo de encontrar fallas o puntos débiles que les brindarán cierta ventaja.

Usos

La ingeniería inversa tiene muchas aplicaciones en el mundo actual y es aplicada por todo tipo de empresas, de todos los ámbitos tecnológicos. Algunos de los usos principales son:

  • Investigar, analizar y comprender la tecnología utilizada por otras naciones o por otras empresas.
  • Analizar los productos de la competencia para analizar si 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.

Actualmente la ingeniería inversa se divide en dos grandes vertientes: ingeniería inversa de producto e ingeniería inversa de software; en la primera entran todos aquellos productos físicos tales como máquinas, componentes electrónicos, dispositivos, etc., y en la segunda protocolos, códigos de programación, aplicaciones digitales, etc. No es una definición completamente establecida pero es la más aceptada actualmente.

¿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.

¿Método de aprendizaje?

La ingeniería inversa no es un método de solución sino más bien de aprendizaje, como implica analizar un objeto hasta el punto de comprender cada uno de sus componentes y sus funciones entonces la cantidad de conocimientos obtenida será bastante, pero solo hemos aprendido, para solucionar el problema deberemos aplicar lo aprendido y comenzar de cero nuevamente.

Ética

Si se sigue un proceso de ingeniería inversa bien establecido no tiene porque haber ningún problema legal; esto implica cumplir al pie de la letra el objetivo de la ingeniería inversa: obtener un producto que haga lo mismo pero que sea nuevo, que no aplique los mismos principios de funcionamiento del producto analizado; es decir, la ingeniería inversa se debe utilizar solamente para conocer un producto, con el fin de hacer uno que haga lo mismo pero de otro modo.


/img/ref.png
.