一种隐藏断言信息的获取方法、装置、介质和设备制造方法及图纸

技术编号:22640970 阅读:12 留言:0更新日期:2019-11-26 15:59
本公开提供了一种隐藏断言信息的获取方法、装置、介质和设备,该方法包括:打开动态库并映射到内存;通过ELF文件的头信息ELF Header,查找节头信息Section Headers和段表字符串表shstrtab,其中,所述段表字符串表shstrtab用于描述所述节头信息Section Headers中字符信息;遍历所述节头信息Section Headers,获取符号表symtab和字符串表strtab,所述字符串表strtab用于描述所述符号表symtab对应的字符串信息;遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量。通过上述方法能够通过层层解析ELF文件的方式,获取到系统的隐藏变量,进而获取到安卓系统下的断言信息,通过该断言信息分析解决崩溃问题,该方法为工程师的软件开发、测试、分析解决崩溃问题提出了便捷的方法途径,提高了软件开发的效率。

A method, device, medium and device for obtaining hidden assertion information

The present disclosure provides a method, device, medium and device for obtaining the hidden assertion information, which includes: opening the dynamic library and mapping it to memory; finding the section header information section headers and the section table string table shstrtab through the ELF file header information elf header, wherein the section table string table shstrtab is used to describe the character information in the section headers ; traverse the section headers to obtain the symbol table symtab and the string table strtab, which are used to describe the string information corresponding to the symbol table symtab; traverse the symbol table symtab to obtain the hidden variables in the symbol table symtab. Through the above method, the hidden variables of the system can be obtained through layer by layer analysis of ELF files, and then the assertion information under Android system can be obtained. Through the assertion information analysis, the crash problem can be solved. This method provides a convenient way for engineers to develop, test, analyze and solve the crash problem, and improves the efficiency of software development.

【技术实现步骤摘要】
一种隐藏断言信息的获取方法、装置、介质和设备
本公开涉及计算机
,具体而言,涉及一种隐藏断言信息的获取方法、装置、介质和电子设备。
技术介绍
在代码的编写过程中,为了调试方便,有时会在可能出现异常的地方加一些断言,系统在运行过程中,一旦命中断言条件就会输出断言信息,紧接着系统就会崩溃。工程师通过断言信息就可以分析和解决系统崩溃的问题。对于安卓系统,同样也存在大量的断言信息,在断言信息存在的地方,就可能会随之产生大量的崩溃事件,因此需要在安卓系统崩溃后准确的获得断言信息,以分享相关问题。目前安卓系统下的断言信息都存放在隐藏的变量当中,而对于隐藏变量的获取,只有安卓系统本身才能获取,对于各种在安卓系统下运行的应用程序无法获取隐藏变量,也就无法获取位于隐藏变量中的断言信息,无法获得系统崩溃的原因,这对于应用程序的质量平台搭建来说是一个严重的缺陷。公开内容本公开的目的在于提供一种隐藏断言信息的获取方法、装置、介质和电子设备,能够解决上述提到的至少一个技术问题。具体方案如下:根据本公开的具体实施方式,第一方面,本公开提供一种隐藏断言信息的获取方法,包括:打开动态库并映射到内存;通过ELF文件的头信息ELFHeader,查找节头信息SectionHeaders和段表字符串表shstrtab,其中,所述段表字符串表shstrtab用于描述所述节头信息SectionHeaders中字符信息;遍历所述节头信息SectionHeaders,获取符号表symtab和字符串表strtab,所述字符串表strtab用于描述所述符号表symtab对应的字符串信息;遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量。可选的,所述遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量,之后还包括:获取所述隐藏变量指向的隐藏断言信息,所述隐藏断言信息用于说明潜在的崩溃风险;发送所述隐藏断言信息,供开发人员分析所述崩溃风险。可选的,所述遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量,包括:遍历所述符号表symtab,查找隐藏变量白名单;通过所述白名单获取所述符号表symtab中的隐藏变量。可选的,所述打开动态库并映射到内存,包括:通过应用程序调用所述动态库,并使所述动态库映射到内存。根据本公开的具体实施方式,第二方面,本公开提供一种隐藏断言信息的获取装置,包括:映射单元,用于打开动态库并映射到内存;第一获取单元,用于通过ELF文件的头信息ELFHeader,查找节头信息SectionHeaders和段表字符串表shstrtab,其中,所述段表字符串表shstrtab用于描述所述节头信息SectionHeaders中字符信息;第二获取单元,用于遍历所述节头信息SectionHeaders,获取符号表symtab和字符串表strtab,所述字符串表strtab用于描述所述符号表symtab对应的字符串信息;第三获取单元,用于遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量。可选的,还包括:第四获取单元,用于获取所述隐藏变量指向的隐藏断言信息,所述隐藏断言信息用于说明潜在的崩溃风险;发送单元,用于发送所述隐藏断言信息,供开发人员分析所述崩溃风险。可选的,所述第三获取单元还用于:遍历所述符号表symtab,查找隐藏变量白名单;通过所述白名单获取所述符号表symtab中的隐藏变量。可选的,所述映射单元还用于:通过应用程序调用所述动态库,并使所述动态库映射到内存。根据本公开的具体实施方式,第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上任一项所述的方法。根据本公开的具体实施方式,第四方面,本公开提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上任一项所述的方法。本公开实施例的上述方案与现有技术相比,至少具有以下有益效果:本公开通过提供一种隐藏断言信息的获取方法,在应用程序下,通过层层解析ELF文件的方式,获取到系统的隐藏变量,进而获取到安卓系统下的断言信息,通过该断言信息分析解决崩溃问题,该方法使得应用程序在运行过程中可以不经过安卓系统而自己获得断言信息,为工程师的软件开发、测试、分析解决崩溃问题提出了便捷的方法途径,提高了软件开发的效率。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1示出了根据本公开实施例的隐藏断言信息的获取方法的流程图;图2示出了根据本公开实施例的隐藏断言信息的获取装置的框图;图3示出了根据本公开的实施例的电子设备连接结构示意图。具体实施方式为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。在本公开实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。应当理解,尽管在本公开实施例中可能采用术语第一、第二、第三等来描述……,但这些……不应限于这些术语。这些术语仅用来将……区分开。例如,在不脱离本公开实施例范围的情况下,第一……也可以被称为第二……,类似地,第二……也可以被称为第一……。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者本文档来自技高网...

【技术保护点】
1.一种隐藏断言信息的获取方法,其特征在于,包括:/n打开动态库并映射到内存;/n通过ELF文件的头信息ELF Header,查找节头信息Section Headers和段表字符串表shstrtab,其中,所述段表字符串表shstrtab用于描述所述节头信息Section Headers中字符信息;/n遍历所述节头信息Section Headers,获取符号表symtab和字符串表strtab,所述字符串表strtab用于描述所述符号表symtab对应的字符串信息;/n遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量。/n

【技术特征摘要】
1.一种隐藏断言信息的获取方法,其特征在于,包括:
打开动态库并映射到内存;
通过ELF文件的头信息ELFHeader,查找节头信息SectionHeaders和段表字符串表shstrtab,其中,所述段表字符串表shstrtab用于描述所述节头信息SectionHeaders中字符信息;
遍历所述节头信息SectionHeaders,获取符号表symtab和字符串表strtab,所述字符串表strtab用于描述所述符号表symtab对应的字符串信息;
遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量。


2.如权利要求1所述的方法,其特征在于,所述遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量,之后还包括:
获取所述隐藏变量指向的隐藏断言信息,所述隐藏断言信息用于说明潜在的崩溃风险;
发送所述隐藏断言信息,供开发人员分析所述崩溃风险。


3.如权利要求2所述的方法,其特征在于,所述遍历所述符号表symtab,获取所述符号表symtab中的隐藏变量,包括:
遍历所述符号表symtab,查找隐藏变量白名单;
通过所述白名单获取所述符号表symtab中的隐藏变量。


4.如权利要求2所述的方法,其特征在于,所述打开动态库并映射到内存,包括:
通过应用程序调用所述动态库,并使所述动态库映射到内存。


5.一种隐藏断言信息的获取装置,其特征在于,包括:
映射单元,用于打开动态库并映射到内存;
第一获取单元,用于通过ELF文件的头信息ELFHead...

【专利技术属性】
技术研发人员:朴英敏
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

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

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