This document discusses dynamic malware analysis and the challenges posed by self-modifying code. It examines existing general purpose dynamic binary instrumentation frameworks like Pin and DynamoRIO, finding that while they handle self-modifying code, they are not designed with a "malware mindset" and have exploitable gaps. The document demonstrates these gaps through examples, showing how transitions in virtual memory protections and program counter virtualization can be exploited. It concludes that a framework with a "malware mindset" is needed to properly handle malware analysis at scale.