Definición - ¿Qué significa ingeniería inversa?
La ingeniería inversa, en programación de computadoras, es una técnica que se utiliza para analizar el software con el fin de identificar y comprender las partes que lo componen. Las razones habituales para aplicar ingeniería inversa a una pieza de software son recrear el programa, construir algo similar a él, explotar sus debilidades o fortalecer sus defensas.
Techinfo explica la ingeniería inversa
Debido a que el software cerrado y propietario nunca viene con documentación que revele el código fuente utilizado para crearlo, las personas utilizan la ingeniería inversa siempre que quieren comprender el funcionamiento interno del software.
Algunos piratas informáticos utilizan la ingeniería inversa para encontrar puntos débiles de programas que pueden explotar.
Otros piratas informáticos utilizan la ingeniería inversa para localizar puntos débiles con la intención de fortalecer las defensas allí.
Las empresas de software con productos de la competencia realizan ingeniería inversa de los programas de sus competidores para averiguar dónde y cómo se pueden realizar mejoras en sus propios productos. Algunas empresas utilizan la ingeniería inversa cuando todavía no tienen productos similares para crear sus propios productos.
Aquellos que pretenden construir su propio producto basándose en uno existente a menudo prefieren la ingeniería inversa a la creación desde cero porque una vez que se identifican las partes y las dependencias, el proceso de reconstrucción tiende a ser mucho más fácil.
En los EE. UU., La ingeniería inversa del software está protegida por la excepción de uso justo en la ley de derechos de autor.