首页
社区
课程
招聘
[注意]《加密与解密(第三版)》勘误(2009.9.9更新)
2008-6-7 22:44 214943

[注意]《加密与解密(第三版)》勘误(2009.9.9更新)

2008-6-7 22:44
214943
收藏
点赞0
打赏
分享
最新回复 (122)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ddfgfgfg 2010-9-23 22:42
101
0
精益求精 支持
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ucantseeme 2010-11-14 13:16
102
0
P156  L8 D2
反馈者: ucantseeme
原文:    {53} ⊕ {83} = {d4}
更正:    {57} ⊕ {83} = {d4}

P157  L7 D2
反馈者: ucantseeme
原文:    则当Nk=4时,Nr=10;Nk=6时,Nr=12;Nk=10时,Nr=14
更正:    则当Nk=4时,Nr=10;Nk=6时,Nr=12;Nk=8时,Nr=14

P157 L-4 D2
反馈者: ucantseeme
原文:    取出S盒中的行标为C列标为4的元素
更正:    取出S盒中的行标为C列标为5的元素

P159  L5 D2
反馈者: ucantseeme
原文:    S`_2,c = ({03}●S_0,c) ⨂ S_1,c ⨂ S_2,c ⨂ ({02}●S_3,c)
更正:    S`_3,c = ({03}●S_0,c) ⨂ S_1,c ⨂ S_2,c ⨂ ({02}●S_3,c)

P174 L13 D2
反馈者: ucantseeme
原文:    //result1=ya mod p
更正:    //result1=y^a mod p

P174 L14 D2
反馈者: ucantseeme
原文:    //result2=ab mod p
更正:    //result2=a^b mod p

P186  L-15 D2
反馈者: ucantseeme
原文:    divide(big_v,big_n,big_v);    //模n得到v
更正:    divide(big_v,big_n,big_n);    //模n得到v

P186  L-14 D2
反馈者: ucantseeme
原文:    if (compare(big_v,big_r)==FALSE)   //若v=r,则签名有效,否则签名无效
更正:    if (compare(big_v,big_r)!=FALSE)   //若v=r,则签名有效,否则签名无效

------------------------------------------------------------------------------------------------------------------------------

P446 L-6 D2
反馈者: ucantseeme
原文:    pFirstThun = (PIMAGE_THUNK_DATA32)RVAToPtr (pDescriptor->OriginalFirstThunk);
更正:    pFirstThunk = (PIMAGE_THUNK_DATA32)RVAToPtr (pDescriptor->OriginalFirstThunk);

P451 L1 D2
反馈者: ucantseeme
原文:    压缩前调用函数m_nSpaceSize估算出需要的内存空间大小
更正:    压缩前调用函数aP_workmem_size估算出需要的内存空间大小

P451 L-22 D2
反馈者: ucantseeme
原文:    memcpy((PCHAR)(&pShell0Data[2]),pTlsDirectory,sizeof IMAGE_TLS_DIRECTORY));
更正:    memcpy((PCHAR)(&pShell0Data[2]),pTlsDirectory,sizeof(IMAGE_TLS_DIRECTORY));

P456 L-16 D2
反馈者: ucantseeme
原文:    WriteFile(hPackFile,(PCHAR)pResourcePtr,nResourceDirSize,&nbWritten,0;
更正:    WriteFile(hPackFile,(PCHAR)pResourcePtr,nResourceDirSize,&nbWritten,0);

P457 L-9 D2
反馈者: ucantseeme
原文:    m_pntHeaders->FileHeader.NumberOfSections = nSectionNum - nIndex + 1;
注,书中无误,以书为准,光盘中错误
光盘:    m_pntHeaders->FileHeader.NumberOfSections = nSectionNum + nIndex - 1;       //光盘中是错的

------------------------------------------------------------------------------------------------------------------------------

P477 L-12 D2
反馈者: ucantseeme
原文:    vPushImm32 -1      ;scale
         vPushImm32 -1      ;reg_index
         vPushImm32 -1      ;reg2_index
更正:    vPushImm32 1       ;scale
         vPushImm32 -1      ;reg2_index
         vPushImm32 -1      ;reg_index

P479 L-11 D2
反馈者: ucantseeme
原文:    mov    ecx,[edi+0x0c]
更正:    mov    ecx,[edi+8]

------------------------------------------------------------------------------------------------------------------------------

P370 L-15 D2
反馈者: ucantseeme
原文:   
l_FetchOpcode:
     lodsb
     add       al, bl
     sub       al, 7
     xor       al, 82h
     add       bl, al
     movzx     eax, al
     jmp       dword ptr [edi+eax*4]
更正:   
l_FetchOpcode:
     lodsb
     sub       al, 67
     add       al, bl
     sub       al, F4
     add       al, 67
     add       al, F4

     sub       al, 7
     xor       al, 82
     add       bl, al
     movzx     eax, al
     jmp       dword ptr [edi+eax*4]

------------------------------------------------------------------------------------------------------------------------------

P405 L5 D2
反馈者: ucantseeme
原文:    漏了一行
更正:    PPEB PebBase;

P405 L7 D2
反馈者: ucantseeme
原文:    PROCESS_BASIC_INFORMATION pbi = {0}
更正:    PROCESS_BASIC_INFORMATION pbi = {0};

P437 L-17 D2
反馈者: ucantseeme
原文:    EnableWindow(GetForegroudWindow(),FALSE);
更正:    EnableWindow(GetForegroundWindow(),FALSE);

P517 L-17 D2
反馈者: ucantseeme
原文:    6049 0000
更正:    5C49 0000

P517 L-9 D2
反馈者: ucantseeme
原文:    00004970 00 4D 65 6E 75 53 61 76  65 00 43 6F 75 6E 74 65 .MenuSave.Counte
更正:    00004970 00 4D 65 6E 75 53 61 76  65 00 43 6F 75 6E 74 65 .MenuSave.Zounte  //注,光盘中也要改

P524 L4 D4
反馈者: ucantseeme
原文:   
004012BD mov [esi+0C], 00402D00
004012C4 mov dword ptr [esi+1C], edi
004012C7 mov [esi+20], 00000200
004012CE mov [esi+34], 00001000
更正:   
004012BD mov dword ptr [esi+0C], 00402D00
004012C4 mov dword ptr [esi+1C], edi
004012C7 mov dword ptr [esi+20], 00000200
004012CE mov dword ptr [esi+34], 00001000

P527 L17 D2
反馈者: ucantseeme
原文:    用LordPE在peplug.dll输入表里增加MyWndProc的调用
更正:    用LordPE在pediy,.exe输入表里增加MyWndProc的调用

P527 L-3 D2
反馈者: ucantseeme
原文:    00401254 jmp 00401134
更正:    00401254 jmp 0040112E
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小全 2010-12-3 14:26
103
0
P273 L5

原文:这是一个8位的ASCII码名
更正:这是一个8字节的UTF-8编码的字符串

pecoff_v8中对Name域的描述是“An 8-byte, null-padded UTF-8 encoded string.”
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
龙心 2011-1-31 12:09
104
0
收到。辛苦了。
雪    币: 288
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
giftedboy 2011-3-24 12:21
105
0
P525 L-18  D3

原文:stdacll方式
更正:stdcall方式
雪    币: 72
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gaojunww 2011-4-16 16:17
106
0
4.6 循环语句 p93

             
            xor ecx,ecx  ;ecx清零
lable:      inc ecx         ;计数

              cmp ecx,5    ;循环[B][COLOR="Red"]4[/COLOR][/B]次,此处错误,应为6
            jbe lable      ;重复


经调试后 循环执行6

代码如下
main()
{
         char *a="book\n";
	_asm
	{
		xor ecx,ecx
          lable:	inc ecx
		push ecx	  ;printf中用到ecx,保护ecx
		push a		
		call printf
		add esp,4  ;平衡堆栈
		pop ecx
		cmp ecx,5
		jbe lable


	}
}
雪    币: 959
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybhdgggset 2011-10-16 12:18
107
0
P223       (2011年2月第7次印刷的那本)

表9-2 MetaData Root 结构与说明 中偏移为12处的名称iVersionString应改为iVersionLength

P512      
添加了一个块头后,就要修正PE头6Ch偏移处NumberOfSections的值 中的6Ch应改为C6h
雪    币: 27
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhiyajun 2012-4-8 17:12
108
0
P346
第二块代码中第三个注视“dll文件退出时将走这条路线”位置错了,应该注视到“00E2D0DA”这一行后面。
雪    币: 30
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cnliuqh 2012-7-9 20:22
109
0
P26  倒数第二行
原文: 在eax寄存器单击右键,执行菜单“Follow in Dump"命令
更正: 在”信息面板“单击右键,执行菜单”Follow value in Dump"命令
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rootboy 2012-9-6 03:13
110
0
P79    L-9  D6(2010年3月第6次印刷)

原文:    mov esp,ebp          ;恢复现场
         add esp,4               ; 平衡堆栈
         ret                         ;返回

这里代码有问题,这里应该是PASCAL的调用约定,堆栈在MyAdd里面平衡,最后没有平衡,kanxue可以看下,改为ret 8才平衡,而且add esp,4解释为 : 释放局部变量占用的堆栈更好点,这里好像有点逻辑错误

新手刚接触解密,kanxue手下留情
雪    币: 465
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dosvip 2013-1-21 00:02
111
0
感谢更正感谢更正
雪    币: 21
活跃值: (216)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
epluguo 1 2013-11-19 15:48
112
0
这多久没人反馈了....
我来贡献一个吧,刚好发现的..

加密与解密 第三版
2011年7月第8次印刷

P93

代码:



int main(void)
{
int i,sum=0;

for(i=0;i<=100;i++)
sum =sum +i;
return 0;
}



应改为:


int main(void)
{
int sum=0,i=0; //这里sum变量与i变量的位置改变一下

for(i=0;i<=100;i++)
sum =sum +i;


return 0;
}



应把i,sum的变量顺序调转过来,因为下面汇编代码里面,[ebp-04]是指sum,[ebp-08]是指i,且大量出现

刚看到时,觉得很奇怪..一度以为是自己错了,毕竟这样的错误,貌似不大可能发生...

回来测试一下,还好发现,原来自己的知识体系还没有崩溃..

好吧,必须还得再提一下,我使用VC6.0编译后才出现稍微与书上的例子吻合的汇编,采用的是DEBUG模式....VS变化好大,现在VS2008都加上了变量检查....debug模式下的偏移可就不是这个了...还有东西啦填充...可能是为了检错,查溢出的情况..希望下次更新的时候,加上新的编译器的变化说明,反正也不需要太复杂,一节就差不多了
雪    币: 15
活跃值: (28)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
linkto 2014-2-20 19:29
113
0
2008年7月第一次印刷
第三版 p314
异常处理回调函数代码最后一句的retn 10, 测试证明其实是retn
p313的代码最后也是retn的
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
雪未来白无垢 2014-6-18 10:41
114
0
P17  L6  D12
反馈者:雪未来白无垢
原文:Address列:显示相对被单击地址的地址,再次双击返回到标准地址模式。
更正:Address列:显示被双击地址的相对地址,再次双击返回到标准地址模式。
(PS:也许是自己理解问题,原文读的时候有点怪怪的没理解。我的理解是:双击后地址列中其它地址变为被选中双击地址的相对地址。而且必须双击原被选择地址才可返回标准地址模式;若双击一个新地址,则变为新选择地址的相对地址。)
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
雪未来白无垢 2014-7-15 11:42
115
0
P24 L-2 D12
反馈者:雪未来白无垢
原文:OllyDbg是无法对API函数入口点下断的,因此不能用此方法设断
更正:OllyDbg是无法对API函数入口处下断点的,因此不能用此方法设断点

P45 L-2 D12
原文:反汇编引擎的作用是把机器码解析成可以汇编指令
更正:反汇编引擎的作用是把机器码解析成汇编指令
(初学不知算不算错误,只是感觉读不通)
雪    币: 168
活跃值: (823)
能力值: ( LV10,RANK:173 )
在线值:
发帖
回帖
粉丝
kaoyange 1 2014-7-17 09:32
116
0
[QUOTE=epluguo;1240753]这多久没人反馈了....
我来贡献一个吧,刚好发现的..

加密与解密 第三版
2011年7月第8次印刷

P93

代码:

应改为:

应把i,sum的变量顺序调转过来,因为下面汇编代码里面,[ebp-04]是指sum,[ebp-08]是指i,且大量出现

刚看到时,觉得很奇怪..一度以...[/QUOTE]

貌似确实有这个问题,第一次看书的时候也没想太多(主要是没动手),暗自决定后面的章节得认认真真仔仔细细看。
雪    币: 2660
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
安于此生 34 2014-7-17 09:54
117
0
mark...
雪    币: 220
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ynafa 2014-8-14 13:54
118
0
希望继续勘误,等待出精校增补版!
雪    币: 193
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sxwsxw 2014-10-9 13:36
119
0
是不是在 第3版 中 还是有错误? P262,最后一行
雪    币: 223
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
systembug 2015-7-8 09:12
120
0
mack下  留着用
雪    币: 56
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
weixinfu 2015-12-5 14:02
121
0
有点时间了,支持下
雪    币: 113
活跃值: (62)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zwfy 2016-10-19 21:22
122
0
P214 L35 D13
原文:40E32E  EqStr ;序列号是否大于5位
更正:40E32E  EqStr ;序列号是否为空
说明:目标程序无法触发 “小于5位”序列号的条件,逆向调试也未发现5位的判断

P215 L20 D13
原文: 40E3A6 VCallHresult 取用户名长度
更正:40E3A6 VCallHresult 取用户名
雪    币: 32408
活跃值: (18755)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2017-10-8 15:36
123
0
感谢大家的反馈!经过9年的等待,第四版正在最后校排中,姓名若有漏掉,请即时告知:


游客
登录 | 注册 方可回帖
返回