Programming Languages For Hacking: Every hacking beginner can have plenty of doubts like: “Which programming language should I learn for Hacking ?”, “How to become A professional Pentester / Hacker ?” etc.
When we talk about COMPUTERS then everything related to them depends on programming because, without SOFTWARE, any piece of HARDWARE is nothing but a collection of scrap. But with a beautiful stream of 1’s and 0’s which is also known as BINARY, it can almost literally be pumped full of life. Whatever we see and do on our mobiles and computers and every new gadget as well as applications these days were created by someone, somewhere who night after night tirelessly written the code to create something wonderful for the world.
The users often don’t fully comprehend exactly what goes on behind the scenes of any decent piece of software. For this reason, here’s a little reality check before we get to the main topic. A line of code (LoC) is a single average line in a program and usually contains around 40-50 characters.
- The Unix 1.0 OS (1970) contained about 10,000 lines of code.
- An average iOS or android app has approximately 50,000. That is 50,000 lines typed word by word by some coder, and we’re just getting started.
- Photoshop CS6 clocks in at a freaky 5 million LoC.
- Firefox browser is of around 10 million.
- We’ve got Windows 7 at 40 million and guess what? Microsoft office is actually bigger than the parent OS itself (about 45 million LoC).
What’s The Point Of Notifying All This ??
Programming is not actually as we pictured above. we know it takes effort but not that much. The truth is, Lines of Code is a poor way to measure the difficulty of coding. It’s like measuring a person’s success by counting the number of words they’ve spoken, ridiculous and not really related.
The point to state all of the above is to prove wrong all of them who overstate and exaggerate the difficulty of learning how to program. It’s almost always pictured as something unbelievably boring, dry, dull and geeky. As we see in movies, we pictured a programmer as a nerdy guy with huge spectacles sitting in front of the computer tirelessly typing away while all that s/he accomplishes is something wonderful. Undoubtedly, the programming can only be done by someone who thoroughly enjoys it. It’s different for everyone which is why you should actually find out if the programming is for you or not, you need to try it out for yourself.
How Exactly The Programming & Hacker Is Related ??
Programming teaches you the logics and the way to think. It develops the problem-solving capability and most importantly, it is what differentiates you from the SCRIPT KIDDIES. If the hacks are carried out through the tools developed by others, then that person has no rights to be known as a “Hacker”. If you ever tried googling about hacking and gave up soon without finding an answer, you’re not alone. The main reason most hackers are not big on helping others is because they start getting bombarded by noobs asking them to hack FB/Whatsapp/Twitter accounts and explain something so basic and silly that they just give up and start ignoring them. Programming helps you understand how everything in your smarter idiot box comes together. It gives you better knowledge about how to identify and solve any problems by yourself. By knowing programming, you get a better understanding of how vulnerabilities and exploits work.
Most importantly a hacker can code their own tools, scripts, exploits, shell codes, entire applications and modify existing ones according to their own needs. In programming, Hackers can be expected to identify the problems and find the way through them with logical thinking.
Why Programming ??
The first question, many people will ask, is why should I learn any programming language when there are so many tools and Frameworks such as MSF (Metasploit framework) to do my job. All I need to know is how the tool works and what is the purpose of it. The Answer to the question is both yes and no. You can become a Pentester/Hacker without knowing any programming, however, you are not going to become a GOOD pentester/Hacker.
So Knowing Programming Will:
- Differentiate you from Script Kiddies and Tool Lovers.
- Help You in Understanding About Vulnerabilities.
- Help You in writing Your own tools, scripts.
- Help You in writing exploits, Shell codes etc.
- Help You modifying Existing scripts, tools according to your needs.
Where To Start ??
All you have to do is to pick a Programming Language and dive in but the question is still there “Which one ?”. There’s simply no right or wrong answer to this question. But the truth is, you have to learn quite a few languages for hacking, preferably as many as possible. Even if you will not need to code in every language, but you should understand how to read it at least. No language is perfect as each one has its pros and cons. You can do the same thing in a million different ways with a dozen programming languages. The time spent analyzing these useless facts could better be spent actually learning something. There is nothing to gain from comparing languages. Actually, the difference between languages is almost like the difference between “Hello”, “Hi” and “Hey”. Although languages like HTML, SQL, Java are used for different things, it really doesn’t matter where you start since you should learn as many languages as you can.
So now that you have understood the importance of knowing programming, the next question in your mind is which programming language should I learn – the answer to this question depends on your interests and goals.
Programming Languages For Hacking:
1# For Web App / Pentesting / Hacking:
HTML: Hypertext Markup Language (HTML) is the basics for creating web pages and other information that can be displayed in a web browser. So if you don’t know HTML you should first learn it.
PHP / SQL: The majority of web applications are written using PHP and MySQL. So it is a must to learn PHP.
2# For Writing/Understanding Exploits, Shell Codes, Rootkits etc:
C & C++: More than 60 % of the exploits you will find on the web are written in C & C ++. Learning C & C++ will help you to understand about Buffer overflows, Stack overflow etc – so learning C and C ++ is a must for every Hacker/Pentester.
Assembly: Learning assembly will help you in Writing/understanding Shell codes, it will also help you in Reverse Engineering applications and software’s.
3# For Building Tools And Scripts:
Python: Python is a very powerful high-level language, it’s easy to learn and code, most of the tools and scripts for automation are written in Python. Knowing Python socket programming will help you a lot in Exploit writing.
Ruby: Ruby is an another language which is used to write scripts, tools. Metasploit Framework is written in Ruby. Learning ruby will help you understand the in and outs of MSF.
Bash: Learning Bash is very useful in writing small scripts for automation.
So, we hope that we provided some useful knowledge about Programming Languages used for Hacking so that readers can begin their Hacking career with an ease. And if you like this article then don’t forget to share it with your friends and always feel free to drop a comment below if you have any query or feedback.