注册表-删不掉的桌面快捷

近接到了一个比较奇怪的案例:桌面上有恶意软件的广告,但是删除不了,也不能重命名。在IceSword和其它工具中找不到它的存在。显然问题出在了Explorer上。正好我的桌面上也有一个请不走的蓝牙链接。如左图:

用FixIE这个工具清理掉它,发现其实秘密就在注册表HKEY_CURRENT_USER或者HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNamespace项下,这个项顾名思义就是Explorer的一些配置。
Explorer提供一种名叫“Namespace”的配置,可以在桌面上添加快捷方式。这种快捷方式就像上面提到的那样,删除不掉而且在注册表中又很难直接搜索到(回收站就是这么来的)。如果我们想添加一个,具体怎么做呢?青色咖啡在这里说一下:
首先,我们需要一个CLSID。听说过COM组件的同学们可能知道,它是一个128位的大数,意在概率意义上标识“唯一”的COM组件。CLSID完全可以手写一个,只要不与已知的重名就可以了。然后编写一个COM组件。实际上现在没有必要去写一个真正的COM组件。我们只需要在注册表上做手脚罢了。
 
1.注册一个假的CLSID。
现在点击“开始”,“运行”,输入“regedit.exe”确定。打开注册表HKEY_LOCAL_MACHINESOFTWAREClassesCLSID 后,新建一个项。项名为随便写的一个128位CLSID,格式和其他CLSID尽量保持一致,内容可以瞎编。只要不和已知的重复就可以了。例如我的这个就基本写了一堆0。然后在右边的“默认”键中填写我们需要显示的文字(比方我们要做打开任务管理器的快捷方式):
在这个CLSID下再新建一个子项,项名为Shell,再在Shell下面再创建一个子项,项名为菜单的名称,再在这个项下面键一个名为Command的子项,然后将右边的“默认”一键的键值设为taskmgr.exe。
-----------------如果打开网页就写成“explorer http://www.baidu.com/”就可以了!
如左图:
然后进行最关键的一步操作(之一)!在我们编的那个CLSID项下建立一个名为ShellFolder的项,并在它下建立一个名为Attributes的二进制键,键值为00 00 00 00。这一步的重要性是——有了它之后,右击图标后“删除”选项就没了~~~
如果觉得想搞个图标,就在我们的CLSID项建立一个名为DefaultIcon的项,在右边的“默认”键中填入想要的图标的路径就可以了。(可以使用shell32.dll中的图标,如下图)
Shell32.dll,130是一个蝴蝶的图标,看不起不错。到这里,我们伪造的CLSID就完成了。之所以说伪造,因为我们没有实际的COM组件,甚至连InprocServer32项也没有,很好很山寨。
 
2.设置桌面快捷方式
现在进入项:
HKEY_CURRENT_USER或者HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNamespace
新建一个项,项名就是我们的CLSID值。保存后刷新桌面。看看效果还不错吧?
 

知道怎么制作的就知道怎么删除了吧,呵呵..

原文地址:https://www.cnblogs.com/FKdelphi/p/4664928.html