格蠹汇编

出版社:电子工业出版社
出版日期:2013-3-1
ISBN:9787121196072
作者:张银奎
页数:461页

作者简介

《格蠹汇编——软件调试案例集锦》以案例形式讨论了使用调试技术解决复杂软件问题的工具和方法。全书共36章,分为四篇。前两篇每章讲述一个有代表性的真实案例,包括从堆里抢救丢失的博客,修复因误杀而瘫痪的系统,徒手战木马,拯救“发疯”的windows7,经典阅读器的经典死锁,拯救挂死的powerpoint,转储分析之双误谜团,是谁动了我的句柄,寻找系统中的“耗电大王”,解救即将被断网的系统,转储分析之系统挂在dpc,sdk安装程序卡壳之谜等。所选案例既有深度,又有较大的广度,从平台角度看有windows、linux和android,从编程语言角度看有c/c++、.net和java,从运行模式看既有内核态,也有用户态,从问题的类型来看,有多种原因导致的崩溃和挂死,也有数据混乱,启动、睡眠或者唤醒失败等。第三篇讨论了调试工具和调试系统的设计方法,包括windows 8中的通过以太网络和usb 3.0进行内核调试的方法,android平台上跨机器调试java应用程序的方法,.net调试模型的缺欠以及clr4重构调试模型的方法,通过amli调试器调试acpi脚本的方法,双机调试特殊进程的方法,以及设计调试设施应该注意的海森伯效应等。第四篇收录了使用调试器探索计算机世界的若干学习笔记,包括在调试器中细品cpu,通过调试器观察和解码堆块结构,透视windows 8的新类型应用以及使用调试器监视启动、睡眠和唤醒三大基本过程等。
《格蠹汇编——软件调试案例集锦》是《软件调试》一书的姊妹篇,延续了《软件调试》的深入严谨风格。但与《软件调试》重在系统介绍调试原理不同,本书重在实践,通过一个个有代表性的真实问题“现身说法”,在软件大背景下介绍调试,通过调试技术解剖软件。本书适合广大程序员、软件测试工程师、软件架构师以及相关专业的高年级学生阅读,也可供信息安全领域的工程师或者研究者参考。

书籍目录

《格蠹汇编——软件调试案例集锦》
笃 行 第 一
第1章 从堆里抢救丢失的博客
3
第2章 修复因误杀而瘫痪的系统
11
第3章 徒手战木马
18
第4章 调试笔记之侦查广告插件
23
第5章 拯救“发疯”的windows 7
30
第6章 再解电源服务溢出崩溃
37
第7章 三解电源服务溢出崩溃
44
第8章 拯救挂死的powerpoint
60
第9章 经典阅读器的经典死锁
71
明 辨 第 二
第10章 转储分析之双误谜团
81
第11章 混乱数据何处来——标准文件流有关的陷阱
98
第12章 解救即将被断网的系统——调试补丁安装失败
108
第13章 sdk安装程序卡壳之谜——兼谈函数的异常出口
123
第14章 是谁动了我的句柄
138
第15章 转储分析之系统挂在dpc
148
第16章 转储分析之探寻唤醒失败原因
156
第17章 解救陷入死循环的msn
169
.第18章 寻找系统中的“耗电大王”
184
器 用 第 三
第19章 windows 8的内核调试增强
195
第20章 漫谈android系统的调试模型
203
第21章 趣谈托管程序的辅助调试线程
227
第22章 漫谈sos扩展
234
第23章 趣谈clr4的调试模型重构
246
第24章 如何跟踪acpi代码
253
第25章 如何调试窗口大总管
263
第26章 嵌入式系统调试浅谈
273
第27章 海森伯效应一例
282
致 知 第 四
第28章 使用调试器来认识计算机世界
293
第29章 在调试器中细品cpu
300
第30章 系统启动系列
320
第31章 在调试器中观察计算机的睡眠过程
358
第32章 在调试器中观察计算机的唤醒过程
380
第33章 使用调试器探索托管程序的执行起点
388
第34章 解读编码后的heap_entry结构
397
第35章 在调试器中看win7打电话回家
404
第36章 使用调试器透视windows 8的metro应用
418
附录a 准备试验环境
443
附录b 设置内核调试环境
445
附录c 面向问题的索引
449
附录d 英文术语索引
451
附录e windbg命令索引
453
附录f 常用的汇编指令(x86)
460

编辑推荐

《格蠹汇编:软件调试案例集锦》是《软件调试》一书的姊妹篇,延续了《软件调试》的深入严谨风格。但与《软件调试》重在系统介绍调试原理不同,《格蠹汇编:软件调试案例集锦》重在实践,通过一个个有代表性的真实问题“现身说法”,在软件大背景下介绍调试,通过调试技术解剖软件。《格蠹汇编:软件调试案例集锦》适合广大程序员、软件测试工程师、软件架构师以及相关专业的高年级学生阅读,也可供信息安全领域的工程师或者研究者参考。

章节摘录

版权页:   插图:   是谁杀了关键服务 简单的方法没能奏效后,我开始思考如何对付这个问题。系统重启的直接原因是关键的系统服务意外终止了(serviceterminated unexpectedly)。因为有些系统服务(service)承担着重要的职责,它们的“健康”关系到整个系统是否能正常运行,所以系统会监视这些服务,如果发现它们意外退出(终止)了,那么便像有国家政要被谋杀了一样,进入紧急状态,强制“戒严”——关闭登录会话,退出窗口系统,强制重启系统……因为有很多个重要服务,比如日志服务、PnP服务、电源服务、DCOM等,都居住(host)在SvcHost进程中,在那里办公,所以一旦这个进程意外终止,那么很多个关键服务都会受影响。从上面描述的现象来看,很可能是SvcHost进程意外终止了,导致运行在这个进程中的系统服务全完了,可谓“城门失火,殃及池鱼”。那么是谁杀了这个重要的服务进程呢? 选择方法 接下来应该选用什么方法来调试呢?我开始评估各种方法。 1.很多进程意外终止是因为未处理异常导致进程被强行终止,即通常说的应用程序崩溃(Application Crash)。对付应用程序崩溃的常用方法是JIT调试,也就是当程序在被终止前,自动启动JIT调试器(参见第4章以及《软件调试》12.5节)。但对于本例,出问题的进程运行在不可见的Session 0中,因此,当JIT调试器被启动后,默认是不可见的。我们必须想办法让JIT调试器可见或者想办法与它通信。 2.第二种方法是使用双机内核调试,也就是通过串行口、1394或者USB 2.0电缆来调试出问题的系统。尽管本例中问题发生在用户态,但是仍可以通过内核方式设置断点,或者等待发生未处理异常时中断到内核调试器,然后进行调试。 3.第三种方法是使用转储文件(dump file),也就是在SvcHost进程崩溃时产生转储文件,然后分析这个转储文件。通常系统的WER机制(参见《软件调试》第14章)会自动产生转储文件,因此只需要找到并复制出来。 比较以上三种方法,第三种相对来说简单一些,但是只能看到崩溃时的“瞬间快照”,前两种方法都需要两台机器,相对来说比较麻烦,但是可以进行交互式调试。 不妨先尝试第三种方法,不行再用其他两种方法(见补记部分)。于是面临的问题便是如何找到转储文件并复制出来。眼下系统反复重启,每次只能使用几秒钟,要在那几秒钟时间内找到转储文件,然后复制出来难度太大了。怎么办呢?Win7的一个新功能刚好可以完美地解决这个问题。 WinRE派用场 很多普通用户可能根本不注意,一个典型的Win7系统中,其实有两个Windows,一个是用户通常使用的,另一个是正常系统出故障时用来紧急恢复用的,后者通常被称为WinRE(Windows Recovery Environment)。简单来说,WinRE是个简化了的Windows,它很小,占用大约200MB的磁盘空间。 如何进入WinRE呢?与进入安全模式的方法是类似的,也就是在高级启动菜单中选择Repair Your Computer。 进入WinRE后,启动一个命令行窗口,然后切换到Win7的系统盘。值得注意的是,WinRE映射的盘符与正常系统中看到的盘符很可能是不一样的,C盘一般是所谓的系统保留分区,D盘一般是Win7的系统盘,可以通过文件来确定。在本例中,D盘是Win7的系统盘,于是切换到D盘后,执行dir*.mdmp/s以下命令来寻找WER机制产生的转储文件。


 格蠹汇编下载 精选章节试读



发布书评

 
 


精彩短评 (总计24条)

  •     作者的钻研精神令人敬佩,我遇到书中那些case一般是直接重启进程/系统╮( ̄▽ ̄)╭
  •     比起上一本《软件调试》,这本书中例子生动,也学到很多调试技巧。也激发了想继续看《软件调试》的想法。
  •     内容一如既往的好,和上一部砖头著作比薄了很多。
  •     以故事的方式,介绍了作者的各种用windbg解决各种问题时的 思路与方法。 对于windbg初学者来说真是本不错的命令套路示范。
  •     这个虽然说是软件调试的姐妹篇,但更注重实例分析,也不错
  •     软件调试的case study.
  •     国内计算机好书很少,张银奎的,是个例外。调试牵涉的点实在多:编译器、CPU、操作系统。能同时做到这些,不容易。按Mark的话:我多么希望这本书用英语写就(软件调试)。本来Robinns的调试书也不错,他已经赌气不写了。此前看过熊力的另一本调试案例,感觉过瘾。
  •     张银奎写的书比较有深度(特别是软件调试一书),冲着作者的名字就买了。内容有启发,但要求读者要有广泛的前提知识。
  •     软件安全
  •     书写的真心好,昨晚读了六章,能把技术书籍写到让人读出小说味道来,很是不易。
  •     结合例子来写成的,比软件调试那本要有趣的多
  •     今天拿到书,随手翻了一下,正好翻到作者用WinDbg找博客那页,一下子就被吸引了。记忆中,国内的技术书籍通常要不枯燥呆板,要不东拼西凑,像这样把高深的技术问题,用有趣的方式,娓娓道来的还真不多。
  •     书快看完了,收获不小,好书。作者真正的经验的写作。。。受益匪浅。。。
  •     张先生的文章需要多读几遍会越发感觉好
  •     因为每期程序员必读调试之剑这个栏目,所以这本书算是全读过了。非常棒。
  •     想看<软件调试>。windbg很是强大,需要用心学习。
  •     汇集了多个经典调试案例,并且覆盖了内核调试,托管代码和Android调试,更有趣的是作者还提供了供读者实际操作的dump文件,能感受到作者的用心。适合有志于钻研调试技术和调试爱好者。
  •     书籍质量中上,内容部分是内核爱好者增强调试实例的教材
  •     真是一本让人爱不释手的书,通过调试来学习是很不错的方法,作者的钻研精神让人佩服,可惜内容主要是针对Windows的
  •     是一本开眼界的好书。张老师的调试技能的确高超。不过我没有那么多的机会去实践,只能用来增长知识和开眼界。
  •     翻了翻 感觉一般 没详细看
  •     文笔上佳之作
  •     记得几年前读到张大师的《软件调试》一书,就专门问过他,《软件调试》都是理论,读起来有点太枯燥了,为什么不增加点例子?狡猾的张大师说,以后会专门有本书,都是例子。等了有5年吧,这本书终于出来了。期间在《程序员》杂志“调试之剑》断断续续的读过一些文章,总是觉得不过瘾,这些总算可以过瘾了,更好的是,可以根据书中的例子自己实践。拿到书之后立刻读了起来,第一章就把我吸引住了。这是我读过的有关软件调试最好的书。对我来说,因为有了一些软件调试的基础,这本书比它的姐妹篇(《软件调试》)更加适合我。强烈给每个程序员推荐这本书。
  •     老公要买的书,质量很好
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024