I haven’t seen a really great book about reverse engineering for a long time, until I bumped into “Reverse Engineering for Beginners” by Dennis Yurichev.
I think this 700 pages free book covering recent popular technologies like x64 code and ARM CPU, might be a great resource not only for beginners and not only for reverse engineers, but also for advanced developers (PC and embedded) looking to optimize their software and willing to know how decent hackers think.
The book contains:
- Descriptions of how C/C++ code is converted to assembler by different modern compilers
- A lot of useful information about how to find starting points in compiled binaries
- Examples of how to approach modern software and OSes
- A brief review of useful tools