Polymorphing Software by Randomizing Data Structure Layout
In this paper the authors introduce a new software polymorphism technique that randomizes program data structure layout. This technique will generate different data structure layouts for a program and thus diversify the binary code compiled from the same program source code. This technique can mitigate attacks (e.g., kernel rootkit attacks) that require knowledge about data structure definitions. It is also able to disrupt the generation of data structure-based program signatures. They have implemented their data structure layout randomization technique in the open source compiler collection gcc-4.2.4 and applied it to a number of programs.