Algunos términos se explican por sí mismos. Tal es el caso de la ingeniería inversa, que literalmente es desarmar algo y volver a armarlo. Esto se puede hacer física o virtualmente, y la intención es averiguar cómo funciona algo para crear algo similar.
La ingeniería inversa se ha realizado durante muchos siglos, casi desde que la gente ha creado cosas. A veces, la ingeniería inversa se realiza con el propósito de mejorar una creación existente, mientras que otras instancias de ingeniería inversa implican el robo de tecnología. Este último ha sido especialmente el caso de las armas a lo largo de la historia de la guerra.
No son solo las armas, las que son objeto de ingeniería inversa. Cosas cotidianas como vehículos, DVD y electrodomésticos son objeto de un intenso escrutinio en lugares de todo el mundo. Algunas empresas tienen el hábito de importar productos de otros países, desarmarlos pieza por pieza y luego usar ingeniería inversa para fabricar los suyos propios.
La ingeniería inversa también se realiza en el mundo virtual. Los artistas informáticos y los científicos practican la ingeniería inversa creando modelos 3D de dispositivos del mundo real y luego deconstruyéndolos virtualmente para ver cómo funcionan. A veces los vuelven a unir, ya sea exactamente o de una manera ligeramente diferente. La llegada de los servidores y las suites de gráficos de alta resistencia ha hecho que esto sea posible y deseable.
Las computadoras también practican la ingeniería inversa en un nivel más fundamental. Una forma de este tipo de ingeniería inversa es la descompilación. La descompilación es un proceso durante el cual una computadora convierte la información de un formato de bajo nivel (código de computadora) a un formato de alto nivel (texto ASCII y números), para permitir que las personas lean cosas como instrucciones y artículos web. Los casos comunes de descompilación implican la transferencia de archivos de un usuario a otro, como un intercambio de datos o imágenes en un correo electrónico, o para la reconstrucción de la codificación que se ha dañado o nunca se completó. La descompilación también puede presentarse en forma de brechas de seguridad, en las que un pirata informático utilizará ingeniería inversa para reconstruir los datos que alguien más quería ocultar tan desesperadamente a través del cifrado.
Otro uso dual de la ingeniería inversa es la creación y prevención de virus informáticos. Los creadores de virus se adentran en las entrañas del código informático para encontrar lugares donde enterrar sus creaciones. Al reconstruir el código de la máquina como código fuente, el creador del virus puede encontrar lo que está buscando. En el otro lado de esas acciones están las personas que buscan prevenir o destruir los virus informáticos. Ellos también utilizan la ingeniería inversa para deconstruir el virus en sí y destruir o anticipar los ejecutables dañinos.