Cracking the Code on Adversarial Machine Learning