-
前言VIII 第4段落最后一句:
“专研”
=>“钻研”
-
P7页中多处的
“smail”
=>“smali”
,“baksmail”
=>“baksmali”
(感谢 陈良@科恩实验室) -
P529页第2段中,“按照
图10-12所示
的方法重新编译内核源码” => “按照第10.3.7章节
的方法重新编译内核源码”(感谢 江小照) -
P16页最后一行中
“Thread”
=>“Threat”
(感谢“不高兴撒”) -
P164页第3段第3行
“unsigned int(2字节)”
=>“unsigned int(4字节)”
(感谢“55-AA”) -
P355页最后一段中:
“我们知道数组的元素大小为1014(0x3F6)长度的Vector.<Object>对象”
=>“我们知道ov[0]已经被赋值为长度0x3FE的Vector.<uint>对象”
,“它就相当于ov[1][0x0d]”
=>“它就相当于ov[1][0x5]”
(感谢“Cindy_晨曦-Smr02”) -
P276页第一段第5行:
“悬念指针”
=>“悬挂指针”
(感谢“逍遥客”) -
P228页最后一段,删除
“然后按F7键跟进,”
(感谢“55-AA”) -
P228页图5-3中第5行的栈值
“0000007F”
=>“000003FF”
,因为调试图是对应“char buff[128]”
的程序,但后面笔者为方便写漏洞利用改成了“char buff[1024]”
,而原有的调试图并未一起修改过来。因此同时,P229页图5-4中的“buff长度值0x7F”
应修改为“buff长度值0x3FF”
(感谢“55-AA”) -
P230页表5-1中
“\n”
的作用“回车或换行”
应改为“换行”
(感谢“55-AA”) -
P232页第2行
令ECX指向“0xCC……”字符串
改为令ECX指向"90 90 CC CC ……"字符串
,图5-9下一行中ECX指向“CC……”
改为ECX指向“90 90 CC……”
(感谢“55-AA”) -
P246第一段第3行
参考第8章
=>参考第7章
(感谢“55-AA”) -
P30页第2.4.1章节第一段第6行
蓝网队
=>篮网队
(感谢“55-AA”) -
P492页第一段第1行
“发现的其智能插座”
=>“发现的智能插座”
(感谢“55-AA”) -
P71页第2.7.5章节的上一段中,
“基本与CVE-2012-3333类似”
=>“基本与CVE-2010-3333类似”
(感谢“肯特awp”) -
P106页表3-5中第5行
0x10
=>0x0A
,第6行0x12
=>0x0C
(感谢 hanfengley ) -
P164页中
“正整数最高位为1,负整数最高位为0”
=>“正整数的最高位(即符号位)为0,负整数最高位为1”
(感谢“期待的远行”) -
P91页中
“检查长度的高位是否存在数值”
=>“将长度的高位与低位进行拼接”
(感谢 ench4nt3r) -
P91页第3行中
0:015> dd ebp+0c
=>0:015> dd poi(ebp+c)
(感谢 ench4nt3r) -
P144页第11行中
(3) CtableLayout + 0x90
=>(3) CtableLayout + 0x9C
(感谢 ench4nt3r) -
P522页中图10-86上两处
R2
标注应应改为R0
(感谢“杯中取月”) -
P54页第一段第2行中
栈顶
=>栈底
(感谢“兴华蔡27136”) -
P78页最后一段第2行中“
buf2
与后面的空闲堆00600bc8
进行合并” => “heap
与后面的空闲堆00530bb0
进行合并”(感谢“兴华蔡27136”) -
P350页第5行
nofifyGlobalMemoryChanged
=>notifyGlobalMemoryChanged
(感谢 ench4nt3r ) -
P284页第一段描述第2行中
第2个参数值0x0
=>第2个参数值0x06457bc0
(感谢 ench4nt3r ) -
P298页中
图7-17 CElement::insertBeforeHelper函数
=>图7-17 CElement::insertBefore函数
(感谢 ench4nt3r ) -
P431页第6行
freelist_node->next
=>freelist_node->prev
(感谢 ench4nt3r ) -
P24页第24页第2行
heap spary
=>heap spray
(感谢 Murasaki ) -
P279页倒数第3行
xul!nxObjectLoadingContent
=>xul!nsObjectLoadingContent
(感谢“王大状”) -
P12页倒数第3行
阶值
=>价值
-
P370页图8-14下一行
重命为
=>重命名为
-
P15页第2行行尾
命令
=>命名
(感谢 rootkiter ) -
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) -
P563页11.2.6节第一行中
“CVE-2012-0518”
=>“CVE-2012-0158”
(感谢“rwx”) -
P341页多处
"ActiveScript"
改为"ActionScript"
(感谢"willJ") -
P430页图9-26标题
“PATHRECORD结构体名字段”
=>“PATHRECORD结构体各字段”
-
P21页
“从TableEntry结构入口偏移0x11C”
=>“从TTF文件头开始偏移0x11C”
(感谢“2017要好好长肉肉”) -
P313页
“可以知道CELement+0x14保存着”
中的"CELement"
应改为“CElement”
(感谢“坩埚钳Deeom”) -
P177页第一行中
"将经CacheSize*4+4计算后的值(即edi)与0xFFFFFFFF做了无符号比较,只有当edi小于等于0xFFFFFFFF时才进行堆块分配"
,在此之前补丁调用ULongLongToULong函数作类型转换,之后以上比较才效,此处漏掉对ULongLongToULong函数的补丁分析。(感谢 "holing")