The term hacker has come to mean several different things in the security community.
It’s original meaning was one that tinkers with projects.
The newer meaning that has been adopted by the mainstream media is basically a computer criminal.
In this article I will be talking about both.
Anyone, be they criminal or just your average tinkerer, who likes to see how a program runs is considered a hacker.
Assembly Language Is A Necessity
It is important, that as a person who is interested in the inner workings of a computer, that they at the very least know the Assembly language.
When I use the term hacker in the rest of the article, I am talking about the criminal types, as well as the security researcher.
If you are a hacker that concentrates mainly on network exploits then this does not really concern you.
Even though knowing Assembly will help in that area of expertise as well, it is not as vital as someone who wants to reverse engineer or exploit a system.
A hacker that explores on the network level is usually more concerned with headers, tty, and router configurations.
They are less worried on how the software that runs that stuff is made.
If you want to become a person that is an expert in reverse engineering, it is vital that you learn Assembly language.
You may be able to follow the flow path of the execution of the program but to truly understand what the program is doing you are going to have to be able to read the Assembly output.
There are no shortcuts around this issue, to be able to truly understand the way that a program can exploit a system, you are going to have to understand that system on a lower level.
There is no way that you will be able to understand a buffer overflow if you can not understand how the program talks to hardware of the system.
It can even be argued that you should understand the next level, which is machine code.
That is not exactly necessary but it is helpful.
Teach Yourself Assembly Language
There are several ways that you can teach yourself the Assembly language.
There are free books and videos that are available online.
There are also plenty of web sites and groups that have a focus in teaching people Assembly language.
It is not as popular as the other higher level languages but the community is still vital in being able to understand our computers on the machine level.
Once you get started learning about the language, you will find that it is not very hard, just different than what you are used to.
Hopefully I have adequately described why Assembly language is important for both the hacker and the security researcher.
If you do not know the language then you are only doing half of your job.