So why are there so many computer viruses and worms? I think it’s largely because all the binary versions of each program are the same. That, at the very least, helps a whole lot. So what if computer software manufacturers recompiled their software for every CD? Then, if they varied the memory placement of functions and arrays, it would be very very difficult to write a program that could smash all of their stacks. Any worm that wanted to break their stuff would have to either being hellaciously complicated and adaptive, or would have to break in at a different, and presumably higher, level.
Of course, recompilation of large systems is often a nontrivial process. So for large programs, there’s a balance to be struck. But if you could balance the cost in terms of time and resources of recompilation against the cost of worms, recompilation probably comes out ahead.









