CN104050410A - 创建ActiveX控件的方法和装置 - Google Patents

创建ActiveX控件的方法和装置 Download PDF

Info

Publication number
CN104050410A
CN104050410A CN201310076745.1A CN201310076745A CN104050410A CN 104050410 A CN104050410 A CN 104050410A CN 201310076745 A CN201310076745 A CN 201310076745A CN 104050410 A CN104050410 A CN 104050410A
Authority
CN
China
Prior art keywords
activex control
created
isolation
module
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310076745.1A
Other languages
English (en)
Inventor
周振兴
赵歆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310076745.1A priority Critical patent/CN104050410A/zh
Publication of CN104050410A publication Critical patent/CN104050410A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

一种创建ActiveX控件的方法,包括以下步骤:挂钩浏览器进程用于创建ActiveX控件的函数;当浏览器进程调用所述函数时,跳转到挂钩函数;判断所述待创建的ActiveX控件是否需要隔离,若是,则创建新进程,通过所述新进程创建所述待创建的ActiveX控件并返回创建的ActiveX控件的实例指针,将所述新进程返回的实例指针进行序列化,将序列化获得的结果数据传送给所述浏览器进程。此外,还提供一种创建ActiveX控件的装置。上述方法和装置中,ActiveX不由浏览器进程创建,而由浏览器进程以外的新进程来创建,从而可实现隔离浏览器进程与ActiveX控件进程的目的,防止利用Active控件漏洞进行浏览器进程权限范围内的操作。

Description

创建ActiveX控件的方法和装置
【技术领域】
本发明涉及计算机网络技术领域,特别涉及一种创建ActiveX控件的方法和装置。
【背景技术】
ActiveX控件是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。许多浏览器的扩展功能,如Flash、网银等功能都是以ActiveX控件的形式提供的。
ActiveX控件有可能存在漏洞,黑客可利用ActiveX的漏洞进行ActiveX控件权限范围内的操作。一般的,ActiveX控件与浏览器内核(例如IE内核)运行在同一个进程(即浏览器进程)中。浏览器进程本身权限较高,可读写文件、布局内存、进行网络通信甚至读写注册表。一旦ActiveX控件存在漏洞,就有可能被黑客利用以进行读写文件、布局内存等高级权限操作,达到控制用户计算机的目的。
【发明内容】
基于此,有必要提供一种能隔离浏览器进程与ActiveX控件进程的创建ActiveX控件的方法。
一种创建ActiveX控件的方法,包括以下步骤:
挂钩浏览器进程用于创建ActiveX控件的函数;
当浏览器进程调用所述函数时,跳转到挂钩函数;
判断所述待创建的ActiveX控件是否需要隔离;
若是,则创建新进程,通过所述新进程创建所述待创建的ActiveX控件并返回创建的ActiveX控件的实例指针,将所述新进程返回的实例指针进行序列化,将序列化获得的结果数据传送给所述浏览器进程。
此外,还有必要提供一种能隔离浏览器进程与ActiveX控件进程的创建ActiveX控件的装置。
一种创建ActiveX控件的装置,包括:
挂钩模块,用于挂钩浏览器进程用于创建ActiveX控件的函数;
启动模块,用于当浏览器进程调用所述函数时,启动隔离判断模块;
隔离判断模块,用于判断所述待创建的ActiveX控件是否需要隔离;
第一控件创建模块,用于若所述待创建的ActiveX控件需要隔离,则创建新进程,通过所述新进程创建所述待创建的ActiveX控件并返回创建的ActiveX控件的实例指针;
序列化模块,用于将所述新进程返回的实例指针进行序列化;
消息传送模块,用于将序列化获得的结果数据传送给所述浏览器进程。
上述创建ActiveX控件的方法和装置,挂钩浏览器进程用于创建ActiveX控件的函数,当该函数待创建的ActiveX控件需要隔离时,创建新进程,通过新进程创建待创建的ActiveX控件并返回创建的ActiveX控件的实例指针,进一步将新进程返回的实例指针进行序列化,将序列化获得的结果数据传送给浏览器进程,ActiveX不由浏览器进程创建,而由浏览器进程以外的新进程来创建,从而可实现隔离浏览器进程与ActiveX控件进程的目的,防止利用Active控件漏洞进行浏览器进程权限范围内的操作。
【附图说明】
图1为本发明一个实施例中的创建ActiveX控件的方法的流程示意图;
图2为本发明一个实施例中的创建ActiveX控件的方法的原理示意图;
图3为本发明一个实施例中的创建ActiveX控件的装置的结构示意图。
【具体实施方式】
如图1所示,在本发明一个实施例中,一种创建ActiveX控件的方法,包括以下步骤:
步骤S10,挂钩浏览器进程用于创建ActiveX控件的函数。
在一个实施例中,浏览器为IE(Internet Explorer)。
步骤S20,当浏览器进程调用用于创建ActiveX控件的函数时,跳转到挂钩函数。
浏览器进程解析网页源代码的过程中,读取到<object>标签后,将调用Windows标准COM库函数中的CoGetClassObject函数创建<object>标签的CLSID属性对应的ActiveX控件。CLSID即Class ID(类标识)。
挂钩某一目标函数,即改写目标函数的函数头,使得目标函数执行时跳转到挂钩函数(又称为过滤函数或钩子函数),以执行挂钩函数的后续流程步骤。挂钩函数的流程步骤包括以下的步骤S30~S60。可使用Windows的Detour挂钩函数库中的函数来进行挂钩操作。
本实施例中,可挂钩CoGetClassObject函数。浏览器进程创建任何形式的ActiveX控件都会调用CoGetClassObject函数,而且该函数属于标准COM库函数,因此挂钩这个函数不仅全面而且稳定。
步骤S30,判断上述用于创建ActiveX函数待创建的ActiveX控件是否需要隔离,若是,则执行步骤S40,若否,则执行步骤S60。
隔离某一控件即将实现控件功能的程序交由具有低权限的进程来执行,以防止利用程序漏洞进行高权限的非法操作。在一个实施例中,可判断待创建的ActiveX控件是否为进程内组件和是否属于预设的需要隔离的ActiveX控件,若是,则判定待创建的ActiveX控件需要隔离,若否,则判定待创建的ActiveX控件不需要隔离。只有在待创建的ActiveX控件为进程内组件且属于预设的需要隔离的ActiveX控件时,才判定待创建的ActiveX控件需要隔离。
在另一个实施例中,可判断待创建的ActiveX控件是否为进程内组件或是否属于预设的需要隔离的ActiveX控件,若是,则判定待创建的ActiveX控件需要隔离,若否,则判定待创建的ActiveX控件不需要隔离。待创建的ActiveX控件为进程内组件或者待创建的ActiveX控件属于预设的需要隔离的ActiveX控件时,上述两个条件只要有一个成立,即判定待创建的ActiveX控件需要隔离。
进程内组件为与浏览器处于同一进程的组件。具体的,可根据CoGetClassObject函数的第二个参数dwClsContext判断该函数待创建的ActiveX控件是否为进程内组件,若dwClsContext的最低位被置位,则该待创建的ActiveX控件为进程内组件。dwClsContext的值与上述<object>标签的CLSID属性相对应。
在一个实施例中,可维护一个需要隔离的ActiveX控件列表,判断待创建的ActiveX控件是否包含于该列表中。
步骤S40,创建新进程,通过新进程创建上述待创建的ActiveX控件并返回创建的ActiveX控件的实例指针。
具体的,新进程可调用Windows标准COM库函数中的CoCreateInstance函数。CoCreateInstance函数调用Windows标准COM库函数中的CoGetClassObject函数。CoGetClassObject函数将待创建ActiveX控件对应的动态链接库(DLL)加载到新进程中,并通过导出函数获得待创建ActiveX控件的工厂对象,将工厂对象返回给CoCreateInstance函数。CoCreateInstance函数通过工厂对象创建ActiveX控件的实例。进一步的,新进程返回实例指针。
上述新进程所属的用户组只包含访客用户组或/且其权限全部被移除。当新进程所属的用户组只包含访客用户组,或新进程的权限全部被移除后,则该新进程属于低权限进程,其权限不包括读写文件、布局内存、进行网络通信、读写注册表、关机、调试和增加进程工作集等高级权限。从而可避免利用ActiveX控件漏洞对用户计算机进行高级权限操作。
步骤S50,将新进程返回的实例指针进行序列化,将序列化获得的结果数据传送给浏览器进程。
序列化(Marshal)为将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,将对象的当前状态写入到临时或持久性存储区。可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。步骤S50将实例指针进行序列化并将序列化获得的结果数据传送给浏览器进行,实现了在新进程与浏览器进程之间传递ActiveX控件实例指针。
上述创建ActiveX控件的方法,挂钩浏览器进程用于创建ActiveX控件的函数,当该函数待创建的ActiveX控件需要隔离时,创建新进程,通过新进程创建待创建的ActiveX控件并返回创建的ActiveX控件的实例指针,进一步将新进程返回的实例指针进行序列化,将序列化获得的结果数据传送给浏览器进程,ActiveX不由浏览器进程创建,而由浏览器进程以外的新进程来创建,从而可实现隔离浏览器进程与ActiveX控件进程的目的,防止利用Active控件漏洞进行浏览器进程权限范围内的操作。
在一些浏览器提供的沙箱机制中,通过驱动程序将浏览器读写文件、读写注册表的等高权限级别操作重定位到其它的地方,当浏览器退出时,通过驱动程序负责将浏览器写入的信息删除,以达到控制ActiveX控件权限、避免利用ActiveX控件漏洞进行浏览器进程所具有的高权限级别操作的目的。但是,驱动程序可使浏览器变得臃肿并增加浏览器的不稳定因素。上述创建ActiveX控件的方法,也可以防止利用Active控件漏洞进行浏览器进程权限范围内的操作,而与沙箱机制相比较而言,不需要驱动程序的配合,从而可避免浏览器变得臃肿并增加浏览器的稳定性。
在步骤S50之后,上述创建ActiveX控件的方法还包括步骤:浏览器进程读取序列化获得的结果数据,将读取的结果数据反序列化,以获得创建的ActiveX控件的实例指针。
在一个实施例中,步骤S50可调用Windows标准COM库函数中的CoMarshalInterface函数将返回的实例指针进行序列化,并使用进程间通信机制(IPC机制)将序列化获得的结果数据传送给浏览器进程。浏览器进程可调用Windows标准COM库函数中的CoUnmarshalInterface函数对序列化获得的结果数据进行反序列化。在另一个实施例中,步骤S50可调用Windows的RegisterActiveObject函数将返回的实例指针进行序列化。浏览器进程可调用Windows的GetActiveObject函数对序列化获得的结果数据进行反序列化。
浏览器进程获取到ActiveX控件的实例指针后,即可进行与ActiveX控件相关的操作。
步骤S60,传送不需要隔离ActiveX控件的消息给浏览器进程。
在步骤S60之后,上述创建ActiveX控件的方法还包括步骤:浏览器进程启动用于创建ActiveX控件的函数,以创建ActiveX控件。待创建的ActiveX控件不需要隔离时,则浏览器进程按照未被挂钩的流程创建ActiveX控件,此时,浏览器与ActiveX处于同一进程。
上述新进程的生命周期需要新进程自身来控制。上述新进程可监控挂钩函数的进程是否退出,若是,则清理相关的残余数据并退出。
上述新进程通过消息循环机制处理消息,以保证与挂钩函数的进程之间的通信。
图2为一个实施例中的创建ActiveX控件的方法的原理示意图。如图2所示,挂钩浏览器进程用于创建ActiveX控件的CoGetClassObject函数。浏览器进程解析网页源代码的过程中,读取到<object>标签后,调用Windows标准COM库函数中的CoGetClassObject函数创建<object>标签的CLSID属性对应的ActiveX控件。当浏览器进程调用CoGetClassObject函数时,跳转到挂钩函数。挂钩函数进程判断CoGetClassObject函数待创建的ActiveX控件是否需要隔离,若是,则创建新进程,通过新进程创建待创建的ActiveX控件并返回创建的ActiveX控件的实例指针。进一步的,挂钩函数将新进程返回的实例指针进行序列化,将序列化获得的结果数据传送给浏览器进程。浏览器进程读取序列化获得的结果数据,将读取的结果数据反序列化,以获得创建的ActiveX控件的实例指针。
如图3所示,在一个实施例中,一种创建ActiveX控件的装置,包括挂钩模块10、启动模块20、隔离判断模块30、第一控件创建模块40、序列化模块50和消息传送模块60,其中:
挂钩模块10用于挂钩浏览器进程用于创建ActiveX控件的函数。
在一个实施例中,浏览器为IE(Internet Explorer)。浏览器进程解析网页源代码的过程中,读取到<object>标签后,将调用Windows标准COM库函数中的CoGetClassObject函数创建<object>标签的CLSID属性对应的ActiveX控件。CLSID即Class ID(类标识)。
挂钩模块10可使用Windows的Detour挂钩函数库中的函数来进行挂钩操作。
本实施例中,挂钩模块10可挂钩CoGetClassObject函数。浏览器进程创建任何形式的ActiveX控件都会调用CoGetClassObject函数,而且该函数属于标准COM库函数,因此挂钩这个函数不仅全面而且稳定。
启动模块20用于当浏览器进程调用用于创建ActiveX控件的函数时,启动隔离判断模块30。
隔离判断模块30用于判断上述用于创建ActiveX函数待创建的ActiveX控件是否需要隔离。
隔离某一控件即将实现控件功能的程序交由具有低权限的进程来执行,以防止利用程序漏洞进行高权限的非法操作。
在一个实施例中,隔离判断模块30可判断待创建的ActiveX控件是否为进程内组件和是否属于预设的需要隔离的ActiveX控件,若是,则判定待创建的ActiveX控件需要隔离,若否,则判定待创建的ActiveX控件不需要隔离。只有在待创建的ActiveX控件为进程内组件且属于预设的需要隔离的ActiveX控件时,隔离判断模块30才判定待创建的ActiveX控件需要隔离。
在另一个实施例中,可判断待创建的ActiveX控件是否为进程内组件或是否属于预设的需要隔离的ActiveX控件,若是,则判定待创建的ActiveX控件需要隔离,若否,则判定待创建的ActiveX控件不需要隔离。待创建的ActiveX控件为进程内组件或者待创建的ActiveX控件属于预设的需要隔离的ActiveX控件时,上述两个条件只要有一个成立,隔离判断模块30即判定待创建的ActiveX控件需要隔离。
进程内组件为与浏览器处于同一进程的组件。具体的,隔离判断模块30可根据CoGetClassObject函数的第二个参数dwClsContext判断该函数待创建的ActiveX控件是否为进程内组件,若dwClsContext的最低位被置位,则该待创建的ActiveX控件为进程内组件。dwClsContext的值与上述<object>标签的CLSID属性相对应。
在一个实施例中,可维护一个需要隔离的ActiveX控件列表,隔离判断模块30可判断待创建的ActiveX控件是否包含于该列表中。
第一控件创建模块40用于若待创建的ActiveX控件需要隔离,则创建新进程,通过新进程创建上述待创建的ActiveX控件并返回创建的ActiveX控件的实例指针。
具体的,新进程可调用Windows标准COM库函数中的CoCreateInstance函数。CoCreateInstance函数调用Windows标准COM库函数中的CoGetClassObject函数。CoGetClassObject函数将待创建ActiveX控件对应的动态链接库(DLL)加载到新进程中,并通过导出函数获得待创建ActiveX控件的工厂对象,将工厂对象返回给CoCreateInstance函数。CoCreateInstance函数通过工厂对象创建ActiveX控件的实例。进一步的,新进程返回实例指针。
上述新进程所属的用户组只包含访客用户组和/或新进程的权限全部被移除。当新进程所属的用户组只包含访客用户组,或新进程的权限全部被移除后,则该新进程属于低权限进程,其权限不包括读写文件、布局内存、进行网络通信、读写注册表、关机、调试和增加进程工作集等高级权限。从而可避免利用ActiveX控件漏洞对用户计算机进行高级权限操作。
序列化模块50用于将新进程返回的实例指针进行序列化。
消息传送模块60用于将序列化获得的结果数据传送给浏览器进程。
序列化(Marshal)为将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,将对象的当前状态写入到临时或持久性存储区。可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。将实例指针进行序列化并将序列化获得的结果数据传送给浏览器进行,实现了在新进程与浏览器进程之间传递ActiveX控件实例指针。
上述创建ActiveX控件的装置,挂钩浏览器进程用于创建ActiveX控件的函数,当该函数待创建的ActiveX控件需要隔离时,创建新进程,通过新进程创建待创建的ActiveX控件并返回创建的ActiveX控件的实例指针,进一步将新进程返回的实例指针进行序列化,将序列化获得的结果数据传送给浏览器进程,ActiveX不由浏览器进程创建,而由浏览器进程以外的新进程来创建,从而可实现隔离浏览器进程与ActiveX控件进程的目的,防止利用Active控件漏洞进行浏览器进程权限范围内的操作。而且,上述装置与沙箱机制相比较而言,不需要任何驱动程序的配合,从而可避免浏览器变得臃肿并增加浏览器的稳定性。
上述创建ActiveX控件的装置还包括消息接收模块和反序列化模块(图中未示出),消息接收模块读取序列化获得的结果数据,反序列化模块将读取的结果数据反序列化,以获得创建的ActiveX控件的实例指针。上述挂钩模块10、隔离判断模块30、第一控件创建模块40、序列化模块50和消息传送模块60由挂钩函数进程执行,消息接收模块和反序列化模块由浏览器进程执行。
在一个实施例中,序列化模块50可调用Windows标准COM库函数中的CoMarshalInterface函数将返回的实例指针进行序列化,消息传送模块60可使用进程间通信机制(IPC机制)将序列化获得的结果数据传送给浏览器进程。反序列化模块可调用Windows标准COM库函数中的CoUnmarshalInterface函数对序列化获得的结果数据进行反序列化。在另一个实施例中,序列化模块50可调用Windows的RegisterActiveObject函数将返回的实例指针进行序列化。反序列化模块可调用Windows的GetActiveObject函数对序列化获得的结果数据进行反序列化。
浏览器进程获取到ActiveX控件的实例指针后,即可进行与ActiveX控件相关的操作。
在一个实施例中,消息传送模块60还用于若上述待创建的ActiveX控件不需要隔离,则传送不需要隔离ActiveX控件的消息给浏览器进程。上述创建ActiveX控件的装置还包括第二控件创建模块(图中未示出),用于启动用于创建ActiveX控件的函数,以创建ActiveX控件。第二控件创建模块由浏览器进程执行。待创建的ActiveX控件不需要隔离时,则浏览器进程按照未被挂钩的流程创建ActiveX控件,此时,浏览器与ActiveX处于同一进程。
上述新进程的生命周期需要新进程自身来控制。上述新进程可监控挂钩函数的进程是否退出,若是,则清理相关的残余数据并退出。
上述新进程通过消息循环机制处理消息,以保证与挂钩函数的进程之间的通信。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序控制相关的硬件来完成的,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种创建ActiveX控件的方法,包括:挂钩浏览器进程用于创建ActiveX控件的函数;
当浏览器进程调用所述函数时,跳转到挂钩函数;
判断所述待创建的ActiveX控件是否需要隔离;
若是,则创建新进程,通过所述新进程创建所述待创建的ActiveX控件并返回创建的ActiveX控件的实例指针;
将新进程返回的实例指针进行序列化,将序列化获得的结果数据传送给所述浏览器进程。
2.根据权利要求1所述的创建ActiveX控件的方法,其特征在于,判断所述待创建的ActiveX控件是否需要隔离的步骤为:
判断所述待创建的ActiveX控件是否为进程内组件和是否属于预设的需要隔离的ActiveX控件,若是,则判定所述待创建的ActiveX控件需要隔离,若否,则判定所述待创建的ActiveX控件不需要隔离。
3.根据权利要求1所述的创建ActiveX控件的方法,其特征在于,判断所述待创建的ActiveX控件是否需要隔离的步骤为:
判断所述待创建的ActiveX控件是否为进程内组件或是否属于预设的需要隔离的ActiveX控件,若是,则判定所述待创建的ActiveX控件需要隔离,若否,则判定所述待创建的ActiveX控件不需要隔离。
4.根据权利要求1所述的创建ActiveX控件的方法,其特征在于,所述新进程所属的用户组只包含访客用户组或/且其权限全部被移除。
5.根据权利要求1所述的创建ActiveX控件的方法,其特征在于,在将序列化获得的结果传送给所述浏览器进程的步骤之后,所述方法还包括:
所述浏览器进程读取所述结果数据,将读取的所述结果数据反序列化,以获得所述创建的ActiveX控件的实例指针。
6.根据权利要求1至5任一所述的创建ActiveX控件的方法,其特征在于,若所述待创建的ActiveX控件不需要隔离,则传送不需要隔离ActiveX控件的消息给所述浏览器进程,所述浏览器进程调用所述用于创建ActiveX控件的函数。
7.一种创建ActiveX控件的装置,其特征在于,包括:
挂钩模块,用于挂钩浏览器进程用于创建ActiveX控件的函数;
启动模块,用于当浏览器进程调用所述函数时,启动隔离判断模块;
隔离判断模块,用于判断所述待创建的ActiveX控件是否需要隔离;
第一控件创建模块,用于若所述待创建的ActiveX控件需要隔离,则创建新进程,通过所述新进程创建所述待创建的ActiveX控件并返回创建的ActiveX控件的实例指针;
序列化模块,用于将所述新进程返回的实例指针进行序列化;
消息传送模块,用于将序列化获得的结果数据传送给所述浏览器进程。
8.根据权利要求7所述的创建ActiveX控件的装置,其特征在于,所述隔离判断模块用于判断所述待创建的ActiveX控件是否为进程内组件和是否属于预设的需要隔离的ActiveX控件,若是,则判定所述待创建的ActiveX控件需要隔离,若否,则判定所述待创建的ActiveX控件不需要隔离。
9.根据权利要求7所述的创建ActiveX控件的装置,其特征在于,所述隔离判断模块用于判断所述待创建的ActiveX控件是否为进程内组件或是否属于预设的需要隔离的ActiveX控件,若是,则判定所述待创建的ActiveX控件需要隔离,若否,则判定所述待创建的ActiveX控件不需要隔离。
10.根据权利要求7所述的创建ActiveX控件的装置,其特征在于,所述新进程所属的用户组只包含访客用户组或/且其权限全部被移除。
11.根据权利要求7所述的创建ActiveX控件的装置,所述装置还包括:
消息接收模块,用于读取所述结果数据;
反序列化模块,用于将读取的所述结果数据反序列化,以获得所述创建的ActiveX控件的实例指针;
所述挂钩模块、隔离判断模块、第一控件创建模块、序列化模块和消息传送模块由挂钩函数进程执行,所述消息接收模块和反序列化模块由所述浏览器进程执行。
12.根据权利要求7至11任一所述的创建ActiveX控件的装置,其特征在于,所述消息传送模块还用于若所述待创建的ActiveX控件不需要隔离,则传送不需要隔离ActiveX控件的消息给所述浏览器进程;
所述装置还包括第二控件创建模块,用于调用所述用于创建ActiveX控件的函数;
所述第二控件创建模块由所述浏览器进程执行。
CN201310076745.1A 2013-03-11 2013-03-11 创建ActiveX控件的方法和装置 Pending CN104050410A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310076745.1A CN104050410A (zh) 2013-03-11 2013-03-11 创建ActiveX控件的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310076745.1A CN104050410A (zh) 2013-03-11 2013-03-11 创建ActiveX控件的方法和装置

Publications (1)

Publication Number Publication Date
CN104050410A true CN104050410A (zh) 2014-09-17

Family

ID=51503230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310076745.1A Pending CN104050410A (zh) 2013-03-11 2013-03-11 创建ActiveX控件的方法和装置

Country Status (1)

Country Link
CN (1) CN104050410A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274008A (zh) * 2020-01-08 2020-06-12 百度在线网络技术(北京)有限公司 进程控制方法、服务器和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1713573A (zh) * 2004-06-22 2005-12-28 腾讯科技(深圳)有限公司 一种网页插件选择下载的实现方法及其装置
US20110173589A1 (en) * 2010-01-13 2011-07-14 Microsoft Corporation Cross-Browser Interactivity Testing
CN102314510A (zh) * 2011-09-15 2012-01-11 奇智软件(北京)有限公司 一种浏览器控件执行方法及系统
CN102929656A (zh) * 2012-09-28 2013-02-13 北京奇虎科技有限公司 使用浏览器中内置ActiveX插件的方法和客户端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1713573A (zh) * 2004-06-22 2005-12-28 腾讯科技(深圳)有限公司 一种网页插件选择下载的实现方法及其装置
US20110173589A1 (en) * 2010-01-13 2011-07-14 Microsoft Corporation Cross-Browser Interactivity Testing
CN102314510A (zh) * 2011-09-15 2012-01-11 奇智软件(北京)有限公司 一种浏览器控件执行方法及系统
CN102929656A (zh) * 2012-09-28 2013-02-13 北京奇虎科技有限公司 使用浏览器中内置ActiveX插件的方法和客户端

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274008A (zh) * 2020-01-08 2020-06-12 百度在线网络技术(北京)有限公司 进程控制方法、服务器和电子设备

Similar Documents

Publication Publication Date Title
CN103778373B (zh) 病毒检测方法及装置
CN104598823A (zh) 一种安卓系统中内核级rootkit检测方法及其系统
CN106126215A (zh) 业务规则脚本生成方法及装置
CN101645020A (zh) 虚拟操作系统创建方法
WO2020019458A1 (zh) 混合应用的页面切换方法、框架、计算机设备及存储介质
WO2015017587A1 (en) Managing configurations of computing terminals
US20060129880A1 (en) Method and system for injecting faults into a software application
CN104731622B (zh) 一种应用程序的加载方法、装置和移动终端
US10768944B2 (en) Method and system for customizing desktop launcher of mobile terminal
CN103177210A (zh) 一种在Android中植入动态污点分析模块的方法
CN102902911A (zh) 一种在Java虚拟机中安全运行第三方代码的方法
CN104572394B (zh) 进程监控方法及装置
CN104766021A (zh) 权限控制系统及方法
CN104063303B (zh) 一种获取和释放root权限的方法
CN104035842A (zh) 一种删除和恢复内置应用程序的方法
CN108376066A (zh) 代码处理装置及代码处理方法
CN104572431A (zh) 一种测试方法及装置
CN104272251A (zh) 修改系统管理存储器页表的可执行位
CN109388435A (zh) 实现app同时多次开启操作的方法和装置
CN103560934A (zh) 一种电力猫生产测试方法及装置
CN112818341B (zh) 一种基于操作系统过滤层驱动的外接设备管控方法及装置
CN101425094B (zh) 一种改变容器窗口的方法和装置
CN112965760A (zh) 修改根目录的方法、装置、电子设备和可读存储介质
CN104050410A (zh) 创建ActiveX控件的方法和装置
CN101777002B (zh) 一种基于虚拟化的软件运行方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140917