电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 电脑学院 > 网络安全 > 正文
[组图]反病毒教程(中级篇)第9课
反病毒教程(中级篇)第9课
2009-5-10 17:48:36  文/佚名   出处:剑盟   

可能你的右键菜单没这么多选项,这里真正只与jpg文件关联的只有用ImageReady编辑,用Photoshop编辑,预览,打印这四个,对应注册表如图:

 




如何将预览放到右键第一个选项而又不以open为名,很简单,只要让它在注册表的位置排到另两个前面就可以了,注册表中的项是按字母顺序排列的,所以只要我的名字能比EdtIR8更靠前就行,比如以A开头的...
command当前一项是open时,它表示双击或右键选择第一项时所要执行的命令,只要有command的上一项,右键菜单都会出现一个选项而command表示选择这一项时所要执行的命令.
如果要将jpg用记事本打开,只要将rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1修改为notepad.exe %1即可,更好的写法应该是notepad.exe "%1",加上引号的目录是即使要打开的文件路径中包含空格,也可以打开.因为默认情况下,命令行的各参数间是以空格分隔的,如果文件路径中出现空格,空格前将不再认为是第一个参数,从而导致系统找不到指定文件等.但这里由于notepad的特殊性,不会出错的.

有兴趣的可以看看txt,exe,com,bat,vbs等文件的关联,如果病毒要修改文件关联,这几个是优先选择的.
其中exe的关联是比较特殊的,它的值为"%1" %*
这里的"%1"可以和上面一样理解,%*是指其他所有参数,这也是exe文件可以带参数运行的原因.

试试把它的值改成%1 %*,即去掉%1上的引号,很多程序仍然可以正常打开,有些却不行,原因是该exe文件路径中有空格,打开目录运行C:\Program Files\WinRAR\WinRAR.exe,结果如图:

 




病毒一般会直接把这个值改成病毒文件的路径,不带参数.此时当你双击exe文件时,运行的将是病毒,这种改法是最常见的.另一种改法是不直接修改exefile下面的项,而是这样修改:
新建一个项,名字任意,比如我取名为anti4,继续新建shell,command等项,将值改为病毒文件的路径.
然后,将HKEY_CLASSES_ROOT\.exe右边名称为默认的项的值改为anti4.
当你双击一个文件时,系统所做的工作是这样的:先判断文件的后缀,比如我双击的是一个exe文件,则系统会在HKEY_CLASSES_ROOT下面找名为.exe的项,读取它的值,比如它的值为anti4,那么系统再找名为anti4的项,再读取它下面shell\command的值,然后根据这里的命令打开.

刚刚是不是在我的右键菜单中看到了有个复制文件路径的命令,它是关联所有文件的,目的是为了自己使用方便,方法是这样的:
在HKEY_CLASSES_ROOT\*\shell下新建一个项,名称任意,直接取名为"复制文件路径"好了,在它下面新建一名为command的项,将它右边的值改成符合要求的命令,这个命令其实是一个程序文件,该程序的功能是读取命令行的第一个参数,并将该参数复制到系统剪贴板并退出,有能力的自己写一下这个程序,或者下载附件中的解压到某个路径下,command的值就改为这个程序的路径,后面加个半角空格,再加%1即可,比如d:\soft\system\copy.exe %1
这样只是关联了所有类型的文件,如果要关联文件夹,方法和上面一样的:
[HKEY_CLASSES_ROOT\Directory\shell\复制文件夹路径\command]默认=d:\soft\system\copy.exe %1
然后就是一些细节问题了,比如去掉第一个字下面的下划线,加个快捷键等.
[HKEY_CLASSES_RO/T\Directory\shell\复制文件夹路径]默认=复制文件夹路径(&C)

关联文件也可以到HKEY_CLASSES_ROOT\Folder\shell下去修改.
如果你要把记事本关联到所有文件,方法也是一样的,如果要关联某几种文件类型,就到特定的文件类型下修改即可.其他的东西大家可以自己探索下,比如修改某类文件的图标,不显示某类文件的扩展名等.

四.系统特殊文件夹
在我们的桌面上或其他地方有一些文件夹并不是真正的文件夹,而是一个OLE对象(组件类),比如我的电脑,控制面板等.系统使用一个叫做class id(CLSID)的一串16进制数字来标识它们(称为分类标识),注册表路径:HKEY_CLASSES_ROOT\CLSID
CLSID像居民身份证一样,是一个组件类的唯一标识.对于每个组件类,系统都分配一个唯一表示它的ID(IDentity),这个ID是根据当时的时间,机器地址等信息动态产生的,命名规则为{8-4-4-4-12},这里的数字表示16进制数的个数.
class id中的class在这里解释为对象,至于什么是对象,请看前面的课程.
比如我的文档的CLSID为450D8FBA-AD25-11D0-98A8-0800361B1103,使用时必须将CLSID用大括号括起来.
如果要修改某个的图标,只要修改HKEY_CLASSES_ROOT\CLSID\{xxxxx}\DefaultIcon的图标文件的路径.
大家先找到我的文档的CLSID,不要直接去找哈,用查找功能,不然会眼花的的.也不要试图去记住这串字符,我保证你是记不住的.我的文档图标的默认值为%SystemRoot%\system32\SHELL32.dll,-235.
InProcServer32这个项下的也是很重要的,它包含了线程模型(ThreadingModel),当你打开这个对象时,这里默认值处的DLL就会被加载,于是又给了病毒可乘之机.

附常用的CLSID:
我的文档:450D8FBA-AD25-11D0-98A8-0800361B1103
我的电脑:20D04FE0-3AEA-1069-A2D8-08002B30309D
网上邻居:208D2C60-3AEA-1069-A2D7-08002B30309D
回收站:645FF040-5081-101B-9F08-00AA002F954E
Internet Explorer:871C5380-42A0-1069-A2EA-08002B30309D
控制面板:21EC2020-3AEA-1069-A2DD-08002B30309D

五.勾子挂接启动
注册表位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
很多软件都会利用这个位置,病毒,安全软件等当然也会用.以达到随系统启动的目的,键名是一个CLSID,值为空.根据这个CLSID到HKEY_CLASSES_ROOT\CLSID下去查找,找到后展开InPrOcservEr32,右边就可以看到对应的DLL文件了.如果是病毒文件,则要删除这两个地方的信息.举例如下:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks]
键名{288BD9BD-F0DC-46B1-81B5-2B61DF8077CE}值为空
[HKEY_CLASSES_ROOT\CLSID\{288BD9BD-F0DC-46B1-81B5-2B61DF8077CE}\InPrOcservEr32]
默认值为abc.dll
清理时需要删除上面的键名以及整个HKEY_CLASSES_ROOT\CLSID\{288BD9BD-F0DC-46B1-81B5-2B61DF8077CE}项,有时候不是删除,而是修改,主要看这个CLSID是本来就有的还是病毒创建的.

上一页  [1] [2] [3] 

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    反病毒教程(高级篇)第11课
    反病毒教程(中级篇)第10课
    反病毒教程(中级篇)第8课
    反病毒教程(中级篇)第7课
    反病毒教程(提升篇)第6课
    反病毒教程(提升篇)第5课
    反病毒教程(基础篇)第4课
    反病毒教程(基础篇)第3课
    反病毒教程(基础篇)第2课
    反病毒教程(基础篇)第1课
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号