定位被改写代码段所在进程的方法及装置制造方法及图纸

技术编号:2823404 阅读:516 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种定位被改写代码段所在进程的方法,该方法包括步骤:备份代码段信息;利用代码段备份信息,核查运行的代码段是否被改写,若是,立即获取进程切换记录;分析所述进程切换记录,确定被改写代码段所在进程。本发明专利技术利用代码段备份信息对运行的代码段进行核查,发现运行代码段与备份信息不一致时,及时获取并分析进程切换记录,在代码段出现问题的第一时间对进程切换记录进行分析,从而能够精确定位被改写代码段所在进程;而且,本发明专利技术在确定被改写代码段所在进程后,可快速利用备份的代码段副本恢复代码段,保证系统的正常运行。与上述方法相对应,本发明专利技术还提供一种定位被改写代码段所在进程的装置。

【技术实现步骤摘要】

本专利技术涉及信息安全
,尤其涉及一种定位被改写代码段所在进 程的方法及装置。
技术介绍
某些带操作系统的处理器,例如TI64X系列芯片,代码段和数据段是统 一编址的,造成代码段很容易被改写,而且被改写代码和改写内容往往是随 机的,造成代码段被改写很难定位,这种情况下,确定是那块程序运行引起 的代码段改写是非常困难的。目前的处理器设计时,在操作系统的任务切换间添加了进程切换记录, 当驱动检测到处理器故障时,会将处理器状态记录下来,通过进程切换记录 进行分析和定位问题。如果代码段被改写,造成了处理器进入死循环或者进 入驱动异常进程,此时记录进程切换信息,从而可以通过进程切换记录,查 找最近被哪些进程调用,并基本可以确定就是在这些进程的调用过程中,造 成了代码改写。但是,代码段被改写往往是一个循序渐进的过程,常常是某些代码段被 改写还不足以导致系统故障,那么此时驱动认为系统正常,不会及时获取并 分析进程切换记录来定位问题。当代码段被改写的范围扩大,出现多处代码 段被改写以致系统故障时,驱动才会对历史进程切换记录进行分析来定位问 题,但是此时获取的进程切换记录已经非常繁多。可见,由于没有及时分析 进程切换记录,在发现系统故障时不得不分析众多历史进程切换记录。在众 多历史进程切换记录中,几乎无法获知哪些代码先被改写、被哪些进程改写。 由此,这种仅依靠进程切换记录的方式,针对性不明确,很难确定是由哪个 进程引起的代码段改写。
技术实现思路
本专利技术目的是提供一种定位被改写代码段所在进程的方法及装置,实现对被改写代码段所在进程的精确定位。为此,本专利技术实施例采用如下技术方案一种定位被改写代码段所在进程的方法,包括步骤备份代码段信息; 利用代码段备份信息,核查运行的代码段是否被改写,若是,立即获取进程 切换记录;分析所述进程切换记录,确定^C改写代码—度所在进程。优选地,所述代码段备份信息包括代码段副本和代码段校验值;核查运 行的代码段是否被改写的过程是计算运行的代码段的校验值,比较计算的 校验值与备份的校验值是否一致,若否,确定代码段被改写;再利用代码段 副本对上述被改写代码段逐字比较,从而确定被改写代码段的具体字段。或者,所述代码段备份信息是指代码段副本;核查运行的代码段是否被 改写的过程是逐字比较运行中的代码段和代码段副本是否一致,若否,则 确定运行的代码段被改写。或者,所述代码段备份信息是指代码段校验值;核查运行的代码段是否 被改写的过程是计算运行中的代码段的校验值,比较计算出的校验值与备 份的校验值是否一致;若否,则确定运行的代码段被改写。所述方法还包括备份代码段校验值的检验值;在运行的代码段校验值 与备份代码段校验值一致时,计算运行中的代码段校验值的检验值,并比较 计算的检验值与备份的检验值是否一致,若否,则确定运行的代码段被改写。所述代码段的校验值,是指代码段逐字累加之和、代码段逐字作与操作 的结果,或者代码段逐字作异或操作的结果;所述代码段4交验值的检验值, 是指校验值逐字累加之和、校验值逐字作与操作的结果,或者校验值逐字作 异或操作的结果。所述方法还包括确定代码段备份信息中包含代码段副本时,利用所述 代码段副本更新确定的进程中被改写的代码段。核查运行的代码段的时机是操作系统空闲进程,或者,操作系统的任 务切换期间。一种定位被改写代码段所在进程的装置,包括获取单元,用于获取进 程切换记录;定位单元,用于依据所述获取单元提供的进程切换记录,确定 被改写代码段所在进程;所述装置还包括备份单元,存储有代码段信息;核查单元,利用所述备份单元提供的代码段信息,核查运行中的代码段是否被改写;指示单元,从所述核查单元获知运行中的代码段被改写时,立即启 动所述获取单元。所述备份单元存储的代码段信息,是指代码段副本,代码段校验值,代 码段校验值与校验值的4企验值,代码段副本与代码段校验值,或者,代码段 副本、代码段校验值与校验值的检验值的集合。所述装置还包括恢复单元,利用所述备份单元提供的代码段副本,更 新所述定位单元确定的进程中被改写的代码段。对于上述技术方案的技术效果分析如下本专利技术利用代码段备份信息对运行的代码段进行核查,发现运行代码段 与备份信息不一致时,及时获取并分析进程切换记录。不同于现有技术在导 致系统故障时才分析进程切换记录的方式,本专利技术在代码段出现问题的第一 时间对进程切换记录进行分析,从而能够精确定位被改写代码段所在进程。 而且,本专利技术在确定被改写代码段所在进程后,可快速利用备份的代码段副 本恢复代码段,保证系统的正常运行。附图说明图1为本专利技术方法实施例一流程图; 图2为本专利技术装置实施例示意图。具体实施例方式本专利技术实施例通过核查代码段被改写情况,在代码段被改写的第一时间 获取并分析进程切换记录,从而保证对被改写代码段所在进程进行精确定位。 下面结合附图,对本专利技术实施例作详细介绍。首先,介绍本专利技术方法实施例一正如前面分析,按照现有技术定位被改写代码段所在进程的方式,只有 在驱动发现操作系统出现故障时,才会获取并分析进程切换记录,从而定位 代码段所在进程,然而, 一处或几处代码段的改写,表明上也许不会导致操作系统的故障,那么按照现有方式就不可能及时获取并分析进程切换记录, 待到系统故障时,进程切换记录很可能众多,很难从中精确定位被改写代码 段所在进程。本专利技术正是从这一点出发,通过在合适的时机对代码段进行核查,当发 现运行的代码段不正确,也就是运行的代码段被改写的情况下,立即获取进 程切换记录,从而保证在第 一时间获取进程切换记录。核查代码段的时机,可以根据处理器的使用频率、进程多少以及进程切 换频率来进行选择。对于使用频率高、进程多、进程切换频繁的处理器,应尽量减少时间开销,可以在操作系统空闲进程(IDLE)进行代码段的核查; 反之,对于使用频率低、进程少、进程切换不频繁的处理器,可以在操作系 统的任务切换期间进行代码段核查,实时性强,能够准确定位产生问题的进 程。至于代码段核查的具体方式,主要包括两个步骤备份正确的代码段信 息;比较运行的代码段与备份的代码段信息。 请参见图1,为实施例一流程图,包括 步骤101:备份代码段信息;可以将正确的代码段信息备份在安全的位置,例如外存中,以减小备份 信息被篡改的风险。步骤102:利用备份代码段信息,在合适的时机,核查运行中的代码段是 否被改写,若是,执行步骤103,否则,重复执行本步骤;所谓合适时机,正如前面介绍,可以是操作系统空闲进程或操作系统的 任务切换期间。核查的过程也就是将备份信息与运行中的代码段进行比较的过程,如果 二者不一致,则确定运行中的代码段被改写,从而启动后续步骤。 步骤103:获取进程切换记录;此时获取的进程切换记录是核查到代码段被改写最近的进程切换记录, 最近运行的进程极可能就是被改写代码段的进程,因此及时获知这一记录非 常重要。步骤104:分析进程切换记录,确定被改写代码段所在进程。分析进程切换记录的过程中,需要借助一些全局参数,这些参数包括循 环变量、指针、变量值等,通过核查全局参数是否正常,从而精确定位被改 写代码段所在进程。本专利技术实施例一利用代码段备份信息对运行的代码段进行核查,发现运 行代码段与备份信息不一致时,及时获本文档来自技高网...

【技术保护点】
一种定位被改写代码段所在进程的方法,其特征在于,包括:备份代码段信息;利用代码段备份信息,核查运行的代码段是否被改写,若是,立即获取进程切换记录;分析所述进程切换记录,确定被改写代码段所在进程。

【技术特征摘要】

【专利技术属性】
技术研发人员:蒋一鸣王凌
申请(专利权)人:大唐移动通信设备有限公司
类型:发明
国别省市:11[中国|北京]

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

1
相关领域技术
  • 暂无相关专利