  Malware classification is an important and challenging problem in information
security. Modern malware classification techniques rely on machine learning
models that can be trained on features such as opcode sequences, API calls, and
byte $n$-grams, among many others. In this research, we consider opcode
features. We implement hybrid machine learning techniques, where we engineer
feature vectors by training hidden Markov models -- a technique that we refer
to as HMM2Vec -- and Word2Vec embeddings on these opcode sequences. The
resulting HMM2Vec and Word2Vec embedding vectors are then used as features for
classification algorithms. Specifically, we consider support vector machine
(SVM), $k$-nearest neighbor ($k$-NN), random forest (RF), and convolutional
neural network (CNN) classifiers. We conduct substantial experiments over a
variety of malware families. Our experiments extend well beyond any previous
work in this field.
