Category Archives: Reversing

Reversing: Secrets of Reverse Engineering

Reverse engineering is a skill, a craft, a creative process that cannot be learned from just reading a book.  With that said, Reversing: Secrets of Reverse Engineering offers great guidance into the process, and unlike other self proclaimed “hacker essentials,” this book delivers what it promises and then some. This book starts the reader off from the basics of compiled languages, explaining the intricacies of compiler optimized assembly output.  And proceeds to show various reversing sessions of native Windows API implementations.  Guiding the reader step by step in the process of turning the assembly code into higher level code.

The later chapters deal with inspecting malaware, with the author analysing a popular backdoor program, and tracing its functionality in order to discover the server it connects to, its password, and its command list.  The book also extensively covers anti-reversing, and anti-debugging techniques, dedicating a full chapter to these.

In its final chapters, the book introduces techniques for reversing vm-based implementations like Java and the .Net platform.  With the increasing popularity of this type of implementations, this is surely a skill that will become more useful as time goes by.  The appendix in this book is incredibly useful.  Appendix A is a quick reference guide for translating common high level constructs into assembly language.  Appendix B is a quick reference to common arithmetic as optimized by the compiler.  Appendix C gives an in-depth analysis of how data is laid out in the system, and how the many standard calling conventions are represented.

Overall Reversing: Secrets of Reverse Engineering is one of the most well-written, detailed, and useful books on the subject and it deserves a 9/10.  If you are looking for a fantastic book on the subject, look no further.