With Malware/Virus analysis being heavily dependant on one's ability to read the the Assembly Code generated by the Disassembler... being familiar with the Assembly Language is naturally the most important pre-requisite when it comes to this field.

But, aside from Assembly, should I know C or C++ as well?
If so, how important is C or C++ in relations to this field? and for what reason? And which should I tackle first? Which is more important and more directly related to Malware/Virus analysis?

Are most Malware/Viruses these days writtein in ASM? C? C++? or Java?


1 Answer 1


I don't think you should make such a binary distinction between C and C++ as valuable knowledge for a reverse engineer.

First, should you learn C? In my opinion, it's almost mandatory, it's the language the closest to assembly with just higher abstraction to get a better grasp at the big picture. Most of the things you'll reverse are derived from C, and this will be an invaluable help to understand most of the usual construct patterns.

Then, should you learn C++? It's a more nuanced question and really boils down to what you are going to reverse. If most of your targets are C++ based, once again it would be of great help. If you're expecting to reverse none-C++ stuff most of the time, it might be somewhat inefficient.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.