"Reverse Engineering for Beginners" free book

Written by Dennis Yurichev (yurichev.com).

Please donate!

This book is free, freely available, also in source code form (LaTeX), and it will be so forever. So if you want me to continue, you may consider donating. Several ways to are available on this page: donate. Every donor name will be included in the hall of fame!

Praise for the book

Download PDF files

Download English version A4 (for browsing or printing) A5 (for ebook readers)
Скачать русскую (Russian) версию A4 (для просмотра или печати) A5 (для электронных читалок)

Lite (introductory) version

There are also lite (introductory) version. It is approximately 6 times shorter than full version (~150 pages) and intended to those who wants very quick introduction to reverse engineering basics. There are nothing about MIPS, ARM, OllyDBG, GCC, GDB, IDA, there are no exercises, examples, etc.
Download English lite version A4 (for browsing or printing) A5 (for ebook readers)
Скачать русскую (Russian) сокращенную версию A4 (для просмотра или печати) A5 (для электронных читалок)


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.

Please take a short survey!

Feedback is extremely important to the author!


As seen on...

... hacker news: #1, #2, reddit: #1, #2, #3, #4, #5, #6, habrahabr, Russian-speaking RE forum.


Q: I clicked on hyperlink inside of PDF-document, how to get back?
A: (Adobe Acrobat Reader) Alt + LeftArrow

Q: Your book is so huge! Is there anything shorter?
A: There is shortened lite version.

Q: I'm not sure, if I should try to learn reverse engineering or not.
A: I would say, the average time to become familiar with the contents of the shortened LITE-version is 1-2 month(s).

Q: May I print this book? Use it for teaching?
A: Of course, that's why book is licensed under Creative Commons terms. Someone may also want to build their own version of book, read here about it.

Q: I want to translate your book to some other language.
A: Read my note to translators.

Q: I have a question...
A: Write me it by email (dennis(a)yurichev.com) or ask your question at my forum: forum.yurichev.com.

Supplementary materials

Exercises, exercise solutions

Be involved!

Feel free to send me corrections, or, it's even possible to submit patches on book's source code (LaTeX) on GitHub or BitBucket, or SourceForge!

There is also supporting forum! You may ask/answer any questions there!

Any suggestions, what also should be added to my book?

Write me an email: dennis(a)yurichev.com


See ChangeLog

Stay tuned!

My current plans for this book: Objective-C, Visual Basic, anti-debugging tricks, Windows NT kernel debugger, .NET, Oracle RDBMS.

Follow @yurichev Here is also my blog and facebook.

Web 2.0 hater? Subscribe to my mailing list for receiving updates of this book to email.

Enter email for subscription:

About Korean publication

In January 2015, Acorn publishing company (www.acornpub.co.kr) in South Korea did huge amount of work in translating and publishing my book (state which is it in August 2014) in Korean language.

Now it's available at their website.

How it looks like: Side A, Side B.

Translator is Byungho Min (@tais9).

Cover pictures was done by my artist friend Andy Nechaevsky: facebook/andydinka.

They are also the Korean translation copyright holder.

So if you want to have a "real" book on your shelf in Korean language and/or want to support my work, now you may buy it.