1、汇编与反汇编
(1)汇编
学习普通x86下汇编语言的设计,尤其是用汇编语言编写面向对象的程序,汇编语言编写win32程序,旨在通过编程的思路了解C++的核心原理。书籍推荐罗云彬《windows环境下32位汇编语言程序设计》。
(2)反汇编
因为我们的代码是直接编译成机器语言的,当我们的程序出现了bug,我们调试的时候所看到的汇编码实际上是根据机器语言反汇编的,和汇编有点出入,但是不大,此项学习同上面的汇编相辅相成。书籍推荐看雪论坛出的《c++反汇编与逆向分析技术揭秘》。另外我们还要学习基本的反汇编工具的使用,比如windbg和IDA。
2、工具的使用
(1)windbg
动态调试工具,不用说了,这是主要的调试工具,主要是通过其帮助文档来学习,前期学习其命令,基本的使用等。这个是重点要掌握的东西,难点在于知识零散,而且不系统。
(2)IDA
这个是一款强大的静态反汇编工具,如果我们没有pdb,map,我们只有源程序和二进制文件,那么就只能使用IDA来反汇编了,其工具的使用学习是一项,书籍推荐《IDA pro 权