Anti-Malware: Theory You Need to Know