《漏洞战争:软件漏洞分析精要》勘误表
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md

README.md

《漏洞战争:软件漏洞分析精要》勘误表

  1. 前言VIII 第4段落最后一句:“专研” => “钻研”

  2. P7页中多处的 “smail” => “smali”“baksmail” => “baksmali” (感谢 陈良@科恩实验室)

  3. P529页第2段中,“按照图10-12所示的方法重新编译内核源码” => “按照第10.3.7章节的方法重新编译内核源码”(感谢 江小照)

  4. P16页最后一行中“Thread” => “Threat”(感谢“不高兴撒”)

  5. P164页第3段第3行“unsigned int(2字节)” => “unsigned int(4字节)”(感谢“55-AA”)

  6. P355页最后一段中:“我们知道数组的元素大小为1014(0x3F6)长度的Vector.<Object>对象” => “我们知道ov[0]已经被赋值为长度0x3FE的Vector.<uint>对象”“它就相当于ov[1][0x0d]” => “它就相当于ov[1][0x5]” (感谢“Cindy_晨曦-Smr02”)

  7. P276页第一段第5行:“悬念指针” => “悬挂指针” (感谢“逍遥客”)

  8. P228页最后一段,删除“然后按F7键跟进,”(感谢“55-AA”)

  9. P228页图5-3中第5行的栈值“0000007F”=>“000003FF”,因为调试图是对应“char buff[128]”的程序,但后面笔者为方便写漏洞利用改成了“char buff[1024]”,而原有的调试图并未一起修改过来。因此同时,P229页图5-4中的“buff长度值0x7F”应修改为“buff长度值0x3FF”(感谢“55-AA”)

  10. P230页表5-1中“\n”的作用“回车或换行”应改为“换行”(感谢“55-AA”)

  11. P232页第2行令ECX指向“0xCC……”字符串改为令ECX指向"90 90 CC CC ……"字符串,图5-9下一行中ECX指向“CC……”改为ECX指向“90 90 CC……”(感谢“55-AA”)

  12. P246第一段第3行参考第8章=> 参考第7章(感谢“55-AA”)

  13. P30页第2.4.1章节第一段第6行蓝网队 => 篮网队(感谢“55-AA”)

  14. P492页第一段第1行“发现的其智能插座” => “发现的智能插座”(感谢“55-AA”)

  15. P71页第2.7.5章节的上一段中,“基本与CVE-2012-3333类似”=> “基本与CVE-2010-3333类似”(感谢“肯特awp”)

  16. P106页表3-5中第5行0x10=>0x0A,第6行0x12=>0x0C(感谢 hanfengley )

  17. P164页中“正整数最高位为1,负整数最高位为0”=>“正整数的最高位(即符号位)为0,负整数最高位为1”(感谢“期待的远行”)

  18. P91页中“检查长度的高位是否存在数值” => “将长度的高位与低位进行拼接”(感谢 ench4nt3r)

  19. P91页第3行中0:015> dd ebp+0c => 0:015> dd poi(ebp+c)(感谢 ench4nt3r)

  20. P144页第11行中(3) CtableLayout + 0x90 => (3) CtableLayout + 0x9C(感谢 ench4nt3r)

  21. P522页中图10-86上两处R2标注应应改为R0(感谢“杯中取月”)

  22. P54页第一段第2行中栈顶=>栈底(感谢“兴华蔡27136”)

  23. P78页最后一段第2行中“buf2与后面的空闲堆00600bc8进行合并” => “heap与后面的空闲堆00530bb0进行合并”(感谢“兴华蔡27136”)

  24. P350页第5行nofifyGlobalMemoryChanged => notifyGlobalMemoryChanged(感谢 ench4nt3r )

  25. P284页第一段描述第2行中第2个参数值0x0=>第2个参数值0x06457bc0(感谢 ench4nt3r )

  26. P298页中图7-17 CElement::insertBeforeHelper函数=> 图7-17 CElement::insertBefore函数(感谢 ench4nt3r )

  27. P431页第6行freelist_node->next => freelist_node->prev(感谢 ench4nt3r )

  28. P24页第24页第2行heap spary => heap spray (感谢 Murasaki )

  29. P279页倒数第3行xul!nxObjectLoadingContent => xul!nsObjectLoadingContent(感谢“王大状”)

  30. P12页倒数第3行阶值 => 价值

  31. P370页图8-14下一行 重命为 => 重命名为

  32. P15页第2行行尾 命令 => 命名(感谢 rootkiter )

  33. P325页第1段文字“t:ANIMATECOLOR标签值……13个分号的字符串” => “t:ANIMATECOLOR标签值是一个用分号分隔的字符串,t:ANIMATECOLOR 对应的对象大小,是由分号(匹配符)个数+1决定的。计算方法在 mstime!StringToTokens 中实现,通过查询value字符串(unicode)中分号的个数,在查询到value的unicode结束符(00 00)时,会跟分号匹配符的结束符(00 00)匹配上,因此需要加1。因此这里分号个数 = sizeof(CGenericElement Object) -1,而通过前面分析知道CGnericElement的大小为0x38(参考图7-26),所以这里需要包含0x38/4 -1 = 13个分号的字符串”(感谢 wingdbg)

  34. P563页11.2.6节第一行中“CVE-2012-0518” => “CVE-2012-0158”(感谢“rwx”)

  35. P341页多处 "ActiveScript" 改为 "ActionScript"(感谢"willJ")

  36. P430页图9-26标题“PATHRECORD结构体名字段” => “PATHRECORD结构体各字段”

  37. P21页“从TableEntry结构入口偏移0x11C” => “从TTF文件头开始偏移0x11C”(感谢“2017要好好长肉肉”)

  38. P313页“可以知道CELement+0x14保存着”中的"CELement"应改为“CElement”(感谢“坩埚钳Deeom”)

  39. P177页第一行中"将经CacheSize*4+4计算后的值(即edi)与0xFFFFFFFF做了无符号比较,只有当edi小于等于0xFFFFFFFF时才进行堆块分配",在此之前补丁调用ULongLongToULong函数作类型转换,之后以上比较才效,此处漏掉对ULongLongToULong函数的补丁分析。(感谢 "holing")