一种防止篡改系统时间的方法及装置制造方法及图纸

技术编号:13051976 阅读:54 留言:0更新日期:2016-03-23 16:38
本发明专利技术实施例公开了一种防止篡改系统时间的方法及装置,预先创建跟随系统一起启动的、用于检测系统的设置本地时间函数被调用的服务程序;所述方法包括:获得所述设置本地时间函数的入口函数地址;通过所述服务程序,检测所述设置本地时间函数是否被调用;如果是,则将所获得的所述入口函数地址修改为预设的空函数的地址。应用本发明专利技术实施例,在设置本地时间函数被调用的情况下,将设置本地时间函数的入口函数地址修改为空函数的地址,进而调用空函数,不对系统时间做任何修改,防止了系统时间被篡改。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种防止篡改系统时间的方法及装置
技术介绍
系统时间是操作系统的重要组成部分,是用户获取准确时间的一个便利入口。目前很多应用软件依赖于系统时间来保证其正常的运行。如果系统时间被恶意软件或病毒篡改,则可能导致某些安全软件失效,不能对系统进行保护;或者导致某些软件(例如财务软件)的数据出错等问题。
技术实现思路
本专利技术实施例的目的在于提供一种防止篡改系统时间的方法及装置,以防止系统时间被篡改。为达到上述目的,本专利技术实施例公开了一种防止篡改系统时间的方法,预先创建跟随系统一起启动的、用于检测系统的设置本地时间函数被调用的服务程序;所述方法包括:获得所述设置本地时间函数的入口函数地址;通过所述服务程序,检测所述设置本地时间函数是否被调用,如果所述设置本地时间函数被调用,表示欲对系统时间进行篡改;如果是,则将所获得的所述入口函数地址修改为预设的空函数的地址。可选的,所述创建跟随系统一起启动的、用于检测系统的设置本地时间函数被调用的服务程序,包括:通过调用系统打开服务控制管理器函数,链接到服务控制管理器;通过调用创建服务函数,创建用于检测系统的设置本地时间函数被调用的服务程序;通过调用注册服务控制句柄函数,注册该服务程序的控制函数;通过调用所述控制函数,将该服务程序的状态设置为启动状态。可选的,所述获得所述设置本地时间函数的入口函数地址,包括:将包含所述设置本地时间函数的库函数加载到所述服务程序的进程空间中;通过调用获得程序地址函数,从所述库函数的导入地址表中获得所述设置本地时间函数的入口函数地址。可选的,所述服务程序中包含用于捕获所述设置本地时间函数被调用的信息的Hook函数;所述通过所述服务程序,检测所述设置本地时间函数是否被调用,包括:通过所述服务程序中的所述Hook函数对所述信息进行捕获,如果捕获到所述信息,表示所述设置本地时间函数被调用。可选的,还包括:在接收到用户针对所述Hook函数的删除指令后,删除所述Hook函数。可选的,还包括:在接收到用户针对所述服务程序的停止指令后,通过调用所述控制函数,将所述服务程序的状态设置为停止状态。为达到上述目的,本专利技术实施例公开了一种防止篡改系统时间的装置,包括:创建模块、获得模块、检测模块和修改模块,其中,所述创建模块,用于预先创建跟随系统一起启动的、用于检测系统的设置本地时间函数被调用的服务程序;所述获得模块,用于获得所述设置本地时间函数的入口函数地址;所述检测模块,用于通过所述创建模块创建的服务程序,检测所述设置本地时间函数是否被调用,如果所述设置本地时间函数被调用,表示欲对系统时间进行篡改;所述修改模块,用于在所述检测模块检测到所述设置本地时间函数被调用的情况下,将所获得的所述入口函数地址修改为预设的空函数的地址。可选的,所述创建模块,具体用于:通过调用系统打开服务控制管理器函数,链接到服务控制管理器;通过调用创建服务函数,创建用于检测系统的设置本地时间函数被调用的服务程序;通过调用注册服务控制句柄函数,注册该服务程序的控制函数;通过调用所述控制函数,将该服务程序的状态设置为启动状态。可选的,所述获得模块,具体用于:将包含所述设置本地时间函数的库函数加载到所述服务程序的进程空间中;通过调用获得程序地址函数,从所述库函数的导入地址表中获得所述设置本地时间函数的入口函数地址。可选的,所述服务程序中包含用于捕获所述设置本地时间函数被调用的信息的Hook函数;所述检测模块,具体用于:通过所述创建模块创建的服务程序中的所述Hook函数对所述信息进行捕获,如果捕获到所述信息,表示所述设置本地时间函数被调用。可选的,还包括:删除模块,所述删除模块,用于在接收到用户针对所述Hook函数的删除指令后,删除所述Hook函数。可选的,所述创建模块,还用于:在接收到用户针对所述服务程序的停止指令后,通过调用所述控制函数,将所述服务程序的状态设置为停止状态。由上述的技术方案可见,本专利技术实施例提供了一种防止篡改系统时间的方法及装置,预先创建跟随系统一起启动的、用于检测系统的设置本地时间函数被调用的服务程序;方法包括:获得所述设置本地时间函数的入口函数地址;通过所述服务程序,检测所述设置本地时间函数是否被调用,如果所述设置本地时间函数被调用,表示欲对系统时间进行篡改;如果是,则将所获得的所述入口函数地址修改为预设的空函数的地址。应用本专利技术实施例所提供的技术方案,在设置本地时间函数被调用的情况下,将设置本地时间函数的入口函数地址修改为空函数的地址,进而调用空函数,不对系统时间做任何修改,防止了系统时间被篡改。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种防止篡改系统时间的方法的流程示意图;图2为本专利技术实施例提供的一种防止篡改系统时间的装置的结构示意图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为了解决现有技术问题,本专利技术实施例提供了一种防止篡改系统时间的方法及装置。下面首先对本专利技术实施例所提供的一种防止篡改系统时间的方法进行介绍。图1为本专利技术实施例提供的一种防止篡改系统时间的方法的流程示意图,可以包括:S101:获得设置本地时间函数的入口函数地址;S102:通过服务程序,检测所述设置本地时间函数是否被调用,如果是,执行S103 ;如果所述设置本地时间函数被调用,表示欲对系统时间进行篡改,S103:将所获得的所述入口函数地址修改为预设的空函数的地址。具体的,上述服务程序为预先创建的跟随系统一起启动的、用于检测系统的设置本地时间函数被调用的服务程序。具体的,在实际应用中,设置本地时间函数可以为SetLocalTime函数。具体的,创建跟随系统一起启动的、用于检测系统的设置本地时间函数被调用的服务程序,可以通过调用系统打开服务控制管理器函数,链接到服务控制管理器;通过调用创建服务函数,创建用于检测系统的设置本地时间函数被调用的服务程序;通过调用注册服务控制句柄函数,注册该服务程序的控制函数;通过调用所述控制函数,将该服务程序的状态设置为启动状态。示例性的,通过调用系统API (Applicat1n Programming Interface,应用程序编程接口)函数中的OpenSCManager函数链接到服务控制管理器;通过调用CreateService函数创建用于监测SetLocalTime函数被调用的服务程序MyService.exe,通过调用RegisterServiceCtrlHandler函数注册服务程序MyService.exe的控制函数,通过调用该控制函数将服务程序MyService.exe的状态设置为启动状态。具体的,在实际应用中,还可以通过调用操本文档来自技高网...

【技术保护点】
一种防止篡改系统时间的方法,其特征在于,预先创建跟随系统一起启动的、用于检测系统的设置本地时间函数被调用的服务程序;所述方法包括:获得所述设置本地时间函数的入口函数地址;通过所述服务程序,检测所述设置本地时间函数是否被调用,如果所述设置本地时间函数被调用,表示欲对系统时间进行篡改;如果是,则将所获得的所述入口函数地址修改为预设的空函数的地址。

【技术特征摘要】

【专利技术属性】
技术研发人员:雷贤聪王媚
申请(专利权)人:珠海市君天电子科技有限公司北京金山安全软件有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1