除虫记之十六(诺顿10.0的算法有问题?:2小时/人)
划词搜索体现了随时随地的搜索,确实挺好的一个功能,但因为被指责流氓软件而停止维护,在IG新版中,这个产品作为一个子功能,为用户提供便捷的搜索服务。
我复杂把她洗白,去除所有的被认为流氓的代码。
挤时间做,一通大刀阔斧的砍,整理代码、优化程序、添加功能,产品终于大变样,经过几次反复测试,当时通过了所有的杀毒和反流氓软件的检测,应该说这个全新的产品没有任何的不轨之处。
从代码上看,去掉了自更新机制,去掉了广告,更改了产品名称,使用了新的安装路径和注册表路径,代码中的相关常量字符串也都做了更新,从编程角度看,完全是一个全新的绿色软件。
在后续IG的送测中,这个产品被集成进去,效果很好。
但.....
昨天测试部说诺顿报告这个程序有问题。。。。诺顿报告说发现了广告软件,和没洗之前的报告一样。
第一反应就是,是不是送测的包里面文件版本不对导致的?
去测试部那儿看了看,发现文件版本是对的。
从我的机器上新编译一个,发给测试部,结果是:诺顿仍然报告,连mail都给隔离了。
查看诺顿的报告技术细节,诺顿检测7个项目,逐一的对比,没有啊,前面已经说了,我把所有的可能会出问题的特征代码都改了,一行废代码都没有。
nnd,哪里出了问题?
难道说还有遗漏的?
我把代码又从头到尾过滤了一遍,凭良心说,代码中一点不轨之处都没有。
经过我的砍杀和整理,代码已经非常的少,很有条理,又再检查一遍,还是没检查出什么东西来。
并且,我的机器上也装了诺顿,每天都更新病毒库的,为什么我的机器上不报告?
难道是诺顿的版本不同?我机器上的是9.0版本,测试部的那台机器是10.0版本。
好,我也装个诺顿10.0。
啊哈,装完10.0,重启后,果然,在我的机器上也报告发现了广告软件。
问题在哪儿?
没有任何头绪,因为实在想不出诺顿凭什么报告的了。
把工程Clean了n次,Rebuild all了n次,只要交给诺顿检查,就报告有问题。
把一些正常功能的代码都屏蔽了,还是报告。
要疯了。。。。。
有一个细节就是,每次编译,都是编译成Release版本的Minimize Size模式。
还一个细节就是,每次检测,诺顿就检测这个100多K的exe会花费10多秒钟的时间,然后才蹦出来一个报告对话框,给我感觉就是:她拿捏不准了、没辙了、乱放一通。
偶然~~~~
优化选项选Default,啊哈,检测通过,欣喜若狂~~~~~~~~~
按MinimizeSize编译,检测,报告,
按Default编译,检测,通过,
再按MinimizeSize编译,检测,报告,
再按Default编译,检测,通过,
如此,一而再,再而三,三而多,多而更多~~~~~~
交给测试部测试,不久传回结果,通过。
还一个细节,诺顿检测这个exe,到通过检测,只2秒,程序大了几十k,检测速度快了好几倍。
哈哈,诺顿的算法肯定有问题啊!!!
诺顿说她就检测那7项,胡扯!!!
她肯定在匹配代码段中的某些代码!!!
但代码已经被我改了个底朝天了,复用代码不会超过30%!
但不管怎么样,诺顿这属于误报,是她自己的算法上出了问题。
诺顿版本:10.0.0.359
扫描引擎:103.0.0.27
病毒库: 2007-05-10 rev.25
还有,诺顿从五一后几乎天天都有更新,是不是出啥事儿了 :)...
教训: