C++软件异常分析与排查的学习历程
Posted IT老张
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++软件异常分析与排查的学习历程相关的知识,希望对你有一定的参考价值。
1、汇编与反汇编
(1)汇编
学习普通x86下汇编语言的设计,尤其是用汇编语言编写面向对象的程序,汇编语言编写win32程序,旨在通过编程的思路了解C++的核心原理。书籍推荐罗云彬《windows环境下32位汇编语言程序设计》。
(2)反汇编
因为我们的代码是直接编译成机器语言的,当我们的程序出现了bug,我们调试的时候所看到的汇编码实际上是根据机器语言反汇编的,和汇编有点出入,但是不大,此项学习同上面的汇编相辅相成。书籍推荐看雪论坛出的《c++反汇编与逆向分析技术揭秘》。另外我们还要学习基本的反汇编工具的使用,比如windbg和IDA。
2、工具的使用
(1)windbg
动态调试工具,不用说了,这是主要的调试工具,主要是通过其帮助文档来学习,前期学习其命令,基本的使用等。这个是重点要掌握的东西,难点在于知识零散,而且不系统。
(2)IDA
这个是一款强大的静态反汇编工具,如果我们没有pdb,map,我们只有源程序和二进制文件,那么就只能使用IDA来反汇编了,其工具的使用学习是一项,书籍推荐《IDA pro 权威指南》,当然内功的修炼要通过反汇编的学习,实际上是阅读反汇编程序。
(3)其他辅助性工具
辅助性工具包括SPY++、DependencyWalkers、GDIView、Process Explorer、ProcessHacker、Process Monitor、API Monitor等。
3、提升调试能力的书籍推荐
(1)张银奎《软件调试》,重中之重,这个是仅有的国内的软件调试方面的系统性书籍,比较重视windows调试系统的原理,当发生疑难杂症的时候其很有用,另外也是crashreport项目的开发与维护的指导书籍。
(2)《inside windows debugging》 和《windows高级调试》,这两本可以简略的看看,理论上并没有《软件调试》丰富,比较实践性。
(3)《memory dump analysis anthology》和张银奎《格蠹汇编》从实践的windbg使用来解决实际问题的解决方案集锦。
以上是关于C++软件异常分析与排查的学习历程的主要内容,如果未能解决你的问题,请参考以下文章