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.
Cheat Engine
Es usado en la mayoría de los casos, para obtener ventajas en videojuegos, es ilegal su uso en la mayoría de los juegos en línea y aunque tiene la posibilidad de acceder (o no) al código interno de cualquier programa en ejecución, las licencias de muchos programas privativos impiden este tipo de actividades, como su desensamblado e ingeniería inversa, por lo que su uso en el ámbito legal debe limitarse a propósitos que no estén en contra de cualquier cláusula expresada en la licencia del programa objetivo.