Self-hashing has been proposed as a technique for verifying software integrity. Appealing aspects of this approach to software tamper resistance include the promise of being able to verify the integrity of software independent of the external support environment, as well as the ability to integrate code protection mechanisms automatically. In this paper, we show that the rich functionality of most modern general-purpose processors (including UltraSparc, x86, PowerPC, AMD64, Alpha, and ARM) facilitate an automated, generic attack which defeats such self-hashing. We present a general description of the attack strategy and multiple attack implementations that exploit different processor features. Each of these implementations is generic in that it can defeat self-hashing employed by any user-space program on a single platform. Together, these implementations defeat self-hashing on most modern general-purpose processors. The generality and efficiency of our attack suggests that self-hashing is not a viable strategy for high-security tamper resistance on modern computer systems.

Additional Metadata
Keywords Application security, Checksumming, Operating system kernels, Processor design, Self-hashing, Software protection, Tamper resistance
Persistent URL dx.doi.org/10.1109/TDSC.2005.24
Journal IEEE Transactions on Dependable and Secure Computing
Citation
Van Oorschot, P, Somayaji, A, & Wurster, G. (Glenn). (2005). Hardware-assisted circumvention of self-hashing software tamper resistance. In IEEE Transactions on Dependable and Secure Computing (Vol. 2, pp. 82–92). doi:10.1109/TDSC.2005.24