El software se ha desarrollado paralelamente al avance de los ordenadores,
adquiriendo caractersticas especiales. Se divide en tres generaciones: primera generacin: los programas se escriben en lenguaje mquina. segunda generacin: se crearon los sistemas operativos. tercera generacin: surgen los microprocesadores. El software nace de una necesidad de automatizar un proceso, se construye se instala, se administra y se retira. Una fecha histrica relacionada al software fue del 7 al 11 de octubre de 1968 donde diversos cientficos participaron en el comit de ciencias de la Organizacin del Tratado del Atlntico Norte (OTAN). En dicha conferencia se acuaron importantes trminos como ingeniera de software tratando de convertir en ciencia esta disciplina arquitectura de software refirindose a la estructura misma de las aplicaciones muchos otros conceptos. En los ltimos aos, ante el incremento de la piratera de software, ha surgido una gran variedad en cuanto a los mtodos que tratan de reducir al mnimo este problema. Dicha variedad va desde la combinacin de mtodos existentes hasta la creacin de nuevas e interesantes soluciones, todas con el objetivo de buscar una solucin que sea lo menos vulnerable posible. Adems existe otro denominador comn entre los mtodos, y es que se ha logrado identificar que la solucin deseada est en el campo de las protecciones basadas en hardware. Esto se debe a que sus predecesores y no olvidados mtodos basados en software, son vulnerables a los ataques debidos, en gran medida, al hecho de que son ejecutados en ambientes inseguros (arquitecturas actuales de las computadoras personales). Se dice que estas arquitecturas son inseguras porque un atacante potencial, utilizando herramientas de depuracin, puede llevar a cabo un anlisis de las instrucciones que ejecuta el microprocesador, as como de los datos escritos y ledos desde y hacia la memoria; y de esta manera determinar cmo est protegida la aplicacin. Dando como resultado la violacin de las protecciones. Por lo que con las nuevas soluciones se trata de buscar un entorno seguro, donde sean ejecutadas las aplicaciones, porque no, con algn mtodo basado en software. Entorno seguro que se caracteriza principalmente por no estar incluido dentro de la arquitectura original de la computadora y por permitir, en ocasiones, la ejecucin de cdigo sin tener la preocupacin que pueda ser analizando utilizando alguna herramienta de depuracin