Ingeniería inversa
En el caso concreto del software, se conoce por ingeniería inversa a la actividad que se ocupa de descubrir cómo funciona un programa, función o característica de cuyo código fuente no se dispone, hasta el punto de poder modificar ese código o generar código propio que cumpla las mismas funciones. La gran mayoría del software de pago incluye en su licencia una prohibición expresa de aplicar ingeniería inversa a su código, con el intento de evitar que se pueda modificar su código y que así los usuarios tengan que pagar si quieren usarlo.
Software comercial
Cuando el software se vende solo en forma binaria ("código cerrado") en el mercado, además se logra un control exclusivo sobre los derivados de software y un mayor desarrollo. El proceso de reconstrucción de ingeniería inversa de un software complejo desde su forma binaria a su forma de código fuente, requerido para la adaptación y el desarrollo no autorizados de terceros, es un proceso engorroso ya menudo imposible. Esto crea otra oportunidad de comercialización de software en forma de código fuente por un precio más alto, por ejemplo. otorgando la licencia del código fuente de un motor de juego a otro desarrollador de juegos para un uso y adaptación flexibles.