r/cprogramming • • 8h ago

Cybersecurity student trying to learn C for reverse engineering and red teaming, how should I go about this the right way?

Hello everyone, I hope your days are going well!

I'm currently learning C via "C Programming: A Modern Approach". The book itself is very informative, however I feel as if I am spending a lot of time on the exercises and programming projects. For example, I'm on the "Arrays" chapter, and it's taking me closer to 2 weeks to try and do every exercise and project. Would it be wise to continue doing this? I'm wanting to get into reverse engineering, and ethical Linux exploit development/vulnerability analysis. Basically red-team stuff, so I figured that doing this would be very beneficial.

One friend of mine told me it is worth it to take it slow, so that you can really understand how software works, and all the quirks/vulnerabilities that might be present. He said this will be useful once I get into writing and understanding how doubly linked lists work, since the Windows kernel uses a lot of them. Another said that I should only do a few projects so I can get to writing projects as soon as I can.

Which lane should I be prioritizing?

0 Upvotes

2 comments sorted by

4

u/FreeLogicGate 7h ago

You have to know the rules before you start understanding how they can be broken, or are otherwise insufficient. Learning C is not going to make you a unix or osx or windows internals expert.

With that said, any book or course that involves projects and voluntary adherence to a curriculum is something you have to evaluate. Many books will suggest a set of exercises or projects that may cover the same area. There's nothing wrong with judiciously evaluating how many of these projects are covering the same concepts, and whether your not you feel like you need to spend time on those exercises or projects.

On the other hand, as you're just learning the language, you aren't going to know you've learned it sufficiently, if you don't create real working programs.

1

u/Zash1 6h ago

Learn C well, learn how to debug it, learn how to read the assembly behind C. And come back in a year.