"Reverse Engineering for Beginners" free book
Topics discussed: x86/x64, ARM/ARM64, MIPS, Java/JVM.
Topics touched: Oracle RDBMS, Itanium, copy-protection dongles, LD_PRELOAD, stack overflow, ELF, win32 PE file format, x86-64, critical sections, syscalls, TLS, position-independent code (PIC), profile-guided optimization, C++ STL, OpenMP, win32 SEH.
Compiled versions are found here:
There is also a lite (introductory) version. It is approximately 6 times shorter than the full version (~150 pages) and intended for those who want a very quick introduction to the basics of reverse engineering. It does not however, cover the topics of: MIPS, ARM, OllyDBG, GCC, GDB and IDA. There are also no exercises, examples, etc.
See also the ChangeLog for the latest changes.
Want to contribute in some way? Read here. Do not worry to bother me while writing me about any petty mistakes you found, even if you are not very confident. I'm writing for beginners, after all, so beginners' opinions and comments are crucial for my job.
Want to translate this book into some other language? Read here.
It's also possible to build your own version of book, see the HACKING.md file.