首页
社区
课程
招聘
[注意]《加密与解密(第4版)》勘误收集
发表于: 2018-10-23 10:34 28038

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

2018-10-23 10:34
28038
收藏
免费 0
支持
分享
最新回复 (87)
雪    币: 854
活跃值: (69)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
26
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编辑 ,原因:
2018-11-10 21:02
0
雪    币: 854
活跃值: (69)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
27
achillis P221 L-4 D1 原文:if GetLastErrorERROR_ALREADY_EXISTS 更正: if GetLastError() != ERROR_ALREADY_EXIS ...
if (GetLastError() != ERROR_ALREADY_EXIST)这样才对吧
2018-11-14 11:26
0
雪    币: 8895
活跃值: (5116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs
28
P408 L-3 D1
原文:ASCII码字符是“PE00”,
更正:ASCII码字符是“PE\0\0”,
最后于 2018-11-17 18:38 被jgs编辑 ,原因:
2018-11-17 18:36
0
雪    币: 8895
活跃值: (5116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs
29
P808 L23 D1
原文:UnHookAPI();
更正:删除这一行代码
最后于 2018-11-17 19:27 被jgs编辑 ,原因:
2018-11-17 18:42
0
雪    币: 854
活跃值: (69)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
30
P322 L-17 D1
原文:ExceptionRecord=esp+8
更正 ExceptionRecord=[esp]
2018-11-23 12:37
0
雪    币: 47147
活跃值: (20425)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
31
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基址



2018-11-23 16:36
0
雪    币: 592
活跃值: (187)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
1111
2018-11-23 17:06
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
33
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编辑 ,原因:
2018-11-23 19:50
0
雪    币: 854
活跃值: (69)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
34
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编辑 ,原因:
2018-11-25 17:19
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
35
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编辑 ,原因:
2018-11-25 20:57
0
雪    币: 14492
活跃值: (17493)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
36
请问书中给出的src为什么放到自己的电脑上就不能编译了(我用的VS2017,经常更新的),虽然随书文件已经给出的编译好的版本,但是我还是手贱想自己做一遍^_^
2018-11-30 16:05
0
雪    币: 1212
活跃值: (214)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37

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

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

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


最后于 2018-12-14 08:29 被pentagram编辑 ,原因:
2018-12-11 09:51
0
雪    币: 3
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
 P214   L-19  D1
原文: 写一个本地服务端模来拟服务器。
更正: 写一个本地服务端来模拟服务器。
2018-12-18 16:22
0
雪    币: 240
活跃值: (78)
能力值: ( LV3,RANK:22 )
在线值:
发帖
回帖
粉丝
47
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编辑 ,原因:
2018-12-18 21:02
0
雪    币: 999
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
P501 L15 D1
原文:PrintfChar(&ch2);
更正:PrintfChar(pChar);
最后于 2019-10-26 12:06 被kanxue编辑 ,原因:
2018-12-20 21:28
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
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),示例如下。
2019-1-13 20:28
0
雪    币: 1228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
50
P200 C语言代码描述 L9
原文:kl += ( ch > 'Z' ) ? ( ch - 32 ) : ch;
更正:kl += ( ch >= 'Z' ) ? ( ch - 32 ) : ch;
2019-2-27 12:00
0
游客
登录 | 注册 方可回帖
返回
//