实时监控和保护注册表开机启动项方法
技术领域
本发明涉及计算机技术领域,具体是实时监控和保护注册表开机启动项方法。
背景技术
通过在Windows内核层HOOK(是Windows消息处理机制的一个平台)操作系统一些关键操作(如修改注册表键值)的API(Application ProgrammingInterface,应用程序编程接口)来监控操作系统及其他应用程序的活动,已经在计算机领域广泛使用。
API就是操作系统导出的函数,这些导出函数可以被其他程序调用来实现相应功能。HOOK API就是修改内核层操作系统API函数的入口地址,替换成在一个程序(一般是驱动程序)中的自定义函数的入口地址;当被HOOK的API被调用时,自定义函数会先被调用。在自定义函数中我们可以做一些操作与判断,再调用或不调用原系统API。
开机启动是Windows系统下一个非常常见的功能,它让一些应用程序随着Windows的启动而启动。用户将一些常用的程序加到开机启动项中,让这些常用的程序在开机时就运行,不用用户手动启动,非常方便。但这种便利也被一些应用程序滥用甚至恶意使用,它们将自己或其他程序加入到用户的开机启动项中,让自己或其他程序也开机启动。在多数情况下,这些被加入到用户开机启动项中的程序并不是用户真正想要的,同时过多的开机启动项也大大延长了用户Windows系统的启动时间,过多的程序在开机就启动也占用了系统大量资源,导致系统性能下降,给用户带来使用上的不便。
发明内容
本发明的主要目的是提供一种实时监控和保护注册表开机启动项方法,让在有程序修改开机启动项时,实时通知用户,让用户决定是否同意修改。在用户不确定是否同意修改时,为用户提供足够多的信息帮助用户决定。
本发明解决其技术问题所采用的技术方案是:
一种实时监控和保护注册表开机启动项方法,其包括:
Hook注册表来修改API;
拦截对所述注册表的修改操作;
判断所述修改操作的键值是否是开机启动项的键值,如果不是,调用所述注册表来修改API以完成修改操作;
如果是,将所述修改操作对应的进程挂起,获取驱动并展示所述修改操作要修改的开机启动项的信息和要修改写入的开机启动项,以便于用户根据所述要修改的开机启动项的信息和要修改写入的开机启动项同意或者拒绝所述修改操作。
优选地,所述要修改的开机启动项的信息包括:要修改的开机启动项的进程名、所在文件夹、是否有数字签名和所属公司。
优选地,所述获取驱动并展示所述要修改的开机启动项的信息和要修改写入的开机启动项,之后,进一步包括:
接收用户的查询命令;
根据所述查询命令通过进程后台服务器查询并获取所述要修改的开机启动项的详细信息。
优选地,所述根据所述查询命令通过进程后台服务器查询并获取所述要修改的开机启动项的详细信息,之后,进一步包括:记录所述查询命令。
优选地,当用户同意该修改时,则调用所述注册表来修改API,完成修改操作;当用户不同意该修改时,则返回所述修改操作对应的修改的进程,并返回所述修改操作的失败信息。
本发明还提供一种计算机,其包括:
驱动程序模块,用于Hook注册表来修改API,并拦截对所述注册表的修改操作,判断所述修改操作的键值,判断所述键值是否是开机启动项的键值,如果不是,调用所述注册表来修改API以完成修改操作,如果是,如果是,将所述修改操作对应的进程挂起;
应用程序模块,用于获取驱动并展示所述修改操作要修改的开机启动项的信息和要修改写入的开机启动项,以便于用户根据所述要修改的开机启动项的信息和要修改写入的开机启动项同意或者拒绝所述修改操作。
优选地,所述要修改的开机启动项的信息包括:要修改的开机启动项的进程名、所在文件夹、是否有数字签名和所属公司。
优选地,所述驱动程序模块,用于接收用户的查询命令,根据所述查询命令通过进程后台服务器查询并获取所述要修改的开机启动项的详细信息。
优选地,所述驱动程序模块,还用于记录所述查询命令。
优选地,所述驱动程序模块,还用于当用户同意该修改时,则调用所述注册表来修改API,完成修改操作;当用户不同意该修改时,则返回所述修改操作对应的修改的进程,并返回所述修改操作的失败信息。
实施本发明的技术方案,具有以下有益效果:本发明提供的实时监控和保护注册表开机启动项方法,让在有程序修改开机启动项时,实时通知用户,让用户决定是否同意修改。在用户不确定是否同意修改时,为用户提供足够多的信息帮助用户决定。阻止开机启动项被恶意更改,防止系统被加入太多开机启动项而导致系统开机缓慢、性能下降。
附图说明
图1为本发明实施例提供的方法流程图;
图2为本发明实施例提供的方法的另一流程图;
图3为本发明实施例提供的计算机的结构示意图;
图4为本发明实施例提供的应用程序模块的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种实时监控和保护注册表开机启动项方法,如图1所示,包括步骤:
本发明实施例提供一种实时监控和保护注册表开机启动项方法,如图1所示,该方法包括步骤:
S110、Hook注册表来修改API;
S120、拦截对所述注册表的修改操作;
具体的,拦截到的是要修改开机启动项的信息及其要修改写入的开机启动项的信息;
S130、判断所述修改操作的键值,判断所述键值是否是开机启动项的键值,如果不是,调用所述注册表来修改API、以完成修改操作,如果是,将所述修改操作对应的进程挂起;
S140、获取驱动并展示所述修改操作要修改的开机启动项的信息和要修改写入的开机启动项,以便于用户根据所述要修改的开机启动项的信息和要修改写入的开机启动项同意或者拒绝所述修改操作。该该步骤S140中,所述要修改的开机启动项的信息包括:要修改的开机启动项的进程名、所在文件夹、是否有数字签名和所属公司。让用户根据所述要修改的开机启动项的信息和要修改写入的开机启动项选择同意此项修改(即:该要修改的进程)或拒绝此项修改。
在进一步的实施例中,在上述实施例的基础上,在所述步骤S140之后,如果用户不确定该如何选择时,如图2所示,该方法进一步包括步骤:
S150、接收用户的查询命令;
S160、根据所述查询命令通过进程后台服务器查询并获取所述要修改的开机启动项的详细信息,以帮助用户根据该详细信息做进一步的判断,以同意此项修改或拒绝此项修改。在其他实施例中,在该步骤S160之后,该方法还包括:记录所述查询命令。在更进一步的实施例中,该方法还包括步骤:
S170、当用户同意该修改时,则调用所述注册表来修改API以完成修改操作;当用户不同意该修改时,则返回所述修改操作对应的修改的进程,并返回该修改操作失败信息。
另外,在其他实施例中,还可以包括记录上述步骤S120中的拦截过程,将该拦截过程保存在日志文件中,以方便用户查看。
上述实施例提供的实时监控和保护注册表开机启动项方法,让在有程序修改开机启动项时,实时通知用户,让用户决定是否同意修改。在用户不确定是否同意修改时,为用户提供足够多的信息帮助用户决定。阻止开机启动项被恶意更改,防止系统被加入太多开机启动项而导致系统开机缓慢、性能下降。
本发明实施例还提供一种计算机,如图3所示,该计算机包括:
驱动程序模块210,用于Hook注册表来修改API,并拦截对所述注册表的修改操作,判断所述修改操作的键值,判断所述键值是否是开机启动项的键值,如果不是,调用所述注册表来修改API以完成修改操作,如果是,如果是,将所述修改操作对应的进程挂起,并通知应用程序模块220;
应用程序模块220,用于获取驱动并展示所述修改操作要修改的开机启动项的信息和要修改写入的开机启动项,以便于用户根据所述要修改的开机启动项的信息和要修改写入的开机启动项同意或者拒绝所述修改操作。所述要修改的开机启动项的信息包括:要修改的开机启动项的进程名、所在文件夹、是否有数字签名、所属公司和要修改写入的开机启动项。
更为具体的实施例中,如图4所示,该应用程序模块220还包括有用户界面通信模块、驱动程序模块、进程信息查询模块以及展示模块,即应用程序模块220的功能可以通过上述用户界面通信模块、驱动程序模块、进程信息查询模块以及展示模块来实现,具体地:
用户界面通信模块提供用户操作界面,负责加载驱动程序模块并与其通信。
驱动程序模块用于驱动负责HOOK API并拦截修改开机启动项键值的操作,并通知应用程序,再根据返回的用户选择信息进行下一步操作。
进程信息查询模块负责将拦截到所述修改操作要修改的开机启动项的信息和要修改写入的开机启动项发送给进程后台服务器,获取更详细信息。
展示模块将驱动层拦截到的所述修改操作要修改的开机启动项的信息和要修改写入的开机启动项展示给用户,并让用户选择,选择当前操作是阻止执行还是禁止执行该修改操作。
进程信息后台服务器维护与收集尽可能多的进程信息,同时向进程信息查询模块提供查询服务。
在其他的实施例中,在上述实施例基础上,进一步的,所述驱动程序模块210,还用于接收用户的查询命令,根据所述查询命令通过进程后台服务器查询并获取所述要修改的开机启动项的详细信息。
所述驱动程序模块210,还用于记录所述查询命令。
在其他的实施例中,在上述实施例基础上,进一步的,所述驱动程序模块210,还用于当用户同意该修改时,则调用所述注册表来修改API,完成修改操作;当用户不同意该修改时,则返回所述修改操作对应的修改的进程,并返回所述修改操作的失败信息。
上述实施例提供的计算机,让在有程序修改开机启动项时,实时通知用户,让用户决定是否同意修改。在用户不确定是否同意修改时,为用户提供足够多的信息帮助用户决定。阻止开机启动项被恶意更改,防止系统被加入太多开机启动项而导致系统开机缓慢、性能下降。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。