书签 分享 收藏 举报 版权申诉 / 6

一种查找ELF文件中符号信息的方法及系统.pdf

  • 上传人:sha****007
  • 文档编号:6291672
  • 上传时间:2019-05-29
  • 格式:PDF
  • 页数:6
  • 大小:273.51KB
  • 摘要
    申请专利号:

    CN201410844838.9

    申请日:

    2014.12.31

    公开号:

    CN105468661A

    公开日:

    2016.04.06

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 17/30申请日:20141231|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    武汉安天信息技术有限责任公司

    发明人:

    徐浩; 袁海涛; 潘宣辰

    地址:

    430000湖北省武汉东湖新技术开发区软件园东路1号软件产业4-1期B4栋12层01室

    优先权:

    专利代理机构:

    代理人:

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种查找ELF文件中符号信息的方法及系统,首先读取ELF文件,获取文件头部结构,解析文件头部结构获取Program Header,根据Program Header可找到DYNAMIC Segment,遍历DYNAMIC Segment获得符号表、Hash表和字符串表,最终解析符号表得到符号名、符号类型、起始偏移及大小信息。通过本方法解决了传统的解析方法只对正常的ELF文件有效,对经过特殊处理,缺失节信息的ELF文件则无法找到其符号信息的技术问题。

    权利要求书

    1.一种查找ELF文件中符号信息的方法,其特征在于:读取ELF文件,获取文件头部结构;解析文件头部结构,获取ProgramHeader;解析ProgramHeader,获取DYNAMICSegment;解析DYNAMICSegment,获取符号表;解析符号表,得到符号名、符号类型、起始偏移及大小信息。2.如权利要求1所述的方法,其特征在于,还包括:解析DYNAMICSegment时,获取Hash表和字符串表,利用Hash表和字符串表辅助查找符号表中的符号信息。3.一种查找ELF文件中符号信息的系统,其特征在于:读取文件模块,用于读取ELF文件,获取文件头部结构;解析头部结构模块,用于解析文件头部结构,获取ProgramHeader;解析ProgramHeader模块,用于解析ProgramHeader,获取DYNAMICSegment;解析DYNAMICSegment模块,用于解析DYNAMICSegment,获取符号表;解析符号表模块,用于解析符号表,得到符号名、符号类型、起始偏移及大小信息。4.如权利要求3所述的系统,其特征在于,还包括:解析DYNAMICSegment时,获取Hash表和字符串表,利用Hash表和字符串表辅助查找符号表中的符号信息。

    说明书

    一种查找ELF文件中符号信息的方法及系统

    技术领域

    本发明涉及网络安全技术领域,尤其涉及一种查找ELF文件中符号信息的方法及系统。

    背景技术

    ELF即ExecutableandLinkableFormat,最初是由UNIX系统实验室开发并发布的,作为应用程序二进制接口的一部分,目前广泛应用在各种Linux系统上,例如目前热门的Android平台。越来越多的Android应用采取了大量的Native开发来保护其核心逻辑,而Native开发的方式即使用C等语言编写一些ELF格式的模块,相比Java代码,Native代码逆向成本较高。

    对于正常ELF文件来说,常见的解析节信息的方法十分有效,但越来越多的软件对其ELF文件进行了特殊处理以防逆向,导致了常见的解析方法失效。

    发明内容

    针对上述技术问题,本发明提供了一种查找ELF文件中符号信息的方法及系统,该方法通过对文件头部结构的深度解析,最终得到符号名、符号类型、起始偏移及大小信息。对于以往的ELF文件来说,常见的解析节信息十分有效,若面对进行了特殊处理以防逆向的ELF文件,常见的解析方法则会失效。本发明针对一般节信息缺失的ELF动态链接库文件,可有效找到其符号表。

    一种查找ELF文件中符号信息的方法,包括:

    读取ELF文件,获取文件头部结构;

    解析文件头部结构,获取ProgramHeader;

    解析ProgramHeader,获取DYNAMICSegment;

    解析DYNAMICSegment,获取符号表;

    解析符号表,得到符号名、符号类型、起始偏移及大小信息。

    进一步的,还包括:解析DYNAMICSegment时,获取Hash表和字符串表,利用Hash表和字符串表辅助查找符号表中的符号信息。

    一种查找ELF文件中符号信息的系统,包括:

    读取文件模块,用于读取ELF文件,获取文件头部结构;

    解析头部结构模块,用于解析文件头部结构,获取ProgramHeader;

    解析ProgramHeader模块,用于解析ProgramHeader,获取DYNAMICSegment;

    解析DYNAMICSegment模块,用于解析DYNAMICSegment,获取符号表;

    解析符号表模块,用于解析符号表,得到符号名、符号类型、起始偏移及大小信息。

    进一步的,还包括:解析DYNAMICSegment时,获取Hash表和字符串表,利用Hash表和字符串表辅助查找符号表中的符号信息。

    本发明涉及一种查找ELF文件中符号信息的方法,本方法通过其加载时所必须的ProgramHeader信息找到所需的DYNAMICSegment,再通过DYNAMICSegment找到符号表、Hash表和字符串表,解析符号表得到符号信息。本方法克服了一般缺失节信息的ELF动态链接库文件无法有效的找到其符号表及符号信息的问题,进而提高了快速解析ELF文件找到符号信息的效率。

    附图说明

    为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1为本发明提供的一种查找ELF文件中符号信息的方法实施例流程图;

    图2为本发明提供的一种查找ELF文件中符号信息的系统实施例结构图。

    具体实施方式

    本发明给出了一种查找ELF文件中符号信息的方法及系统,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:

    本发明首先提供了一种查找ELF文件中符号信息的方法,如图1所示,包括:

    S101读取ELF文件,获取文件头部结构;

    S102解析文件头部结构,获取ProgramHeader;

    从文件头部结构中获得段偏移、段表节点大小和段表节点个数;

    S103解析ProgramHeader,获取DYNAMICSegment;

    当ProgramHeader中的p_type为PT_DYNAMIC时,该Segment为DYNAMICSegment,此时ProgramHeader中的p_offset和p_filesz为DYNAMICSegment的段偏移和段大小;

    S104解析DYNAMICSegment,获取符号表;

    当DYNAMICSegment中节点d_tag为DT_SYMTAB时,该节点联合结构中的d_ptr为符号表偏移;

    S105解析符号表,得到符号名、符号类型、起始偏移及大小信息。

    优选地,还包括:解析DYNAMICSegment时,获取Hash表和字符串表,利用Hash表和字符串表辅助查找符号表中的符号信息;

    当DYNAMICSegment中节点d_tag为DT_HASH时,该节点联合结构中的d_ptr为哈希表偏移;

    当DYNAMICSegment中节点d_tag为ST_STRTAB时,该节点联合结构中的d_ptr为字符串表;

    字符串表中储存符号名,Hash表用于找到符号表大小。

    本发明还提供了一种查找ELF文件中符号信息的系统,如图2所示,包括:

    读取文件模块201,用于读取ELF文件,获取文件头部结构;

    解析头部结构模块202,用于解析文件头部结构,获取ProgramHeader;

    解析ProgramHeader模块203,用于解析ProgramHeader,获取DYNAMICSegment;

    解析DYNAMICSegment模块204,用于解析DYNAMICSegment,获取符号表;

    解析符号表模块205,用于解析符号表,得到符号名、符号类型、起始偏移及大小信息。

    优选地,还包括:解析DYNAMICSegment时,获取Hash表和字符串表,利用Hash表和字符串表辅助查找符号表中的符号信息。

    综上所述,本发明涉及一种查找ELF文件中符号信息的方法。本方法通过读取ELF文件的头部结构,从文件的头部结构中提取段偏移、段表节点大小和段表节点个数信息从而找到DYNAMICSegment,再通过遍历DYNAMICSegment找到符号表、Hash表和字符串表,解析符号表,此时可以得到符号名、符号类型、起始偏移及大小信息。传统的解析节信息的方法只能对正常的ELF文件有效,直接解析其头部中描述符号表信息的节信息部分获得符号信息。而经过特殊处理的ELF文件其符号表的节信息部分缺失,则上述方法无法解析到该ELF文件的符号表,导致了常见的解析方法失效。本发明针对一般节信息缺失的ELF文件,可有效的找到其符号表,进而找到其符号信息。

    以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。

    关 键  词:
    一种 查找 ELF 文件 符号 信息 方法 系统
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种查找ELF文件中符号信息的方法及系统.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6291672.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1