一种禁止启动项启动的方法和装置的制造方法_2

文档序号:8258079阅读:来源:国知局
动项的相关的启动项目写入配置文件中;
[0072]在本发明实施例中,可以将启动项目写入配置文件中,以对目标启动项进行禁止。
[0073]需要说明的是,本领域技术人员可以根据实际需要设置配置文件,配置文件中除了启动项目外,还可以写入其他信息,本发明实施例对此不加以限制。
[0074]步骤104,在操作系统启动时,读取所述配置文件;
[0075]本发明实施例在操作系统启动时,读取配置文件中的启动项目,以禁止启动的目标启动项。
[0076]步骤105,按照所述配置文件中的启动项目禁止对应的目标启动项启动。
[0077]本发明实施例在操作系统启动时,禁止启动项目对应的启动项启动。
[0078]本发明实施例确定操作系统中的目标启动项,将启动项相关的启动项目写入配置文件中,在操作系统启动时,读取配置文件中的启动项目,以禁止对应的目标启动项启动,通过在先将目标启动项相关的启动项目写入配置文件中,下次操作系统启动时进行禁止,解决了某些应用程序进行注册表回写等情况导致的禁止无效的问题,实现了对顽固启动项的禁止,提高了禁止启动的效率。
[0079]在本发明的一种可选实施例中,步骤104可以包括如下子步骤:
[0080]子步骤S31,在操作系统的内核模式中拦截所述启动项目的调用,以禁止对应的目标启动项启动;
[0081]在实际应用中,CPU指令从RingO到Ring3分为4个特权级,在Windows操作系统中,可以使用其中的RingO和Ring3这两个级别,Ring3即用户模式,RingO即内核模式。
[0082]—般应用程序都运行在Ring3下,只能调用系统提供的API (Applicat1n ProgramInterface,应用程序编程接口),操作系统工作在RingO层,可以访问所有层的数据。
[0083]本发明实施例中,可以获取内核模式的权限,操作系统启动时,可以在其内核模式中拦截启动项。
[0084]在本发明实施例的一种可选示例中,子步骤S31可以包括如下子步骤:
[0085]子步骤S311,在操作系统的内核模式中挂钩指定的应用程序编程接口,以拦截所述启动项目的调用。
[0086]实际上,一个应用程序如果要实现其自身的功能要通过接口调用操作系统提供的功能函数,在Windows操作系统中一般是通过DLL (Dynamic Link Library,动态链接库)里的API提供,因此一个应用程序有怎么样的行为(操作),通过查看其调用了什么样的API就大概清楚了。
[0087]因此,作为本发明实施例的一种优选示例,可以通过在操作系统内核模式(RingO)中来挂钩(HOOK)操作系统的API,检测一个进程的创建操作。
[0088]启动项在创建时,通常会创建相应的进程,而进程创建是一件相当复杂的事情,它包含相当多的工作,为了启动一个进程,可以使用下列步骤:
[0089]1、可执行文件被以FILE_EXE⑶TE存取方式打开。
[0090]2、可执行映像被装载进RAM。
[0091]3、建立进程执行对象(EPROCESS,KPR0CESS和PEB结构)。
[0092]4、为新建进程分配地址空间。
[0093]5、建立进程的主线程的线程执行对象(ETHREAD,KTHREAD和TEBstructures)。
[0094]6、为主线程分配堆栈。
[0095]7、建立进程的主线程的执行上下文。
[0096]8、通知Win32子系统有关该新进程的创建情况。
[0097]为确保这些步骤中的任何一步的成功,所有其前面的步骤必须是成功执行的(如不能够在没有一个可执行区句柄的情况下建立一个可执行进程对象;没有文件句柄的情况下你无法映射一个可执行区,等等)。
[0098]因此,如果退出任何这些步骤,所有后面的步骤也会失败,以至于整个进程创建会失败。
[0099]上面所有的步骤都可以通过调用某些API的方式来实现,这是可以理解的。因此,为了监控进程创建,可以钩住这些API函数。
[0100]例如,为了监视进程的创建,可以挂钩NtCreateFi Ie O和NtOpenFi Ie O,或者钩住NtCreateSect1nO,不经调用这些API —般是无法运行任何可执行文件的。
[0101]进一步而言,SSDT表(System Services Descriptor Table,系统服务描述符表)可以将Ring3的Win32 API和RingO的API联系起来,可以基于SSDT表的特性,设计钩子拦截进程创建相关API调用,实现进程的拦截。
[0102]若拦截到的启动项目与配置文件中的启动项目匹配,可以认为该启动项目为目标启动项的启动项目,可以禁止该启动项目的调用,以禁止目标启动项的启动。
[0103]若拦截到的启动项目与配置文件中的启动项目匹配,可以认为该启动项目不为目标启动项的启动项目,可以允许该启动项目的调用,以放行目标启动项的启动。
[0104]本发明实施例在操作系统启动时,在内核模式中拦截、禁止启动项的启动,一方面在启动项还没完全启动时禁止启动,减少了启动该启动项所消耗的系统资源,另一方面,减少了启动项绕开禁止操作的几率,进一步提高了禁止启动的效率。
[0105]对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0106]参照图2,示出了根据本发明一个实施例的一种禁止启动项启动的装置实施例的结构框图,具体可以包括如下模块:
[0107]确定模块201,适于确定操作系统中的目标启动项,所述目标启动项为指定的需禁止自启动的应用;
[0108]获取模块202,适于获取与所述目标启动项相关的启动项目;
[0109]写入模块203,适于将与所述目标启动项相关的启动项目写入配置文件中;
[0110]读取模块204,适于在操作系统启动时,读取所述配置文件;
[0111]禁止模块205,适于按照所述配置文件中的所述启动项目禁止对应的目标启动项启动。
[0112]在具体实现中,所述目标启动项可以包括在先进行禁止启动操作,且禁止启动失败的启动项。
[0113]在本发明的一种可选实施例中,所述确定模块201还可以始于:
[0114]扫描操作系统的启动项;
[0115]生成所述启动项的操作提示信息;
[0116]当接收到针对所述操作提示信息的禁止启动指示时,确定所述禁止启动指示对应的启动项为目标启动项。
[0117]在本发明的一种可选实施例中,所述确定模块201还可以始于:
[0118]扫描操作系统的启动项;
[0119]检测是否在先对所述启动项进行禁止启动操作,且禁止启动失败;若是,则判断所述启动项为目标启动项。
[0120]在本发明的一种可选实施例中,所述禁止模块205还可以适于:
[0121]在操作系统的内核模式中拦截所述启动项目的调用,以禁止对应的目标启动项启动。
[0122]在本发明实施例的一种可选示例中,所述禁止模块205还可以适于:
[0123]在操作系统的内核模式中挂钩指定的应用程序编程接口,以拦截所述启动项目的调用。
[0124]对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0125]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0126]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0127]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0128]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1