一、360的“隐私保护”是怎样工作的?
360通过Inline Hook QQ进程内的CreateFileW()函数,将它的第一个参数LpFileName加上一些通配符的文件名过滤,把不需要显示的文件名去掉,然后显示到主界面上。也就是说,任何通过QQ进程访问磁盘文件的行为,都会被该“隐私保护器”认为是窥探隐私文件,从而达到抹黑QQ的效果。事实上,很多磁盘文件访问行为都是Windows操作系统自身原理带来的,例如一些注入到QQ进程的输入法、网络流量监控软件等发生CreateFile()的操作,碰到了上面它圈定的范围。360隐私保护器都会把这些触碰算到QQ头上。
二、QQ访问了网银等隐私资料吗?
操作系统本身有其文件处理机制,“隐私保护器”利用广大用户对这种机制的不了解,把一些正无关操作算到QQ头上,并定性为访问“隐私文件”。测试发现,当用QQ传文件、另存为、截图时都会出现保存文件的系统对话框,如果选择存在桌面上,那么对话框会显示桌面上应用程序的图标,此时系统会调用PrivateExtraIconW()以及CreateIconFromResourceEx()函数从exe文件里面读取图标来显示,而这两个函数内部会调用CreateFileW(),这样360就会说QQ访问了桌面上的应用程序;如果保存在“我的文档”,则360会宣称QQ访问了用户的文档目录。实际上这一操作是操作系统本身的机制来完成的,任何进行这一操作的软件都会这样。如此一来,桌面上的网银、Office、IE等多种应用程序都可能变成“隐私文件”了。
三、误导性的“窥视行为说明”
一些会误导用户的文字描述,例如“查看过您的电脑桌面文件”,“查看过您私人文档”等,是通过360privacymon.dat来读取描述信息的。该文件是360自定义格式的数据文件,已加密。解密后的内容主要包含两个方面,一是匹配项,二是行为说明,例如下面一项:
"Desktop" "查看了您的桌面文件"
如果文件路径里包含"Desktop",则会提示“腾讯QQ查看了您的桌面文件”。通过这种方式,夸大了所谓QQ“查看过”的文件范围。
此外还有一些夸大的描述,如访问到word.exe,360隐私保护器故意在右边文字写成是“文档”而不是“程序”,这种表述对用户存在误导,让用户以为QQ真的读取了文档。
四、针对性的过滤
为了避免用户察觉它是在乱报警、不专业,360采取了以下很有针对性的文件名过滤:
1、扩展名为.dll,.dat的不显示。
2、desktop.ini不显示。
3、路径名与以下的Cookie名作通配符比较,凡是跟qq、soso相同的则不显示:
~\Application Data\\Microsoft\Windows\Cookies\*@qq*.txt
~\Application Data\Microsoft\Windows\Cookies\*@soso*.txt
~\Application Data\Microsoft\windows\cookies\*@~~local~~*.txt
4、路径名中包含"tencent", "tm2009", "tm2010", "qq", "腾讯"的字符串不显示。
上面的第3、4条规则显然是因为腾讯QQ访问自身是正常的,显示给用户达不到恐吓目的,因此没有必要列举这些文件。
5、对于qq.exe,增加了对"*flash*.ocx",".swf"文件路径的过滤,新版本flash之类的不会再显示了。
6、当QQ.exe运行时,该“隐私保护器”会注入到QQ进程当中,这一过程还通过Timer定时器事件,不停的查看QQ.exe是否运行,同时还会验证QQ.exe的数字签名,用来确认是否是真正的QQ.exe,这样就避免了网络流传的“随便改个文件名为QQ.exe就会被报侵犯用户隐私”这个笑话。
7、增加了对腾讯TM和微软MSN的监测,具体是通过比较文件名tm.exe、msnmsgr.exe。
8、对微软MSN的msnmsgr.exe 过滤含有如下字符串的文件路径,这同样是360为了避免用户觉得它自己不专业。
"\microsoft\windows\cookies\*msn*.txt"
"\microsoft\windows\cookies\*live*"
"*@login.live*"
"*flash*.ocx"
"*msgrconfig*"
"msg*.tmp"
"*@live*"
".dll"
".dat"
".swf"
"desktop.ini"