一种内核调试的方法和设备技术

技术编号:7837744 阅读:214 留言:0更新日期:2012-10-12 02:33
本发明专利技术公开了一种内核调试的方法和设备,其主要内容包括:通过确定待调试的内核信息的映射文件信息,其中,映射文件信息中包含了待调试的内核信息中每一函数以及每一函数的调用地址,对确定的映射文件信息进行调试,避免了现有技术中对Linux内核进行调试跟踪存在调试方式复杂和调试效率低的问题,提高了Linux内核调试的效率和降低了Linux内核调试的难度。

【技术实现步骤摘要】

本专利技术涉及网络安全领域,尤其涉及一种内核调试的方法和设备
技术介绍
调试是软件开发和软件分析中一个必不可少的环节,相对于应用系统的开发和分析也同样如此。但是,Linux系统的开发者为了保证Linux内核代码的正确性,没有在Linux内核源代码中编入调试器,使得对Linux系统的内核进行调试一直是该领域一个相对棘手的问题。为了解决Linux系统中内核代码的调试问题,出现了三种调试方法 第一种调试方法printk ()打印信息方法。这种方法主要是通过在Iinux系统的内核代码中特定位置加入printk ()函数,并通过printk ()函数调用将相关的内核信息打印在屏幕上或者通过日志输出,通常这种方式结合Kprobes使用。第二种调试方式使用KGDB搭建的Iinux系统的内核调试环境。这种方法像调试普通的应用程序一样,在Iinux系统内核中执行设置断点、检查变量值、单步跟踪程序运行等操作。在使用KGDB调试Iinux系统内核时,需要两台机器,一台作为开发机,另一台作为目标机,两台机器之间通过串口或者以太网相连,将目标Iinux系统内核安装在虚拟机中,进行调试。第三种调试方式使用SkyEye搭建的Iinux系统的内核调试环境。这样方式下,SkyEye是一个开源软件项目,目标是在通用的Linux系统和Window系统平台上模拟常见的嵌入式计算机系统,实现一个指令级的硬件模拟平台,可模拟多种嵌入式开发板,支持多种CUP指令集,利用GUN的⑶B项目,把⑶B和ARM结合起来,进行Iinux系统的内核调试。上述三种Iinux系统内核调试方法,各存在其缺陷第一种方式通过printkO打印信息来调试Linux系统的内核。在需要对Linux系统内核源码进行改写时,在能够改写源码的编译环境下比较实用,但是对于已经编译完成且不能修改源码的Linux内核,则不能使用该方法通常这种方法被看作是一种代码错误跟踪技术,不能为源码级的Linux系统的内核进行调试。第二种方式通过KGDB内核调试方法来调试Linux系统的内核。需要在内核编译时编译一些配置,由于低版本Linux系统的内核中不具备这些配置信息,将不支持该调试方法;但是该方法在被使用时由于Linux系统内核配置信息较复杂,不能对内核进行全程调试;也不能应用于系统开始的初始化引导过程的调试。第三种方式通过SkyEye来调试Linux系统的内核。目前SkyEye主要支持基于ARM内核的系统,对于非ARM架构下编译的系统内核不能进行调试,存在使用的局限性。综上所述,采用上述调试方法对Linux内核进行调试跟踪存在调试方式复杂和调试效率低的问题
技术实现思路
本专利技术实施例提供了一种内核调试的方法和设备,用于解决现有技术中对Linux内核进行调试跟踪存在调试方式复杂和调试效率低的问题。一种内核调试的方法,所述方法包括判断待调试的内核信息是否存在映射文件信息;若存在,则确定该待调试的内核信息对应的映射文件信息,并对该映射文件信息中的指令信息进行调试;否则,确定该待调试的内核信息的参考内核信息,并将参考内核信息中每一函数的调用地址作为该函数对应在待调试的内核信息中函数的调用地址,得到待调试的内核信息中各函数的调用地址;将待调试的内核信息中各函数以及函数的调用地址作为待调试的内核信息的映射文件信息,并对该映射文件信息中的指令信息进行调试。 一种内核调试设备,所述设备包括判断模块,用于判断待调试的内核信息是否存在映射文件信息;确定映射文件信息模块,用于在判断结果为存在映射文件信息时,确定该待调试的内核信息对应的映射文件信息;确定调用地址模块,用于在判断结果为不存在映射文件信息时,确定该待调试的内核信息的参考内核信息,并将参考内核信息中每一函数的调用地址作为该函数对应在待调试的内核信息中函数的调用地址,得到待调试的内核信息中各函数的调用地址;生成映射文件信息模块,用于将待调试的内核信息中各函数以及函数的调用地址作为待调试的内核信息的映射文件信息;内核调试模块,用于对映射文件信息中的指令信息进行调试。本专利技术有益效果如下本专利技术实施例在确定没有映射文件信息时,根据确定的参考内核的映射文件信息,确定待调试的内核信息中各函数以及函数的调用地址,生成待调试的内核信息的映射文件信息,并对该映射文件信息中的指令信息进行调试;在确定有映射文件信息时,直接对映射文件信息中的指令信息进行调试,避免了现有技术中对Linux内核进行调试跟踪存在调试方式复杂和调试效率低的问题,提高了 Linux内核调试的效率和降低了 Linux内核调试的难度。附图说明图I为本专利技术实施例一的一种内核调试的方法的流程示意图;图2为本专利技术实施例二的一种内核调试的方法的流程示意图;图3为获取待调试的内核信息的系统版本信息的流程示意图;图4为生成一个函数调用树的结构示意图;图5为本实施例三的一种内核调试设备的结构示意图;图6为QEMU调试系统的结构示意图。具体实施例方式为了实现本专利技术的目的,本专利技术实施例提供了一种内核调试的方法和设备,通过判断待调试的内核信息是否存在映射文件信息;针对存在映射文件信息的,确定该待调试的内核信息对应的映射文件信息,并对该映射文件信息中的指令信息进行调试;针对不存在映射文件信息的,确定该待调试的内核信息的参考内核信息,并将参考内核信息中每一函数的调用地址作为该函数对应在待调试的内核信息中函数的调用地址,得到待调试的内核信息中各函数的调用地址,将待调试的内核信息中各函数以及函数的调用地址作为待调试的内核信息映射文件信息;对映射文件信息中的指令信息进行调试。与现有技术相比,通过确定待调试的内核信息的映射文件信息,其中,映射文件信息中包含了待调试的内核信息中每一函数以及每一函数的调用地址,对确定的映射文件信息进行调试,避免了现有技术中对Linux内核进行调试跟踪存在调试方式复杂和调试效率低的问题,提高了 Linux内核调试的效率和降低了 Linux内核调试的难度。 下面结合说明书附图对本专利技术各实施例中的内容进行详细描述。实施例一如图I所示,为本专利技术实施例一的一种内核调试的方法的流程示意图。所述方法包括步骤101 :判断待调试的内核信息是否存在映射文件信息,若是,则执行步骤104 ;若否,则执行步骤102。在本步骤101中,由于在对Linux内核进行调试时,待调试的内核信息分为两种一种是待调试的内核信息中每一函数以及每一函数的调用地址是知道的,即有系统函数调用地址;另一种是待调试的内核信息中每一函数以及每一函数的调用地址是不知道的,即无系统函数调用地址。其中,对于有系统函数调用地址的待调试的内核信息,在Linux内核编译完成后,会生成一个System, map的内核符号映射文件,该文件记录了待调试的内核信息的全局函数或变量在加载进内存后的调用地址。通过该System, map记录的地址,可以在对待调试的内核信息在启动运行阶段对相应的函数进行符号断点,比较有利于后续的调试工作。对于无系统函数调用地址的待调试的内核信息,由于在此种情况下,内核分析者只有一个单独的包含了待调试的内核信息的磁盘镜像文件或者内核压缩镜像,没有System, map或者vmlinuz等辅助调试分析资料,不能获得对应的内核符号信息,为内核分析人员在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内核调试的方法,其特征在于,所述方法包括 判断待调试的内核信息是否存在映射文件信息; 若存在,则确定该待调试的内核信息对应的映射文件信息,并对该映射文件信息中的指令信息进行调试; 否则,确定该待调试的内核信息的参考内核信息,并将参考内核信息中每一函数的调用地址作为该函数对应在待调试的内核信息中函数的调用地址,得到待调试的内核信息中各函数的调用地址; 将待调试的内核信息中各函数以及函数的调用地址作为待调试的内核信息的映射文件信息,并对该映射文件信息中的指令信息进行调试。2.如权利要求I所述的方法,其特征在于,确定该待调试的内核信息的参考内核信息, 并将参考内核信息中每一函数的调用地址作为该函数对应在待调试的内核信息中函数的调用地址,具体包括 在调试环境下运行待调试的内核信息,确定待调试的内核信息的版本号和函数编译器; 将与确定的版本号最接近的版本号对应的内核信息作为待调试的内核信息的参考内核信息; 利用确定的函数编译器分别对参考内核信息和待调试的内核信息进行分析,得到参考内核信息中的函数调用树和待调试的内核信息中的函数调用树,其中,任一函数调用树的一个节点表示一个函数,函数中的一段代码作为该函数的特征码; 根据参考内核信息中各函数和调用地址之间的对应关系,确定参考内核信息中各函数的调用地址,并将参考内核中每一函数的调用地址作为该函数对应在待调试的内核信息中函数的调用地址,其中,参考内核信息和待调试的内核信息中有相同特征码的函数为具有对应关系的函数。3.如权利要求I或2所述的方法,其特征在于,对该映射文件信息中的指令信息进行调试,具体包括 依次对映射文件信息中的每一条指令信息,执行以下操作 对该指令信息进行翻译,并对翻译后的指令信息进行调试。4.一种内核调试设备,其特征在于,所述设备包...

【专利技术属性】
技术研发人员:刘水生覃永靖韩鹏
申请(专利权)人:北京神州绿盟信息安全科技股份有限公司
类型:发明
国别省市:

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

1