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:
English: A4 (for browsing/printing); A5 (for e-book readers)
Russian: A4 (for browsing/printing); A5 (for e-book readers)
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.
English lite: A4 (for browsing/printing); A5 (for e-book readers)
Russian lite: A4 (for browsing/printing); A5 (for e-book readers)
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.