We propose to detect memory corruption by identifying misuses of input data. We propose a binary level approach for memory corruption detection and diagnosis. Our approach is generic to typical memory corruption attacks. Our approach is effective in localizing the root causes of vulnerabilities. Our approach is explainable to identify key attack steps for exploit diagnosis.