可能经常上网的朋友都会有这样的经历,只要你上过一次淘宝,那么阿里会给你的电脑自动下载一个TaobaoProtect.exe的程序,这是支付宝安全控件,名为安全控件,实际上它会在后台搜集用户数据和信息,然后精准推送,可能它做的远不止这些,呵呵。。。这个控件在你退出淘宝之后一直存在,卸载了支付宝控件后还会存在,删除之后它隔一段时间会自动下载,自动运行,我就日了狗了。你TM这不耍流氓么,还有个附带的控件Alipaybsm.exe,也是阿里巴巴的,这2个程序在XP下占用cpu,极为浪费资源,其他系统可能会好点,更为重要的是,在我的电脑里,我还不能决定什么程序能运行什么程序不能运行了?就好比你家来了个要饭的,天天跟你这蹭吃蹭喝,你还赶不走也解决不了,而且比这更让人恶心的是,他还偷窥你的隐私。你家里一根针一团线他都知道的清清楚楚,甚至你跟老婆睡觉他也在旁边看着。让人真真的跟吃了苍蝇一样难受,心里阵阵恶心,原来阿里替外国人赚中国人钱从来都这么卖力---好吧言归正传,来说说解决办法。
这种垃圾程序,可以删除,但是删除不是个好办法,他还是会自动下载,自动安装。让你无语,我的解决办法是,先删除,然后直接在原文件路径下新建一个同名的空的txt文件,将它重命名为和刚才删了那个文件的扩展名一样的文件(一般就exe和dll).再把此文件的文件属性设置为只读。一般到此为止也就可以一劳永逸了,不过为了安全起见,也可以设置某些账户不能访问此文件。
本来手动作这些工作也可以了,无奈我比较懒,那么多文件一个个弄过来不累死我啊,索性写了个小程序,只要提供文件夹,就遍历文件夹下所有文件做上面的工作,这过程当中要关闭阿里的一些服务,不然一些进程是没办法删除的。这两个程序对阿里的核心服务(淘宝、天猫和支付宝)是不产生制约的,可以删除。
下面附上关闭阿里服务的批处理文件:
@echo off
rem 将“Alipay payment client security service”停止
sc stop pcas
rem 将“Alipay security business service”停止
sc stop secbizsrv
rem 将“TBSecSvc”停止
sc stop TBSecSvc
rem 将“pcas”的启动方式设为禁用
sc config pcas start= disabled
rem 将“secbizsrv”的启动方式设为禁用
sc config secbizsrv start= disabled
rem 将“TBSecSvc”的启动方式设为禁用
sc config TBSecSvc start= disabled
pause
将此代码复制,新建个txt,粘帖进去,然后保存为CloseAlipayservice.bat,使用的时候双击就行了,如果你是win7系统,那么要在文件夹选项里面开启“显示已知文件扩展名”的选项,不然你保存的就是CloseAlipayservice.bat.txt。
编译过的程序在百度网盘,有需要的朋友可以去下载,WFControl.dll是按钮控件dll,CloseAlipayservice.bat是关闭阿里服务的批处理,这个不用手动执行,我程序里可以调用。MyProject.exe是这个清除阿里垃圾文件的主程序,这三个文件放到同一个文件夹就可以了,另外要提到是使用的.net,如果你机器没有安装.net framework 4.0类库的话,程序可能无法运行,大部分人的机器应该都没有安装微软的这个内部 Windows 组件吧,可以到微软官网下载,http://www.microsoft.com/zh-cn/download/details.aspx?id=17718 不过一般开发人员应该都装了
下面附上我的程序下载地址:
下载地址 http://yun.baidu.com/share/link?shareid=2844724897&uk=1476478914
最后是我的这个删除程序的关键代码:
private void gzX_Button2_Click(object sender, EventArgs e)
{
richTextBox1.AppendText("在目录中有如下文件:
");
string dir = @"C:Program Files (x86)alipay";
for (int i = 0; i < lstClearItems.Count; i++)
{
dir = lstClearItems[i];
MyProject.FILES.FileFolder fl = new MyProject.FILES.FileFolder();
fl.GetFileList(new DirectoryInfo(dir));
for (int j = 0; j < fl.FileNameList.Count; j++)
{
richTextBox1.AppendText(fl.FileNameList[j]);
richTextBox1.AppendText("
");
}
MyProject.FILES.OperatingFile.CreateFile(fl.FileNameList);
}
}
遍历文件类:
public class FileFolder
{
private List<string> filenamelist = new List<string>();
public List<string> FileNameList
{
get { return filenamelist; }
set { filenamelist = value; }
}
/// <summary>
/// 遍历获取指定文件夹下的文件
/// 用法: string dir = @"C:ProgramDataalipay";
/// GetFileList(new DirectoryInfo(dir));
/// 作者: sxdfdp@126.com
/// </summary>
/// <param name="info"></param>
public void GetFileList(FileSystemInfo info)
{
if (!info.Exists)
{
return;
}
DirectoryInfo dir = info as DirectoryInfo;
if (dir == null)
{
return;
}
FileSystemInfo[] files = dir.GetFileSystemInfos();
for (int i = 0; i < files.Length; i++)
{
FileInfo file = files[i] as FileInfo;
if (file != null)
{
//加上IF就之过滤出exe文件
//if (file.FullName.Substring(file.FullName.LastIndexOf(".")) == ".exe")
//{
filenamelist.Add(file.FullName);
//}
}
else
{
GetFileList(files[i]);
}
}
}
}
废掉其程序功能:
public static class OperatingFile
{
/// <summary>
/// 废掉其程序功能
/// 作者:sxdfdp@126.com
/// </summary>
/// <param name="strList"></param>
static public void CreateFile(List<string> strList)
{
//FolderBrowserDialog folder = new FolderBrowserDialog();
//folder.ShowDialog();
//string filepath = folder.SelectedPath;
//关闭阿里的所有服务,启用外部批处理执行
//Alipay payment client security service
//Alipay security business service
//TBSecSvc
string str = System.Windows.Forms.Application.StartupPath;
str += @"CloseAlipayservice.bat";
Process process = new Process();
process.StartInfo.FileName = str;
process.StartInfo.UseShellExecute = true;
process.Start();
process.WaitForExit();
string strfileNameWithoutExtension;
string strfileNameExtension;
try
{
for (int i = 0; i < strList.Count; i++)
{
//先将文件属性设置为普通,即拥有读写权限,否则会报访问拒绝
System.IO.DirectoryInfo reAttributes = new DirectoryInfo(strList[i]);
reAttributes.Attributes = FileAttributes.Normal;
string fipath = Path.GetDirectoryName(strList[i]);
strfileNameWithoutExtension = Path.GetFileNameWithoutExtension(strList[i]);
strfileNameExtension = Path.GetExtension(strList[i]);
string newFileName = fipath + "\" + strfileNameWithoutExtension + ".txt";
if (!File.Exists(newFileName))
{
FileStream fs = new FileStream(newFileName, FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Close();
fs.Close();
if (File.Exists(strList[i]))
{
File.Delete(strList[i]);
}
string fileoldName = newFileName;
string dfilenewName = System.IO.Path.ChangeExtension(fileoldName, strfileNameExtension);
File.Move(fileoldName, dfilenewName);
System.IO.DirectoryInfo DirInfo = new DirectoryInfo(dfilenewName);
//设置只读属性
DirInfo.Attributes = FileAttributes.ReadOnly;
}
}
MessageBox.Show("命令已成功执行,请到原文件夹查看文件及属性");
}
catch (Exception ex)
{
throw ex;
}
}
}
So,大体上就这么多,dp原创,转载请注明出处。另外本程序有个缺点,做的时候可能没考虑到,就是如果进程在运行的话,是删除不了的,需要你在任务管理器中手动结束进程然后再运行此清除程序,后面马上我会修改。
程序本身没什么技术含量,纯属厌恶阿里的行为而作。sxdfdp@126.com