3 ms·
If your goal in learning C is to write largish systems in it, then yes, "Learning C The Hard Way" is a good option. But the poster has said that s/he wants to
by antimagic 12y ago
If your goal in learning C is to write largish systems in it, then yes, "Learning C The Hard Way" is a good option. But the poster has said that s/he wants to learn for the purpose of reverse engineering. From this point of view, the main interest of C is just learning enough syntax to be able create functions and structs, and then compile them with gcc -S, so that you can see the assembly language that is generated by the compiler.
Personally I feel that pretty much any of the typically-cited C books are too heavy for this purpose. What you really want is a Learn C in 21 Days type of book, that will walk you through the build system as well as the basic of the C language. Even that may be too heavy - a well-written online tutorial would probably be a superior solution. Sadly, I haven't needed to look at "Intro to C" material for a very long time, so I can't really comment on what might be appropriate resources available these days.
- SCHiM 12y agoWell if you want to start reverse engineering, I'd think you'd need a very deep understanding of C. When reversing it doesn't help you if you know what a single instruction is doing. You need to be able to recompile the program in your head, and translate it back to high-level logic. You need far more knowledge of C than just the 'learn C in 21 days' stuff if you really want to start reverse engineering.