1、汇编与反汇编
(1)汇编
学习x86下汇编语言的设计,尤其是用汇编语言编写面向对象的程序,汇编语言编写Win32程序,旨在通过编程的思路了解C++的核心原理。书籍推荐罗云彬《windows环境下32位汇编语言程序设计》。
(2)反汇编
因为我们的代码是直接编译成机器语言的,当我们的程序出现了bug,我们调试的时候所看到的汇编码实际上是根据机器语言反汇编来的,和汇编有点出入,但是差别不大,此项学习同上面的汇编相辅相成。书籍推荐看雪论坛出的《c++反汇编与逆向分析技术揭秘》。另外我们还要学习基本的反汇编工具的使用,比如调试器Windbg和静态反汇编工具IDA。
学习汇编有很多好处,不仅可以理解很多高级语言无法理解的代码执行细节,也可以辅助排查各种软件异常问题,相关内容可以查看我之前写的文章: