~~~我喜欢,迎着风走的感觉~~~已习惯,孤单的像寂寞的小孩~~~





相信很多朋友都用过Silence兄做的NOD32 for Windows NT/2000/2003/XP/x64 Administrator 2.50.16简体中文封装版。对于这个版本是如何的,大家想必都想知道,在这里我们可以参考Silence兄写的这篇大作。原文地址:http://www.mympc.org/news/2/2006-2-2_23545045258.html

NOD32 是一款优秀的反病毒软件,官方已经推出简体中文版,但这个中文版做得很粗糙,很明显是在繁体中文版的基础上直译过来,未考虑大陆用语习惯,远不如大陆网友制作的汉化语言包用起来舒服。下面讲解一下如何用汉化语言包替换原版语言包并将最新病毒库文件封装进原版安装程序的方法。

所需软件:
1、WinHex 16 进制编辑器。
2、sfv 计算工具,如:MagicSFV、Total Commander 等。
3、Winrar 2.9 以下版本,如 Winrar 2.8(NOD32 的安装程序不兼容 Winrar 2.9 以上版本的压缩格式)。
4、支持 utf-8 编码的文本编辑器,如:Emeditor 或 Windows 2000/xp 自带的记事本。
5、NOD32 官方简体中文版(以 NOD32 for Windows NT/2000/2003/XP/x64 Administrator 版本为例)。
6、NOD32 汉化语言包。
其实重新封装 NOD32 可以以任意语言版本为基础进行,但因为英文版本中不包含语言包文件,处理时需要修改的内容很多。为方便,本文以官方简体中文版为例进行讲解。

封装 NOD32 分为三步:封装最新病毒库、封装汉化语言包和重新打包。下面首先来进行相对比较简单的封装病毒库步骤。

一、封装病毒库
步骤:

1、获取最新病毒数据库
打开一台已经安装了 NOD32 并已升级到最新版本的计算机,从其安装目录下拷贝以下文件(默认路径为 C:\Program Files\ESET):
nod32.000
nod32.002
nod32.003
nod32.004
nod32.005
nod32.006

2、解包
NOD32 Admin 官方简体中文版的安装文件是 ndntcsad64.exe,是用 Winrar 打包的自解压文件。直接用 Winrar
打开此文件,并将其全部释放到一个目录中(如:d:\nod32)。文件列表如下:

ntadmncs.nup
ntbasecs.nup
ntinetcs.nup
ntstdcs.nup
advheur.nup
archs.nup
charon.nup
engine.nup
pwscan.nup
utilmod.nup
main.dll
mainlang.dll
mfc42.dll
mfc42u.dll
msvcrt.dll
readme.txt
setup.exe
setup.xml

其中:mfc42.dll、mfc42u.dll、msvcrt.dll 是 NOD32 所需的微软 MFC
库文件,setup.exe、main.dll是安装程序,mainlang.dll 是安装程序的语言包文件,setup.xml
是主安装脚本,*.nup 是特殊封装的安装包。
nup 文件是我们要处理的对象。在这些 nup 文件中,以 cs 结尾的是软件各基础组件安装包(如果是英文版,则以 en 结尾),其余的几个
nup 文件是病毒数据库和一些可在网上升级的扫描器支持组件包。为叙述方便,我们把前者简称为组件包,后者简称数据包。数据包即是我们需要升级的内容。
每个数据包中封装着一个文件,对应关系如下:



3、重新封装数据包
下面以将 nod32.000 封装进 engine.nup 为例讲解如何把第一步获得的最新病毒库文件封装进数据包。
⑴替换封装文件:
用 WinHex 打开 engine.nup
文件,在开头部分查找"[update_data]"字符串,这之后的部分即为内嵌的文件,我们从"NOD32-MODULE"开始选中,一直选到文件末尾的倒数第
66 字节处(即 16进制数据 88 3F 03 05 之前),然后按 Delete
键删除选中的数据(参见图一、图二),再把光标移回至刚才"NOD32-MODULE"所在位置。

图一:

图二:

用 WinHex 打开 nod32.000 文件,Ctrl+A 全选数据,然后 Ctrl+C 复制数据。切换至 engine.nup
文件,Ctrl+V 粘贴数据。
⑵替换文件信息
用 SFV 工具计算 nod32.000 文件的 SFV 检验码,并转换成十进制。在 engine.nup
开头处查找"crc=",将其后的数值替换成新校验值。查找"filesize=",将其后的数值替换为 nod32.000
文件的实际大小。其它的如:version、build、date 等数据由 nod32.000
的开头部分获得并替换(参见图三,图中红线处是需要修改内容,蓝线处是参照内容)。
所有数据替换完毕后保存退出,engine.up 文件即封装完成。

图三:

其它的几个数据包文件按同样方法封装。所有文件封装完毕后运行一下 setup.exe,如果不报 CRC 错误即是封装无误。

二. 加入简体语言包。

1、解压缩组件包。
组件包 nup 文件的结构和数据包类似,只不过组件包封装的是一个 rar 文件。即可以分离出这个 rar 文件再将其展开,也可以利用
NOD32 安装程序直接展开 rar 中包含的文件。为方便起见,建议采用后一种方法来获取 nup 文件的内容:
直接运行 setup.exe,等待出现任一对话框时,切换到资源管理器,然后打开系统临时文件夹,会发现有
nodtmpa、nodtmp、nodtmpc、nodtmpd 和 NSetup 等五个子文件夹,前四个文件夹中的文件分别就是
ntbasecs.nup、ntstdcs.nup、ntadmncs.nup 和 ntinetcs.nup 组件包中的内容,对应关系如下:

将 nodtmpa、nodtmpb、nodtmpc、nodtmpd 这三个文件夹复制到其它地方,然后退出安装程序。

2、替换语言包文件
上一步我们已经展开了 NOD32 安装包中所有的文件,现在我们要将汉化语言包加入其中。
将语言包的如下文件按下表添加至上一步复制的四个文件夹中,替换原有的语言包文件:

语言包中还有一个 mainlang.dll 文件,用它来替换 d:\nod32 文件夹中的同名文件。

3、修改组件安装脚本
在这四个文件夹中各有一个 setupc.xml 安装脚本,是 UTF-8 编码格式的文本文件。使用支持 UTF-8
编码的文本编辑器打开这四个脚本,查找需要修改的字符串编码,将其修改为符合大陆用语习惯的简体编码。字符串必须以 unicode
格式来写,如:程序(unicode 编码格式请自行查询相关资料,本文不再讲解)。

4、压缩封装组件
⑴压缩。
将修改后的四个文件夹中的文件用 Winrar 2.8(必须是低于 2.9 的 Winrar 版本!否则将来安装时会报错。)分别压缩打包为
nodtmpa.rar、nodtmpb.rar、nodtmpc.rar 和 nodtmpd.rar(注意:只压缩文件,不包含文件夹)。
如用如下命令: rar a nodtmpa.rar nodtmpa\*.* -m5 -ep
⑵封装组件包。
按照前面封装病毒库的办法将这四个 rar 封装入 ntbasecs.nup、ntstdcs.nup、admncs.nup 和
ntinetcs.nup 文件中。查找内嵌 rar 文件时,以"Rar!"为特征字符串(参见图四)。

图四:

三、打包。
前面已经完成了所有的封装工作,最后一步打包很简单:将 d:\nod32 文件夹中的所有文件用 Winrar
压缩成自解压文件即可。为达到和原版本安装包相同的效果,可以从原版文件中提取自解压脚本,在命令行方式下输入如下命令:
winrar.exe cw ndntchad64.exe setup.txt
注意:winrar.exe 要放在可搜索路径下,否则就需要在前面加上路径。
即可得到 setup.txt 自解压脚本,在这里可以将其中的文本顺便翻译成中文。然后用 Winrar 制作压缩包时,从此文件加载注释即可。

至此,NOD32 简体中文版重封装全部完成。由于完全采用了原版的安装程序和脚本,所以可以达到和原版一样的安装效果,可放心使用。

其它一些说明:
1、如果使用的是 NOD32 非 Administrator 版本,安装包中没有 admncs.nup 这个文件。
2、如果需要在安装包中加入第三方的升级服务器,请修改从 ntbasecs.nup 中提取出的 setupc.xml 脚本,在脚本最后部分
下面按原有格式添加即可。
3、该脚本中还有如下一行:

将其中的 VALUE="1" 改为 VALUE="0",则在安装时默认选中"在启动时不显示 NOD32 启动画面"。
4、setupc.xml 脚本还有一些其它可定制内容,感兴趣的朋友可自行研究。
5、网上流传的 NOD32 汉化语言包中不包含 mainlang.dll 和 krnstpr.dll
文件,需要者请自行汉化。或者直接下载我制作好的简体中文封装版。下载地址:http://www.mympc.org/down/1/2005-10-19_15415040116.html

另:因为不了解官方对语言代码的定义。前段时间我制作的 NOD32 封装版采用了“CHINESE”这个代码,而现在官方简体中文代码为“CHINESES”,所以在安装了封装版后升级官方中文版时会提示错误的语言版本。现在我重新制作的版本已不存在此问题(只制作了 NT 内核版本,Win9x 内核版本未修订)。



0 Comments:

Post a Comment



相关文章