首页
社区
课程
招聘
[原创]右键菜单加载顺序被打乱的解决办法
发表于: 2009-5-30 09:58 8264

[原创]右键菜单加载顺序被打乱的解决办法

2009-5-30 09:58
8264

今天,调试一个程序,这个程序有一个加入资源管理器右键菜单的功能,不知道什么原因,突然我发现所有的exe文件都不开了,点击右键发现,右键菜单的第一个项目已经不是“打开”,而是HKEY_CLASSES_ROOT\*\shell\下面的第一个键值,这里为[HKEY_CLASSES_ROOT\*\shell\Add to HFS],所以无论我打开任何exe程序都是把程序应用到HFS这个程序中。心中甚感郁闷,于是开始了一番追查,报告结果如下。
      以一个exe文件的右键菜单为例,主要说说文件的右键菜单,目录和磁盘的差不多,这是我修复后的右键菜单截图。


右边是右键菜单内容,左侧为注册表中对应的内容。正常情况下,右键菜单加载时,系统一般是先加载HKEY_CLASSES_ROOT\exefile\shell下的内容,然后再加载所有自定义菜单项HKEY_CLASSES_ROOT\*\shell。右键菜单一般按照字母顺序排列,但是将open项至于最前,并且加黑加粗,即为双击激活的命令。但是由于出错,我的系统刚好出现了交换,先执行*项下的内容,然后执行exefile项下的内容,由于双击执行的是右键菜单的第一个命令,结果我双击任何exe时都执行的是“add to HFS”命令,从而无法打开程序,增添了很多麻烦,这倒是导致了一种可能的加载特定程序的方法,如果可以找到这个原因那就可以决定加载的顺序并加以利用。在这种状态下exe关联文件是没问题的,用sreng等程序检测exe关联文件结果正常,工具检测exe的关联是否正确,检测的是HKEY_CLASSES_ROOT\exefile\shell\open\command\下的默认键值“"%1" %*”是否被修改,而我们并没有改变这个键值,而是改变了加载顺序。以前的病毒是通过修改exe的关联文件及HKEY_CLASSES_ROOT\exefile\shell\open\command下的默认键值达到启动程序时同时加载恶意程序,因为open项是右键第一个及双击时激活的命令。如果了解了右键菜单的加载顺序,那么就可能出现exe文件关联正常,但是双击exe时可以运行对应程序同时又加载特定程序的现象,因为改变加载顺序后只需要在HKEY_CLASSES_ROOT\*\shell下伪造一个“open”项就可以了。
       是什么因素决定了这个加载的顺序?我尝试了多种方法去测试,“open”是一个特别的项,无论在注册表相应项中处于什么位置,在右键菜单中总是位于第一位的,方便打开程序。首先是把HKEY_CLASSES_ROOT\exefile\shell下的所有键值删除,从另外一台电脑里面copy一个正常的,然后覆盖,问题一样,说明不是这里的问题;我删除了HKEY_CLASSES_ROOT\*\shell下面的所有键值,这时候双击程序是正常了,因为*项下为空那么exefile下的open项就是第一个命令。但是是只要在HKEY_CLASSES_ROOT\*\shell下面重新定义一个键值比如重新添加一个右键菜单test,双击马上就不能打开程序,因为这时执行的第一个命令是test,说明与添加右键菜单键值的前后顺序无关;还尝试了很多方法,都无法把“打开”放到第一位。至此放弃寻找加载顺序的原理。只能归因于系统出错,但是出错的在哪里?
        找不出原因了,那么我们尝试修复,既然有特定键值,那么系统一定有监视exefile这个项,我们删除这个项目下面的所有键值,然后用sreng重新修复exe关联文件,建立HKEY_CLASSES_ROOT\exefile\shell\Open\Command项,恢复exefile和系统之间的联系。至此“打开”重回右键菜单的第一位。  


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主,,你那个管理鼠标右键菜单的软件,叫什么名字,我也收一个,等你回执。
2009-5-30 10:01
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
有点意思
2009-5-30 16:13
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
第一个图是注册表里的东西 用的可能是regworkshop
第二个图人家都已经说明了
2009-5-30 18:06
0
游客
登录 | 注册 方可回帖
返回
//