Computer Viruses: From Theory to Applications

The art of teaching is made of humility and not pretentiousness: the goal of any lecture is not to make the teacher more intelligent through a fatuous and uselessly complicated discourse but to enable the students to overcome the slightest difficulties and to become more mature-minded.
Emile Gabauriaud-Pag s The art of teaching to others (1919)
The formalization of viral mechanisms makes heavy use of the concept of Turing machines. This is logical since computer viruses are nothing but computer programs with particular functionalities. Formalization of today computer programs began with Alan Turing's works [1] in 1936 [153].
A Turing machine this definition will be detailed later in this chapter is the abstract representation of what a computer is and of the programs that may be executed with it. The reader who wishes to learn more deeply on exact relationships between real, everyday life computer and their theoretical model will refer to [26, p. 68]. This theoretical model enables one to solve many essential problems and among them:
let a function f be given. Is this function really computable ? In other words, does an algorithm exist which can realize, or equivalently compute, the function f ?
As far as computer viruses are concerned, the function f is the self-reproduction function itself. Can a program reproduce? Works of Alan Turing and that of his exegetes did not consider the problem of program self-reproduction.
Only a few years later, the...