栈上风云何处起
写《软件调试》时就打算在《软件调试》之后写一个“调试战役系列”,以案例的形式介绍具体的调试方法和技巧,因为《软件调试》侧重的是调试原理和普遍适用的调试基础知识,来不及详细写某一方面的问题。
岁月不等人,转眼《软件调试》出版2年多了,实战系列还没有出来一本,真是惭愧。要给自己点压力,2011年的目标是完成一本,书名暂定为《栈上风云》。
顾名思义,这本书将讨论栈有关的调试问题,初步的想法是每一章讲述一个案例,以问题开始,然后是问题解析,然后讲解有关的原理和背景,最后总结用到的技巧和调试命令。
目前想到的主题有以下一些:
- 栈的切换
- TSS
- 内核态栈溢出(32位);
- 内核态栈溢出(64位);
- 栈上的缓冲区溢出(32位)
- 栈上的缓冲区溢出(64位)
- 栈上的缓冲区溢出(WOW64位)
- 缓冲区溢出攻击
- 基于栈帧的异常处理
- 局部变量
特别要指出的是,为了让读者对栈问题有更全面的认识,这本书中会特别介绍一些Linux系统上的案例,比较与Windows上的异同。
对于每个主题,会选择一两个有代表性的真实案例,并附带可以模拟这个案例的程序,让大家可以动手做实验,自己来小试牛刀。
这本书不打算太厚,预计300页左右,每章甚至每个小节都可以单独阅读,适合在车上,甚至马桶上翻看()。目前已经搜集了一部分案例,大家如果有这方面的精彩案例(或者“棘手问题”),欢迎分享。