Malware and Formal Methods: Rigorous approaches for detecting malicious behaviour