首页
论坛
课程
招聘
[注意]《加密与解密(第4版)》勘误收集
2018-10-23 10:34 13684

[注意]《加密与解密(第4版)》勘误收集

2018-10-23 10:34
13684
收藏
点赞0
打赏
分享
最新回复 (81)
雪    币: 852
活跃值: 活跃值 (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wx_clay 活跃值 1 2018-11-10 21:02
26
0
P187 L 12 D1
是把this mov到rax寄存器不是rcx
原文:mov rax,[rsp+40h] ;rcx=this
更正:mov rax,[rsp+40h] ;rax=this
最后于 2018-11-13 13:53 被wx_clay编辑 ,原因:
雪    币: 852
活跃值: 活跃值 (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wx_clay 活跃值 1 2018-11-14 11:26
27
0
achillis P221 L-4 D1 原文:if GetLastErrorERROR_ALREADY_EXISTS 更正: if GetLastError() != ERROR_ALREADY_EXIS ...
if (GetLastError() != ERROR_ALREADY_EXIST)这样才对吧
雪    币: 5268
活跃值: 活跃值 (616)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs 活跃值 2018-11-17 18:36
28
0
P408 L-3 D1
原文:ASCII码字符是“PE00”,
更正:ASCII码字符是“PE\0\0”,
最后于 2018-11-17 18:38 被jgs编辑 ,原因:
雪    币: 5268
活跃值: 活跃值 (616)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs 活跃值 2018-11-17 18:42
29
0
P808 L23 D1
原文:UnHookAPI();
更正:删除这一行代码
最后于 2018-11-17 19:27 被jgs编辑 ,原因:
雪    币: 852
活跃值: 活跃值 (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wx_clay 活跃值 1 2018-11-23 12:37
30
0
P322 L-17 D1
原文:ExceptionRecord=esp+8
更正 ExceptionRecord=[esp]
雪    币: 1818
活跃值: 活跃值 (5172)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 活跃值 8 2018-11-23 16:36
31
0
sojrs p557 L-8 d1原文: mov esi ,dword ptr [es ...
代码没错的:

mov  esi, dword ptr [ebx+3Ch]        // e_lfanew,获得的esi值为相对偏移

mov  esi ,dword ptr [esi+ebx+78h]  //EATAddr,此处ebx为DLL基址



雪    币: 599
活跃值: 活跃值 (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aabiaobiao 活跃值 2018-11-23 17:06
32
0
1111
雪    币: 7503
活跃值: 活跃值 (160)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
achillis 活跃值 15 2018-11-23 19:50
33
0
wx_clay P322 L-17 D1 原文:ExceptionRecord=esp+8 更正 ExceptionRecord=[esp]
我是作者,这一处并没有错误,原文的意思说的很明确,_EXCEPTION_POINTERS后面跟EXCEPTION_RECORD结构,所以EXCEPTION_RECORD的位置是esp+sizeof(_EXCEPTION_POINTERS),也就是esp+8。你结合后面看一下就知道了
最后于 2018-11-23 19:51 被achillis编辑 ,原因:
雪    币: 852
活跃值: 活跃值 (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wx_clay 活跃值 1 2018-11-25 17:19
34
0
achillis wx_clay P322 L-17 D1 原文:ExceptionRecord=esp+8 更正 ExceptionRecord=[esp] 我是作 ...
_EXCEPTION_POINTERS包含EXCEPTION_RECORD结构和ContextRecord结构。并不是之后,所以不需要+8
最后于 2018-11-25 17:19 被wx_clay编辑 ,原因:
雪    币: 7503
活跃值: 活跃值 (160)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
achillis 活跃值 15 2018-11-25 20:57
35
0
EXCEPTION_POINTERS Structure

typedef struct _EXCEPTION_POINTERS { 
 PEXCEPTION_RECORD ExceptionRecord;
 PCONTEXT ContextRecord;
 } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; 

注意看上面的定义, _EXCEPTION_POINTERS结构包含的是两个结构体指针,而不是两个结构体
此时,从栈顶往下依次是 _EXCEPTION_POINTERS结构体、EXCEPTION_RECORD结构体、CONTEXT结构体
在本例中, esp = 12fcc8 , _EXCEPTION_POINTERS结构体的起始地址是esp, EXCEPTION_RECORD结构体的起始地址是esp+sizeof( _EXCEPTION_POINTERS ),也就是12fcc8 + 8 = 12fcd0,这与栈顶的 _EXCEPTION_POINTERS结构体的第一个成员是对应的,此时满足 esp +8 = [esp] ,所以原文没有写错。

我本来要表达的意思是这几个结构在内存布局位置上的相互关系,所以使用的是esp+8,而不是[esp],虽然它们确实是相等的。
最后于 2018-11-25 20:58 被achillis编辑 ,原因:
雪    币: 7030
活跃值: 活跃值 (5720)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
pureGavin 活跃值 2 2018-11-30 16:05
36
0
请问书中给出的src为什么放到自己的电脑上就不能编译了(我用的VS2017,经常更新的),虽然随书文件已经给出的编译好的版本,但是我还是手贱想自己做一遍^_^
雪    币: 1222
活跃值: 活跃值 (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
找到组织了 活跃值 2018-12-1 12:17
37
0

最后于 2018-12-1 16:23 被找到组织了编辑 ,原因:
雪    币: 1818
活跃值: 活跃值 (5172)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 活跃值 8 2018-12-1 21:25
38
0
pureGavin 请问书中给出的src为什么放到自己的电脑上就不能编译了(我用的VS2017,经常更新的),虽然随书文件已经给出的编译好的版本,但是我还是手贱想自己做一遍^_^
复制出来到硬盘里,并去除只读属性,不要ISO文件里操作
雪    币: 34
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
无聊分子 活跃值 2018-12-2 00:02
39
0
eaglezy P51 L-6 D1原文:pa $ra更正:pa @$raP104 表4.1原文:stdcall允许使用VARARG更正:不允许
这个他的注释写了,可以用或是不用
雪    币: 34
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
无聊分子 活跃值 2018-12-2 00:08
40
0
P314 L14 在64位模式下则为16字节
最后于 2018-12-2 00:08 被无聊分子编辑 ,原因:
雪    币: 7030
活跃值: 活跃值 (5720)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
pureGavin 活跃值 2 2018-12-3 16:16
41
0
kanxue 复制出来到硬盘里,并去除只读属性,不要ISO文件里操作
不是这种错误,这里要吐槽VS2017一下,如果VS2017没有装在C盘的话,所有的引用目录全都是乱的,都要自己配置(不知道装在C盘会不会乱,要不是我SSD太小。。。o(╥﹏╥)o),不过为什么书中的大部分的代码都是用VC6.0编译的??不是有更新的环境么??
雪    币: 5234
活跃值: 活跃值 (185)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
那里有阳光 活跃值 2018-12-4 15:33
42
0
P367   
原文:线程异常回调函数的调用约定是_cdecel
更正: 线程异常回调函数的调用约定是 _cdecl
最后于 2019-5-5 18:48 被那里有阳光编辑 ,原因:
雪    币: 1222
活跃值: 活跃值 (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
找到组织了 活跃值 2018-12-9 16:15
43
0
P201 L5 D1 //文字的行数,不算上代码
原文:因此,可以将F2函数的功能看成将输入的十进制数转换成十六进制数。
更正:因此,可以将F2函数的功能看成将输入的十进制数与0x1234异或得到的数。
结合该段上面的F2代码,F2函数功能应该是将传入的十进制字符串转换为整型并与0x1234异或。
雪    币: 4
活跃值: 活跃值 (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pentagram 活跃值 2018-12-10 10:14
44
0
P125   L6  D1
原文: 这个跳转是由低地址向高地址区域走的
更正: 这个跳转是由高地址向低地址区域走的
雪    币: 4
活跃值: 活跃值 (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pentagram 活跃值 2018-12-11 09:51
45
0
P150   L-14  D1

原文: 从cast表中获取case语句块的代码偏移

更正: 从case表中获取case语句块的代码偏移


最后于 2018-12-14 08:29 被pentagram编辑 ,原因:
雪    币: 4
活跃值: 活跃值 (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pentagram 活跃值 2018-12-18 16:22
46
0
 P214   L-19  D1
原文: 写一个本地服务端模来拟服务器。
更正: 写一个本地服务端来模拟服务器。
雪    币: 239
活跃值: 活跃值 (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
管她那么多 活跃值 2018-12-18 21:02
47
0
P301  L-5 D1
原文:FuncAddr = ([KeServiceDescriptortable+index*4]>>4 + KeServiceDesciptortable)
更正:FuncAddr = ([KeServiceDescriptortable+index*4]<<4 + KeServiceDesciptortable)


答复:书中没错,因为存取的时候将偏移左移了4位,所以读取的时候需要右移4位恢复其真实的偏移值。  by kanxue


最后于 2019-10-26 21:19 被kanxue编辑 ,原因:
雪    币: 999
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_我有酒 活跃值 2018-12-20 21:28
48
0
P501 L15 D1
原文:PrintfChar(&ch2);
更正:PrintfChar(pChar);
最后于 2019-10-26 12:06 被kanxue编辑 ,原因:
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
geine 活跃值 2019-1-13 20:28
49
0
P167  L13 D1
原文:优化公式2:如果x≥0,则x%2ⁿ = x&(2ⁿ - 1);如果x<0,则x%2ⁿ = (x + (2ⁿ - 1)&(2ⁿ - 1)) - (2ⁿ -1),示例如下。
更正:优化公式2:如果x≥0,则x%2ⁿ = x&(2ⁿ - 1);如果x<0,则x%2ⁿ = ((x + (2ⁿ - 1)) & (2ⁿ - 1)) - (2ⁿ -1),示例如下。
雪    币: 1228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
_ 嘲 活跃值 2019-2-27 12:00
50
0
P200 C语言代码描述 L9
原文:kl += ( ch > 'Z' ) ? ( ch - 32 ) : ch;
更正:kl += ( ch >= 'Z' ) ? ( ch - 32 ) : ch;
游客
登录 | 注册 方可回帖
返回