在逆向工程领域中,“语言”就是体系结构和汇编语言,“单词”则是一条条汇编指令,“段落”即是汇编指令序列,一本“书”就是一个程序。要完全理解一本书,读者不仅仅要掌握单词和语法,还应了解叙事风格和结构,以及不成文的写作惯例等因素。同样,理解计算机程序需要掌握的概念也不仅仅是汇编指令。
某种程度上说,开始从一本书去学习一个全新的技术主题有点让人望而却步。但如果我们因此声称逆向工程的学习过程很简单,可以通过阅读本书完全掌握,则是在误导读者。实际上这个学习过程是非常复杂的,因为这项技术涉及几个分散的知识领域。比如,一个高效的逆向工程师需要对计算机体系结构、系统编程、操作系统、编译器等技术都有所了解;对于某些领域来说,还需要具备较强的数学背景。那么如何确定从哪里开始学起呢?这取决于各人的经验和技能。而我们无法适应每个人的背景条件,因此在这个简介中为那些没有任何编程背景的读者列出了学习和阅读的方法。读者应该可以从中找到自己的位置,并从那里开始学习。