[发明专利]一种解决ACTIVE X组件版本冲突的轻量级虚拟化方法无效
申请号: | 200910014190.1 | 申请日: | 2009-02-24 |
公开(公告)号: | CN101493766A | 公开(公告)日: | 2009-07-29 |
发明(设计)人: | 赵启杰 | 申请(专利权)人: | 浪潮集团山东通用软件有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/445 |
代理公司: | 济南信达专利事务所有限公司 | 代理人: | 姜 明 |
地址: | 250014山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种解决ACTIVE X组件版本冲突的轻量级虚拟化方法,是首先要对ActiveX组件进行版本隔离,将ActiveX组件在注册表里的注册信息进行替代存储,让不同的应用程序独享一份ActiveX注册信息;其次构建虚拟的注册表运行环境,不修改原有程序让独享的注册信息与真实的注册信息进行“合并”,实现对原有程序的透明,本发明的方法既解决了版本冲突,又实现了无需注册ActiveX组件即可使用的功能。该技术的显著特点是虚拟技术的轻量性、选择性,不仅有效提高软件系统的稳定性,又能节省软、硬件资源。 | ||
搜索关键词: | 一种 解决 active 组件 版本 冲突 轻量级 虚拟 方法 | ||
【主权项】:
1.一种解决ACTIVEX组件版本冲突的轻量级虚拟化方法,其特征在于,首先要对ActiveX组件进行版本隔离,将ActiveX组件在注册表里的注册信息进行替代存储,让不同的应用程序独享一份ActiveX注册信息;其次构建虚拟的注册表运行环境,不修改原有程序让独享的注册信息与真实的注册信息进行“合并”,实现对原有程序的透明,具体步骤如下:1)采用API Hook技术,对COM组件实例化时调用的函数进行“短路”,即通过API Hook,改变一个系统API的原有功能,通过hook“接触”到需要修改的API函数入口点,改变它的地址指向新的自定义的函数,通过自定义函数进行控制;2)确定Hook的目标:确定ole32.dll中的CoGetClassObject、CoCreateInstance、CoGetClassObjectFromURL这三个函数是需要Hook的关键函数,首先定义它的一个“替代品”然后在“替代品”内部根据传入的参数clsid到虚拟注册表里查询是否有对应的键值,有则继续查询此clsid对应的二进制文件,并加载此文件,接下来获取D11GetClassObject函数的地址,获取到该函数的地址后,则调用该函数;上述步骤任意一步不满足,则运行原来的CoGetClassObject,这个流程结束完毕,即实现“私有”ActiveX组件的注册与加载运行;3)截获进程内对注册表的访问,对系统访问注册表的函数进行改进;4)控制进程对注册表的访问,首先到虚拟注册表里查找相关项目,虚拟注册表内有相关条目则返回其内容,没有相关项目,则到真实注册表内查找,实现“虚”、“实”的融合,并对原有程序透明,采取与上述CoGetClassObject函数的处理相似的流程,对打开注册表、枚举注册表项、读取注册值的函数进行Hook,这样就在更基础的层次上进行了虚拟,满足.NET组件实例化的“私有加载”。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮集团山东通用软件有限公司,未经浪潮集团山东通用软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910014190.1/,转载请声明来源钻瓜专利网。
- 上一篇:嵌入式系统的动态加载系统及其加载方法
- 下一篇:数据写入方法与装置