一种文件自动检测方法和装置的制造方法_2

文档序号:8258341阅读:来源:国知局
br>[0051]在具体实现时,还可以要求上述步骤103的执行时间与步骤101的执行时间之间的时间间隔小于一定时间阈值,如10ms,以预防在执行该步骤之前对比参量发生变化,尤其是第一更新时间。
[0052]步骤104,确定第一待检测文件被改动。
[0053]若第一更新时间晚于调用时间,则说明在进程调用该第一待检测文件后,该第一待检测文件又被修改或覆盖,则确定该第一待检测文件已经被改动,所述自动检测过程结束。
[0054]上述步骤102和步骤103之间的顺序可以根据需要进行调整,也可以同时进行,只有当第一标识信息与第二标识信息相同,且第一更新时间晚于调用时间时才确定第一待检测文件被改动。
[0055]本发明实施例通过在进程启动后,比较进程中以及存储介质中待检测文件的标识信息及在进程中的调用时间和存储介质中的更新时间,可以确定出该待检测文件在进程启动后是否被改动,通过该文件的自动检测方法,增加了程序运行的稳定性和可靠性,减少了程序崩溃的概率。
[0056]参见图2,示出了本发明的另一种文件自动检测方法实施例的步骤流程图,本实施例以Linux进程启动后动态链接库文件的自动检测为例进行说明,该方法具体可以包括如下步骤:
[0057]步骤201,获取进程的内存映射信息,在进程的内存映射信息中查找获得第一动态链接库文件的第一标识信息。
[0058]本步骤具体可以根据/proc/PID/maps文件获取进程的内存映射信息,进而在进程的内存映射信息中查找获得第一动态链接库文件(即第一待检测文件)的第一标识信息。该第一动态链接库文件的第一标识信息可以是进程中动态链接库的inode。
[0059]步骤202,获取进程的运行信息,根据进程的运行信息获得动态链接库文件的调用时间。
[0060]本步骤中,可以获取进程的运行信息,进而根据该进程的运行信息获得进程的启动时间,将进程的启动时间作为该进程中第一动态链接库文件的调用时间。
[0061]其中,可以根据/proc/stat,/proc/PID/stat两个文件的数据计算得出进程的启动时间,具体计算方法如下:
[0062]从/proc/stat获取系统启动时间btime ;
[0063]从/proc/PID/stat获取进程消耗的系统滴答数delta ;
[0064]用getconf CLK_TCK获取系统时钟频率freq ;
[0065]则进程启动时间=btime+delta/freq
[0066]步骤203,在文件系统中查找获得第二动态链接库文件的第二标识信息及第一更新时间。
[0067]本步骤中可以根据Stat命令在文件系统中查找获得第二动态链接库文件(即第二待检测文件)的第二标识信息及第一更新时间。该第二动态链接库文件的第二标识信息可以是文件系统中第二动态链接库的inode。
[0068]上述步骤201、步骤202及步骤203可以同时进行,也可以按一定顺序依次执行。其中,在步骤203中,通过stat命令可以在文件系统中同时查找获得第二动态链接库文件的第二标识信息和第一更新时间。在获得上述参量后,执行步骤204。
[0069]步骤204,判断第一标识信息与第二标识信息是否相同。
[0070]本实施例中可以对比第一动态链接库文件的inode与第二动态链接库的inode是否相同,若相同,则说明进程中的第一动态链接库文件与文件系统中的第二动态链接库文件是同一文件,此时执行步骤205。
[0071]步骤205,判断第一更新时间是否晚于调用时间。
[0072]若是,则执行步骤206。
[0073]步骤206,确定第一动态链接库文件被改动。
[0074]上述步骤204?206与前述实施例中的步骤102?104类似,此处不再赘述。
[0075]参照图3,示出了本发明的另一种文件自动检测方法实施例的步骤流程图,具体可以包括如下步骤:
[0076]步骤301,获得对比参量,该对比参量包括第一待检测文件在进程中的第一标识信息及调用时间,以及第二待检测文件在存储介质中的第二标识信息及距离当前最近的第一更新时间。
[0077]步骤302,判断第一标识信息与第二标识信息是否相同。
[0078]如相同,则执行步骤303。
[0079]步骤303,判断第一更新时间是否晚于调用时间。
[0080]步骤301?303与前述实施例中的步骤101?103类似,此处不再赘述。
[0081]若第一更新时间晚于调用时间,则可确定该第一待检测文件已被改动。若第一更新时间早于或等于调用时间,为了进一步确定该第一待检测文件是否在上述检测过程执行期间被改动,则可以进一步执行步骤304。
[0082]步骤304,再次获取第二待检测文件在存储介质中距离当前最近的第二更新时间。
[0083]文件自动检测装置重复获取第二待检测文件在存储介质中的距离当前最近的更新时间,记为第二更新时间。
[0084]步骤305,若第二更新时间与第一更新时间不同,则确定第一待检测文件被改动。
[0085]若该第二更新时间与第一次获取的存储介质中的第二待检测文件的第一更新时间相同,则说明在执行上述步骤期间,存储介质中的第二待检测文件没有被修改或覆盖,基于第一待检测文件与第二待检测文件之间的动态映射关系,因此可以确定该第一待检测文件没有被改动;若第二更新时间与第一更新时间不同,则可以认为该第一待检测文件被改动。
[0086]本实施例增加了核查步骤以排除在执行自动检测期间待检测文件被改动的情况。
[0087]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0088]参照图4,示出了本发明一种文件自动检测装置实施例的结构框图,具体可以包括如下单元:
[0089]参量获取单元401,用于获得对比参量,所述对比参量包括第一待检测文件在进程中的第一标识信息及调用时间,以及第二待检测文件在存储介质中的第二标识信息及距离当前最近的第一更新时间。该第一待检测文件在进程中的调用时间可以为所述进程的启动时间。
[0090]第一判定单元402,用于判断所述第一标识信息与所述第二标识信息是否相同。
[0091]第二判定单元403,用于在所述第一判定单元402判定所述第一标识信息与所述第二标识信息相同时,判断所述第一更新时间是否晚于所述调用时间。
[0092]检测单元404,用于在所述第二判定单元403判定所述第一更新时间晚于所述调用时间时,确定所述第一待检测文件被改动。
[0093]本发明实施例通过上述单元在进程启动后,比较进程中以及存储介质中待检测文件的标识信息及在进程中的调用时间和存储介质中的更新时间,可以确定出该待检测文件在进程启动后是否被改动,通过该文件的自动检测装置,增加了程序运行的稳定性和可靠性,减少了程序崩溃的概率。
[0094]在本发明的另一实施例中,该参量获取单元401,具体可以用于获取所述进程的内存映射信息,以在所述进程的内存映射信息中查找获得所述第一待检测文件的第一标识信息;以及,获取所述进程的运行状态信息,以根据所述进程的运行信息获得所述第一待检测文件的调用时间;在文件系统中查找获得所述第二待检测文件的所述第二标识信息及所述第一更新时间。
[0095]参照图5,示出了本发明另一种文件自动检测装置实施例的结构框图。该装置除了包括参量获取单元401,第一判定单元402,第二判定单元403,检测单元404之外,还可以包括核查单元501。
[0096]其中,参量获取单元401,还可以用于在所述第二判定单元403判定所述第一更新时间早于或等于所述调用时间时,再次获取所述第二待检测文件在所述存储介质中距离当前最近的第二更新时间。
[0097]核查单元501,用于在所述第二更新时间与所述第一更新时间不同时,确定所述第一待检测文件被改动。
[0098]上述第一待检测文件可以为动态链接库文件。上述装置可以用于在Iinux下进程启动后动态链接库文件的自动检测。
[0099]本发明实施例还提供了一种电子设备,该电子设备包
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1