Archive for 软件

鸟枪换炮

最近,我买了一个 Macbook Pro,用来代替我一直使用的 ThinkPad T43。这个 Macbook Pro 是通过 Apple Developer Connection学生硬件购买优惠 购买的,比市场实际零售价优惠了很多,感谢 ditto 姐姐帮我带回。为了成为 学生会员,需要支付 99 美元的费用。同时,我还通过申请,获得了今年 6 月参加 WWDC 08 的资格。

Apple 的电脑产品我从高中就开始接触,但集中使用是在香港大学。当时学的一门多媒体课,绝大多数课程作业都是在 Power Mac G5 工作站上完成的。Mac OS X 是基于 BSD 的,也算是 Unix 的一个分支;基于先前 Linux 和 Solaris 平台的使用经验,切换到 Mac OS X 上并不困难。我觉得,Mac OS X 的许多设计都比 MS Windows 人性化,是 MS Windows 平台开发者们学习的榜样。

我的电脑买来就安装好了 Mac OS X 10.5 (Leopard)。常用的软件在 Mac OS X 上都有 port,比如 Mozilla Firefox,Skype,甚至 Microsoft Office(价钱不便宜)和 Messenger。基于开源的 jabber 协议的 Google Talk 可以用 iChat 登录,但不能传送语音和文件。播放音乐,我直接用了 iTunes,它可以与我的 iPod Touch 完美配合。

跨平台的 Java 程序自然不在话下。C、C++ 开发环境可以通过安装 Apple 提供的 Xcode 程序配置。GNU 的小工具,可以通过 Darwin Ports 来安装,该网站提供的 port 工具行为和 Debian 系中的 apt-get 有异曲同工之处,不过更像是 Gentoo 中的 emerge,因为它的程序安装是从源码开始编译的。

访问 Windows 计算机、搬移数据,可以通过 Windows 的“共享”功能,Mac OS X 内建 Samba 协议的支持。连接可以使用无线网络,在 Mac OS X 中称之为 Airport。

中文输入,我用的是 Fun Input Toy,目前没发现明显的缺点。它和 Windows 下常见的输入法操作习惯基本相符。

我这个版本的 Macbook Pro 支持 multi-touch,但是我发现只有 Apple 自己家的程序才对它有最全面的支持,不过还好一切似乎才刚刚开始(想想 Microsoft 新出的系统,刚发布时也只有自己家的应用程序才能最好地支持绝大多数新特性)。

Comments (2)

VMWare 6 安装 VMWare Tools for Linux 的一个问题

在 VMWare 中安装 Linux 操作系统,最好在装好后安装 VMWare Tools。其好处是可以接管运行于 VMWare 中的操作系统的一些设备驱动程序,使之更好地支持 VMWare 提供的各项功能。比如,安装 VMWare Tools 之后,鼠标就可以在虚拟机和宿主机之间平滑移动,而无需按 Ctrl+Alt 进行切换。安装的方法很简单,在 VM 菜单中选择“Install VMWare Tools”项即可。其实现的机制是:将虚拟机的光驱中的内容改换成一个含有 VMWare Tools 安装文件的 .iso 文件(可以在宿主机 VMWare 安装目录中找到为不同操作系统预备的这个 VMWare Tools “安装光盘”镜像)。

然而,在新版本 VMWare 中安装 Linux 下的 VMWare Tools,却遇到一些问题。更确切地,是 2.6.22 内核版本,在编译“vmhgfs”模块时出现问题。这个模块的功能是为虚拟机提供共享宿主文件系统的功能。这项功能允许用户在虚拟机中直接挂载宿主文件系统中的某个目录,并进行一些操作。

编译内核模块时的错误如下:

Trying to find a suitable vmhgfs module for your running kernel.

None of the pre-built vmhgfs modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmhgfs module for
your system (you need to have a C compiler installed on your system)? [yes]
Extracting the sources of the vmhgfs module.

Building the vmhgfs module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config2/vmhgfs-only'
make -C /lib/modules/2.6.22-14-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.22-14-generic'
  CC [M]  /tmp/vmware-config2/vmhgfs-only/backdoor.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/backdoorGcc32.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/bdhandler.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/cpName.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/cpNameLinux.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/cpNameLite.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/dbllnklst.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/dentry.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/dir.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/eventManager.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/file.o
  CC [M]  /tmp/vmware-config2/vmhgfs-only/filesystem.o
/tmp/vmware-config2/vmhgfs-only/filesystem.c: In function ‘HgfsInitFileSystem’:
/tmp/vmware-config2/vmhgfs-only/filesystem.c:582: error: too few arguments to function ‘kmem_cache_create’
/tmp/vmware-config2/vmhgfs-only/filesystem.c:593: error: too few arguments to function ‘kmem_cache_create’
make[2]: *** [/tmp/vmware-config2/vmhgfs-only/filesystem.o] Error 1
make[1]: *** [_module_/tmp/vmware-config2/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.22-14-generic’
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/vmware-config2/vmhgfs-only’
Unable to build the vmhgfs module.

The filesystem driver (vmhgfs module) is used only for the shared folder
feature. The rest of the software provided by VMware Tools is designed to work
independently of this feature.
If you wish to have the shared folders feature, you can install the driver by
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine.
These packages are available on your distribution’s installation CD.
[ Press Enter key to continue ]

根据上面提示的错误,可以发现,是编译器在编译某个文件时发生语法错误。这种低级的错误居然会在 VMWare 这个成熟的产品中发生?感到不可思议。于是展开 vmware-tools-distrib/lib/module/source/vmhgfs.tar 文件,打开 filesystem.c,找到 593 行附近代码在调用函数:

   /* Setup the inode slab allocator. */
   hgfsInodeCache = compat_kmem_cache_create("hgfsInodeCache",
                                             sizeof (HgfsInodeInfo),
                                             0,
                                             SLAB_HWCACHE_ALIGN,
                                             HgfsInodeCacheCtor);

这段代码调用的函数 compat_kmem_cache_create 并非 Linux 本身的 system call,而是经过一层兼容性嵌套。很快就能够找到这个定义,在同一 tar 包中的 compat_slab.h 文件中,到有关片段如下:

/*
 * Destructor is gone since 2.6.23-pre1.
 */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)
#define compat_kmem_cache_create(name, size, align, flags, ctor) 
                kmem_cache_create(name, size, align, flags, ctor, NULL)
#else
#define compat_kmem_cache_create(name, size, align, flags, ctor) 
                kmem_cache_create(name, size, align, flags, ctor)
#endif

这段代码的目的是,根据不同的 Linux 内核版本选择不同的系统调用形式。根据注释,意思是说从 2.6.23-pre1 版本的内核开始,系统调用 kmem_cache_create 将少了一个参数。而开始所提到的错误恰好是这个函数调用出现参数不够的问题。仔细分析后发现,原来 2.6.22 版本的内核也被当成了 2.6.23 以后的处理办法,当然不对了!

解决方法:将第 26 行的

#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)

改为

#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)

重新打包,执行安装程序,问题即可解决。

注:本文的解决方法来自这个论坛

Comments

瑞星又捅了一个大篓子

最近,很多学校的网络部门都发布了提醒大家不要使用瑞星2008版的通知。对此,公网上也有相当多数的评论。见下:

可见,问题的确是存在的了。当然,在这件事上瑞星没有示弱,发布了声明。看上去两方面都有道理。那么,这个问题到底是怎么回事呢?

在瑞星官方网站的首页上找到了这样一句话:

防ARP欺骗功能:有效拦截ARP攻击,并提供详细丰富的管理功能,方便用户进行攻击源查询

然而点进去后,这项“重要的功能”却没有了,不知道这是为什么。

其实我觉得,造成这种现象的原因很简单,就是网络协议的缺陷。早期的网络协议设计时,因为联网计算机数量有限,基本上全凭大家自觉,而没有考虑到可能有人在其中捣鬼。随着网络使用的大众化,各种病毒爱好者也开始活跃。这里的 ARP 协议就是这样一种机制:

网络上的机器以某种特定方式进行“自我介绍”。机器甲说:“我是甲,我在这里!”于是大家就记下了甲的地址。然后乙又说,“我是乙,我在这里!”于是大家又记下了乙的地址。如果大家都这样轮流实事求是地说,网络上也就相安无事。

现在突然出来一个捣乱的丙,他明明不是甲,但却对大家说“我是甲,我在这里!”这台机器丙通常是中毒了,或者使用者是个黑客,先前已经把真正的甲搞掉了。于是大家就会认为丙是甲。

现在,如果甲运行了瑞星防火墙呢?那么机器甲发现,好啊,居然有人冒充我。于是开始向网络中疯狂地喊“我是甲!我是甲!我才是甲!……”显然在这种协议中,谁声音大,大家就听谁的。通过这样大声的广播,保护了甲处的网络的连通性。

那么,瑞星的这种设计到底有没有问题呢?

Comments (2)

杀毒软件成了系统最大的威胁

(美国太平洋夏令时间)5月17日是赛门铁克公司最沉重的日子。当 Symantec/Norton Anti-Virus 的用户将自己的杀毒软件更新到这一天的病毒定义以后,会把 %SystemRoot%\system32\netapi32.dll 和 %SystemRoot%\system32\lsasrv.dll 两个系统文件认为是“backdoor.haxdoor”木马程序,并把他们“隔离”起来。如果用户重启电脑,将发现系统无法正常启动,出现蓝屏,安全模式也无法进入。对此问题,目前尚无有效的解决方法,如果是系统分区是FAT32格式的,可以考虑从其他系统拷贝正确的系统文件进行修复;如果系统分区是 NTFS 的,可以考虑运行 Linux + ntfs3g 程序将这两个文件写回去。

如果你恰好使用的是 Symantec/Norton Anti-Virus,并且已于今天更新病毒定义的客户端,那么,请注意,千万不要重新启动电脑……关掉 Anti-Virus 服务,到系统目录中查看 netapi32.dll 和 lsasrc.dll 文件是否存在,如果存在且修改日期不是今天,说明你比较幸运,文件没有被隔离。否则的话……看看隔离区里面有没有这两个文件,如果有,把它们恢复,并且禁用 Anti-Virus——祝你好运!

赛门铁克(诺顿)的杀毒软件一直以大而无用著称,占用系统资源多,而防杀病毒效果平平。而他们的 Internet 防火墙也会给用户带来诸多不便,例如一些 web 站点无法登录,VPN 无法连接,很是烦人。Lenovo ThinkPad 随机附赠的诸多软件中,我第一个删除的就是它。

无独有偶,瑞星杀毒软件也曾有过一些问题,不知道现在是否已经解决。很多用户在从瑞星的旧版本升级到某个时期发布的 2007 新版本后,会发现系统无法正常启动,蓝屏报错,原因就是这个版本的瑞星杀毒软件的某个系统驱动程序没写对。我曾经手过两起因为瑞星 2007 造成的“事故”,好在安全模式还能进入,把瑞星彻底删除后一切正常。有人说安装瑞星出品的“卡卡助手”后,升级“瑞星杀毒软件”可能导致“卡卡助手”损坏,进而导致系统无法启动。“卡卡助手”是瑞星推出的一个反流氓软件,连某些古老版本的顽固的“3721”插件都能清除,可见“卡卡助手”也是在系统内核中挂了钩子,而且比“3721”挂的还要深层次。一个应用程序的文件损坏居然会导致整个系统崩溃。

杀毒软件本来是保护系统安全的,然而一个是国际知名、另一个是国内领先的杀毒软件居然也会沦为系统的首要威胁,实在是个讽刺。更讽刺的是,这两个事件都是因为升级病毒库或主程序引起的,可以通过网络传播,又对系统造成危害,基本符合“计算机病毒”的定义。其实,如果说上面两个是杀毒软件造成的问题,那么微软的引以为豪的“AutoUpdate”出现系统长时间CPU占用100%的问题,就不那么好解决了

Comments

招行网银的技术路线不对头

近几天,水木上又开始声讨招商银行的专业版网上银行了,事实上,这种声讨的声音一直就没断过。这个招行“专业”版网银,做起事来的确够专业——不但只认可Windows(招行网银普通版只认IE),还会在输入密码时挂键盘钩子,在运行时禁止远程登录。最近招行又推出了一项“新功能”:检测虚拟机,如果检测到你正在虚拟机中使用招行专业版网银客户端,那么客户端会报错。如果你是一位Linux或Mac OS的用户,那么很遗憾,你可能再也不能通过VMWare或Parallels等工具安装一个Windows,从而使用招行专业版网银了。招行客服对自己这些“狗拿耗子”的做法的解释是:安全。

正式因为这些原因,我一直没敢使用招商银行的专业版,至多在普通版上查查每期信用卡帐单。招商银行作为国内银行业界很多领域(如网上银行)的开创者,网点少,用户多,资金量大,受到人们的诟病也比较多。曾有自由软件支持者billxu发表《致招商银行的公开信》,指出了招行技术路线上的失误,并说明他们的做法并不一定能带来安全,却给少部分用户造成严重的麻烦。但至今,招行不但没有作出任何向正确方向的改善,反而在错误的道路上越走越远。其实,这种Windows-only,IE-only的现象在国内网上银行中并不少见。比如,中国工商银行的网银使用IE专用的ActiveX插件认证密码,专业版使用“U盾”,抛开安全性的问题不谈,其驱动程序只有Windows版本的。中国建设银行、招商银行、浦发银行、兴业银行的网上银行也使用专用的ActiveX插件输入密码。北京银行曾一直是支持非IE浏览器的,可惜今年早些时候的某次升级后,我再也无法使用Firefox操作北京银行的网银了。兴业银行最亏,本来用的是Java Applet这个跨平台的组件写的网银客户端,却因为网页某处的不兼容JavaScript代码问题,导致非IE浏览器无法输入密码,同样成了IE-only。也有一些例外,淘宝网就允许非IE用户直接登录,也不需要什么ActiveX;但对IE用户,则要求必须安装ActiveX插件。我不太清楚淘宝网的技术人员是怎么考虑的,这不是表明ActiveX对安全性的提高来讲纯属鸡肋么。

那么,国外的情况也是如此吗?我在曾经写过的《体验香港的银行服务》中介绍过香港汇丰和恒生银行的网银服务。在Firefox中使用Three、Peoples等电话公司的网上缴费服务也很正常。这些服务全部是跨平台的,不论你用IE还是Firefox还是Safari,不论用Windows还是Linux还是Mac OS,全部可以正常使用。为什么香港银行和公司的觉悟那么高?我在一个港大入学时发的小册子里找到了答案——原来在香港,发布一个不跨平台的网页是违法的。香港有个“机会平等委员会”,保障妇女、残疾人等的合法权益。而互联网上的网页,也和其他公共设施一样,被要求适合残疾人使用——例如视障人士,他们可以通过屏幕阅读软件了解网页信息,但这样的网页必须符合一定的要求。在一个真正重视“少数人”的社会,人们才会意识到网页标准的问题。

现在,一些外资银行已经获准在国内经营人民币存贷款业务了,距离全面开放也只是时间问题。这对国内银行业显然是个冲击——因为外资银行的目标客户群一般都是高端客户。值得讽刺的是:能够使用招商银行专业版网上银行的客户,应该是招行的优质客户;能够在关注“浏览器平台兼容性”问题的招行专业版网银客户,从他们的工作性质可以推想,更应该是优质客户中的优质客户。这部分客户从招行投靠外资银行,具体损失有多少,恐怕只有招行自己清楚吧。

Comments (7)

被迅雷郁闷了一把

前不久,一个朋友让我帮助看一下他的服务器。他的服务器上运行着一些静态网页,还有一个PHP的论坛程序。然而最近出现的问题是,网站的运行速度越来越慢,他怀疑是数据库太大,导致“周转不灵”。

我看了一下他的网站,所用的论坛是Discuz的一个旧版本。帖子数量和用户数量都在一万左右,并不算很多。在线人数一百多人,其中绝大多数都是访客,除搜索引擎的爬虫外,我很怀疑是被“暴力营销”之类的工具盯上了。“暴力营销”是网上一个臭名昭著的自动向论坛发送垃圾信息的程序,它可以自动顺序完成注册用户、发送垃圾广告信息等过程,甚至能识别部分简单的认证码。原来我建立的Class13.com/forum就曾被“暴力营销”软件加入了默认数据库,其带来的访问量至今依有增无减,丝毫不理会我早已经从ASP转向PHP的事实,仍在像没头苍蝇般不断访问/forum/reg.asp,/forum/post.asp等文件。

不过,如果仅仅是“暴力营销”导致论坛访问过慢,不能解释为什么静态页面也变慢了。为此我要来服务器管理员帐号,登进去查看Apache的日志。好家伙,6G大小的log,还以每秒几百KB的速度增长。tail -f 一下日志文件,新增访问信息刷刷地向前滚动。不过,怎么放眼望去,全是一个文件——lovetransfer.mp3。下载这个文件的IP来自全国各地,天南海北,无所不有。还有一个共同特点——使用的浏览器都是IE,且(几乎)全部没有referer。为什么一夜之间大家都开始直接下载这个文件了呢?

原来,这个服务器上有一个5M大小的“爱情呼叫转移”MP3文件,放在某个人的目录下面,也许是出于为了方便自己下载,或为别人传输的原因。然而,某天一个知道这地址的人用了“迅雷”这个软件下载这个文件。迅雷在下载一个文件时,会把这个文件的物理位置等信息传给迅雷的服务器。从此以后,地球人都知道这个文件了。从原理上分析发现,迅雷在下载文件时,可以伪装成正常的浏览器。即使有些网站采取了简单的“防盗链”措施,如要求在下载文件时提供来自本站的referer,迅雷仍能成功下载。很多网站的站长都知道迅雷这一盗链的特性,并对此深恶痛绝,缺毫无对策,最后只能删除文件。更可怕的是,迅雷这样做,似乎并没有违反任何法律法规,难怪它能够肆无忌惮。迅雷还有一种类似P2P的下载模式,可是迅雷损害的并不是最终用户的利益——用户使用迅雷相反能够得到“更好的用户体验”——尽管这是以泄露自己的隐私为代价的。随着迅雷的用户越来越多,网站的日子会越来越不好过。如果大家都把文件从自己服务器上删掉,迅雷才无法下载。问题是,不可能所有的人同时删掉,总有一些管理员的动作迟缓些,所以迅雷还是能照样钻空子。

删除了lovetransfer.mp3后的两三天内,仍然不断有人来访问这个文件——可惜都吃了404错误,每小时几万次。不过,服务器的响应速度明显快了许多。主要问题解决后,下一步就是解决“暴力营销”的次要问题。

对讯雷这样可耻的行为的限制,只能通过立法途径解决,而通过道德上的声讨是没有作用的。不过,我也比较怀疑立法者能不能理解这些技术问题。

Comments (14)

中国移动“飞信”服务使用心得

中国移动去年推出了“飞信”(Fetion)这一即时通讯工具,现正在公开测试。这个软件的基本想法是:把手机和聊天工具连接在一起。事实上,QQ和MSN Messenger软件都有类似的功能,不过服务是收费的。Fetion在测试期间是免费的,相信可以吸引一大批用户使用。

通过简单的试用,发现它在以下方面有很大创新。

1. 客户端“跨平台”。客户端既可以安装在电脑上使用,也可以安装到智能手机上,或其他支持Java的手机上。如果不使用客户端,也可直接以短信操作。

2. 资费低廉。使用客户端发送短信目前免费,接收用户使用手机短信回复为正常资费,或计入短信套餐额度内。如果发送方漫游到国外,“飞信”将成为非常便捷的与国内亲友保持联络的廉价解决方案。另外,“飞信”提供的语音聊天功能可以使异地号码之间的通话费用降低(费用为晚6点~早8点每分钟0.15元,其余时间每分钟0.25元,双向收取,且不计入任何话音收费套餐)。

3. 方便快捷。若飞信客户端在线,对方的回复短信内容直接回到软件界面中;若不在线,回复到用户手机上。

4. 有一定保密性。每位“飞信”用户分配一“飞信”号码,此号码与申请了飞信服务的移动手机号码一一对应。如果不希望公开手机号码,可以只公开飞信号码,增强了安全性。

不过不足之处是:

1. 目前,客户端还需要进行更充分的测试。对某些输入法支持有待提高。同时,对复制、粘贴的响应也不够迅速。

2. 接收方若不是飞信用户,首次接收到短信之前必须回复一条确认短信,比较麻烦。而一旦确认,则会无限量地接受此用户发来的短信;而若想取消,似乎只能先注册一个飞信用户,再把对方加入“黑名单”。接收方若已经是飞信用户,则自动可以接受其他飞信用户发来的短信。

3. 发送的短信都是“$1说:$2”的形式,$1是昵称,$2是短信内容,比较单调。不过因为昵称的修改不受限制,可以利用这一点达到很多幽默效果。

4. 即使两人都用客户端,也不能直接进行网上语音通话,必须通过手机。

显然,这个业务一定会大大增长移动公司的短信业务量。

Comments (3)

搞定了Apache mod_rewrite

Apache 的模块 mod_rewrite 专门用于实现 URL 的重定向。其配置既可以在 httpd.conf 文件中进行,也可以在网页目录中的 .htaccess 里面调整。

这个网站域名重定向是这样实现的:凡不是以“linshuang.info”域名访问本站的,如“www.linshuang.name”等,均会被以“301 永久重定向”至域名 linshuang.info 下的相同目录下。此外,访问 /wiki 目录的重定向到 MediaWiki 程序的目录中,访问 /blog 目录的且实际文件不存在的,调用 WordPress 有关处理程序。后两条规则是原来就有的,第一条是最新想到的。这样就不会因域名不同而被 google 搜索引擎等识别为不同的网站,而排名被低估了。

一切就这么简单。

Comments

360安全卫士

几天前,室友的电脑感染了一堆乱七八糟的木马程序,让我帮忙来看。我一看就觉得很棘手,系统进程里面有好几个可疑程序,关掉后不久还会又出来。

于是灵机一动,下载了个“360安全卫士”。运行后,果然把5~6个刻意程序都杀除了。重启一遍,又杀掉2个。再重启,就查不出来了。

趁机观察了一下 360safe 这个软件,如果它不是因为它当初“流氓”的背景,还真是不错的说:可以扫描系统中的自启动进程,当前进程,当前所有网络连接,IE 工具栏及插件安装情况等信息。很多还都能给出简要说明,直接告诉你哪个是安全的,哪个不是。不过可惜有点弱智,Java 相关的程序基本上都不认识。对于 IE 工具栏和插件,还能选择性免疫。最赞的是,对它无法解决的问题,还能手动生成文本格式的报告,供用户发给高手求助使用。

但愿这回 360safe 真的不再流氓了。

Comments

浏览器不同,价格亦不同

赛门铁克 (Symantec) 个人版的防病毒软件 (Antivirus),据说口碑很不错。机器买来时有此软件 3 个月的免费试用期,不过,实践证明它在我的机器上运行速度比较慢,所以后来就把它卸载了。如果不卸载,3 个月又想继续使用,就只能到它的网站上去“续订”。购买简体中文版续订的地址在这里

用 Windows 平台下的 IE 浏览器查看此页面,得到的价格是网络安全特警 (即 Norton Internet Security) 79 元,防病毒软件 (即 Norton Antivrus) 59 元。然而,用 Firefox 打开此页面,价格就变成了 39 元和 19 元。在 Linux 下用 Firefox 打开,价格又成了 59 元和 29 元。很是奇怪。难不成Symantec 也觉得 IE 的安全漏洞太多,所以价格就高些?

有图为证:

Comments (5)