Hacking is usually meant to break a code. There are three sections of hacking ― Web Hacking, Exploit Writing & Reverse Engineering and each of it requires different programming language
1. Web Hacking
One of the easiest and widely used static markup web language present in each and every website you see in your browser. It’s recommended to learn HTML because it helps understanding web actions, response, and logic.
A dynamic server-side language which is responsible for managing web-apps and database. PHP is considered one of the most essential language because it controls everything on site and server, like a captain of a ship. It is advised to learn PHP nicely.
SQL is responsible for storing and managing sensitive and confidential data such as user credentials, bank and personal information about the website visitors. Black hat hackers mostly target SQL database and steal information which is later sold on underground dark web forum. If you want to be good security researcher, you should learn SQL so that you can find flaws in a website and report them.
2. Exploit Writing
After web hacking, another most important feature of hacking is exploits. You can crack a particular software by writing a exploit. But to write a exploit you need to learn either Python or Ruby.
It is said that a security researcher or hacker should know Python because it the core language for creating exploits and tools. Security experts and even pro hackers suggest that master Python is the best way to learn hacking. Python offers wider flexibility and you can create exploits only if you are good in Python.
Ruby is a simple yet complicated object-oriented language. Ruby is very useful when it comes to exploit writing. It is used for meterpreter scripting by hackers. The most famous hacker tool, Metasploit framework is programmed in Ruby. Though Ruby may not be as versatile as Python, knowledge of Ruby is must in understanding exploits.
3. Reverse Engineering
Reverse engineering, the process of taking a software program’s binary code and recreating it so as to trace it back to the original source code. If you know reverse engineering you can find flaws and bugs easily. If you want to learn reverse engineering you need to know C, C++ and Java. The process of converting the code written in high level language into a low level language without changing the original program is known as reverse engineering.