能力值:
( LV2,RANK:10 )
|
-
-
102 楼
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
|
能力值:
( LV2,RANK:10 )
|
-
-
103 楼
P273 L5
原文:这是一个8位的ASCII码名
更正:这是一个8字节的UTF-8编码的字符串
pecoff_v8中对Name域的描述是“An 8-byte, null-padded UTF-8 encoded string.”
|
能力值:
( LV2,RANK:10 )
|
-
-
104 楼
收到。辛苦了。
|
能力值:
( LV2,RANK:10 )
|
-
-
105 楼
P525 L-18 D3
原文:stdacll方式
更正:stdcall方式
|
能力值:
( LV2,RANK:10 )
|
-
-
106 楼
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
}
}
|
能力值:
( LV2,RANK:10 )
|
-
-
107 楼
P223 (2011年2月第7次印刷的那本)
表9-2 MetaData Root 结构与说明 中偏移为12处的名称iVersionString应改为iVersionLength
P512
添加了一个块头后,就要修正PE头6Ch偏移处NumberOfSections的值 中的6Ch应改为C6h
|
能力值:
( LV2,RANK:10 )
|
-
-
108 楼
P346
第二块代码中第三个注视“dll文件退出时将走这条路线”位置错了,应该注视到“00E2D0DA”这一行后面。
|
能力值:
( LV2,RANK:10 )
|
-
-
109 楼
P26 倒数第二行
原文: 在eax寄存器单击右键,执行菜单“Follow in Dump"命令
更正: 在”信息面板“单击右键,执行菜单”Follow value in Dump"命令
|
能力值:
( LV2,RANK:10 )
|
-
-
110 楼
P79 L-9 D6(2010年3月第6次印刷)
原文: mov esp,ebp ;恢复现场
add esp,4 ; 平衡堆栈
ret ;返回 这里代码有问题,这里应该是PASCAL的调用约定,堆栈在MyAdd里面平衡,最后没有平衡,kanxue可以看下,改为ret 8才平衡,而且add esp,4解释为 : 释放局部变量占用的堆栈更好点,这里好像有点逻辑错误 新手刚接触解密,kanxue手下留情
|
能力值:
( LV5,RANK:60 )
|
-
-
112 楼
这多久没人反馈了....
我来贡献一个吧,刚好发现的..
加密与解密 第三版
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模式下的偏移可就不是这个了...还有东西啦填充...可能是为了检错,查溢出的情况..希望下次更新的时候,加上新的编译器的变化说明,反正也不需要太复杂,一节就差不多了
|
能力值:
( LV3,RANK:20 )
|
-
-
113 楼
2008年7月第一次印刷
第三版 p314
异常处理回调函数代码最后一句的retn 10, 测试证明其实是retn
p313的代码最后也是retn的
|
能力值:
( LV2,RANK:10 )
|
-
-
114 楼
P17 L6 D12
反馈者:雪未来白无垢
原文:Address列:显示相对被单击地址的地址,再次双击返回到标准地址模式。
更正:Address列:显示被双击地址的相对地址,再次双击返回到标准地址模式。
(PS:也许是自己理解问题,原文读的时候有点怪怪的没理解。我的理解是:双击后地址列中其它地址变为被选中双击地址的相对地址。而且必须双击原被选择地址才可返回标准地址模式;若双击一个新地址,则变为新选择地址的相对地址。)
|
能力值:
( LV2,RANK:10 )
|
-
-
115 楼
P24 L-2 D12
反馈者:雪未来白无垢
原文:OllyDbg是无法对API函数入口点下断的,因此不能用此方法设断
更正:OllyDbg是无法对API函数入口处下断点的,因此不能用此方法设断点
P45 L-2 D12
原文:反汇编引擎的作用是把机器码解析成可以汇编指令
更正:反汇编引擎的作用是把机器码解析成汇编指令
(初学不知算不算错误,只是感觉读不通)
|
能力值:
( LV10,RANK:173 )
|
-
-
116 楼
[QUOTE=epluguo;1240753]这多久没人反馈了....
我来贡献一个吧,刚好发现的..
加密与解密 第三版
2011年7月第8次印刷
P93
代码:
应改为:
应把i,sum的变量顺序调转过来,因为下面汇编代码里面,[ebp-04]是指sum,[ebp-08]是指i,且大量出现
刚看到时,觉得很奇怪..一度以...[/QUOTE]
貌似确实有这个问题,第一次看书的时候也没想太多(主要是没动手),暗自决定后面的章节得认认真真仔仔细细看。
|
能力值:
( LV2,RANK:10 )
|
-
-
119 楼
是不是在 第3版 中 还是有错误? P262,最后一行
|
能力值:
( LV2,RANK:10 )
|
-
-
122 楼
P214 L35 D13
原文:40E32E EqStr ;序列号是否大于5位
更正:40E32E EqStr ;序列号是否为空
说明:目标程序无法触发 “小于5位”序列号的条件,逆向调试也未发现5位的判断
P215 L20 D13
原文: 40E3A6 VCallHresult 取用户名长度
更正:40E3A6 VCallHresult 取用户名
|