I am still in college for a Computer Security degree and took my first assembly language based class last semester. We touched upon the subject of reverse engineering and why it is an important part of fighting malware and ill-wished applications.
During my class we mainly used IDA pro, but also checked out some similar and free browser based applications.
In these applications, we were able to obtain so much information about the instructions and low level code that I was wondering why we even need a human to go over it and recreate the higher level languages (like writing a 'C' version of a piece of malware).
Here my question:
Why can't a program use the information that is present in assembly code and turn it into a simplistic language automatically?
I understand that it wouldn't look the exact same way it would when it was first written, but shouldn't it be possible to re-create it in a way that makes it easier to read and follow?
It's just something that I can't wrap my head around, thanks!