There are a few books like
>Secrets of Reverse Engineering
Published by Wiley. It deals with windows binaries because, as they say, linux stuff has the source code for all to see>Practical Malware analysis
Published by No Starch. Looks good>Hacking, the art of exploitation
I suggest this one because it has a lot of relevant information>Reverse Engineering for beginners
Probably the best book out there, free and almost encyclopedic>Practical Packet Analysis
Network-oriented. It's meaningful because of the above post
At the end of the day, the best way to go about it is to>Write something in C>Assemble it/compile it>look at the resulting instructions, try to figure out what parts of your code are being translated to what>change the program a bit
And so on...
You also need to know how the stack AND the heap (as done by malloc()) operate.
Oh and get comfortable with gdb
That's about all I can tell you... Oh yeah:https://microcorruption.com