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.
FOGBANK
La experiencia de ingeniería inversa del FOGBANK produjo algunas mejoras en el conocimiento científico del proceso. Los nuevos científicos de producción se percataron de la existencia de ciertos problemas de producción que se asemejaban a aquellos observados por el equipo original. Estos problemas se referían a una impureza particular en el producto final requerido a cumplir los estándares de calidad. Una investigación de la causa principal mostró que los materiales de entrada estuvieron sujetos a procesos de limpieza que no existían en la ejecución de la producción original. Esta limpieza eliminó una sustancia que generaba la impureza requerida. Una vez entendida la función implícita de esta sustancia, los científicos de producción pudieron controlar calidad de salida del producto mejor que durante la ejecución original.