Malware Forensics Explained: Understanding Malicious Code Analysis