Is it important for an ethical hacker to know the C language in-depth nowadays?

Of course, you don't necessarily have to know C, or the given platform's Assembly (read: instruction set), but knowing them is a great help in figuring out many possible low-level vulnerabilities.

It is not the C language itself that matters, but rather the fact that in order to know C, one must first understand many fundamental computer principles, which is what allows you to then (ab)use them in any other language. You could learn about all of them in theory, but without ever practically experiencing them (which is what you achieve by programming in C), you may not be able to use them very efficiently or even realize where they're best applicable.

Similarly, you don't have to know the exact packet structure of networking protocols. However, if you do, you may suddenly be able to figure out ways to break something, which wouldn't ever occur to those who make, often incorrect, assumptions about how these protocols function solely based on their high-level experience.


It depends what you want to do.

If you want to build tools that can be used to automate tasks that are often performed for ethical hacking (such as penetration testing, port scanning, SSL/TLS testing etc.), then Python can be used for this.

If you want to analyze code to look for bugs in packages that are widely deployed such as the Linux kernel, openssl, apache, etc. - many of these packages are written in C, so a solid understanding of C would be helpful for this.


In ethical hacking (and hacking in general), the more you know about software and hardware in general, the better off you are - keep in mind there's a lot of different solutions written in lots of different languages, running on lots of different hardware.

As most operating systems are written in C, it can definitiely be advantageous to at least be able to understand C code. Most OS modules are written in C and/or Assembly. From this, you can gather valuable intel on any bugs or exploits that may be present in the target OS's various modules.

Regardless of whether you hunt bugs or try to penetrate a system, at least some understanding of C can help you a lot.

In the same vein, knowing at least the more popular languages (Python, Java, C#) can be of immense help as well - lots of systems (including corporate solutions) are written in those languages.

Python does have its own advantages in the hacker toolbox - it gives you the ability to write exploits and programs rather quickly, and has a lot of libraries that can be used to roll your own EH/pentester toolset.

Tags:

Python

C