Assuring integrity of software is a very challenging issue. Different manifestations of tampering exist such as intentional attack with the aim of harming the user (through some kind of a malware; Baker, 1995) or the user himself tampers with the software to gain features he is not authorized with (Baxter, Yahin, Moura, Sant’Anna, & Bier, 1998). In this chapter, the authors make a survey of various strategies used to assure the integrity of software such as trusted computing platform, software attestation, software similarity, software watermark, software birthmark etc. Subsequently, the authors present a novel method for malware detection from a semantic approach that can be adapted for checking the integrity of software. They shall discuss some of the initial experimental results in this direction.