[发明专利]反编译数据的处理方法和装置有效
申请号: | 201510994114.7 | 申请日: | 2015-12-25 |
公开(公告)号: | CN106919429B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 徐胜 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/53 | 分类号: | G06F8/53 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 反编译 数据 处理 方法 装置 | ||
本发明公开了一种反编译数据的处理方法和装置。其中,该方法包括:创建三维数组模型,三维数组模型包括:第一维数组、第二维数组和第三维数组;在将应用程序反编译为反编译程序之后,遍历反编译程序所包含的多个方法,获取每个方法的标识信息,其中,方法的标识信息包括:方法类名和方法签名信息;获取每个方法对应的多维向量对象,以及每个多维向量对象之间的调用关系;将每个方法的标识信息、对应的多维向量对象以及每个多维向量对象之间的调用关系分别记录至第一维数组中、第二维数组中和第三维数组中。本发明解决了现有技术将基本块结构体以指针方式构建函数调用关系,在全分支覆盖执行方面遍历速度慢的技术问题。
技术领域
本发明涉及反编译数据领域,具体而言,涉及一种反编译数据的处理方法和装置。
背景技术
Android程序运行在Dalvik虚拟机中,由Dalvik虚拟机解释执行Android程序的Dalvik指令,Dalvik指令经过反编译输出方便人阅读的smali指令。
对Android程序进行执行流追踪,一般分为两类:静态追踪和动态追踪。动态追踪即运行时追踪,存在执行分支覆盖不全的缺点;静态追踪分支覆盖全,但是,涉及程序的切片技术和函数调用追踪技术。现有的静态追踪技术中会把切片后的基本块以指针形式串接起来表达函数调用关系。
现有技术将基本块结构体以指针方式构建函数调用关系,虽然,能解决从某个函数出发正向深度递归遍历某个分支执行流,但是,对于定位执行入口,全分支覆盖执行,反向追踪执行方面加重了程序设计、编码的难度,使程序不易理解,降低了程序稳定性、可扩展性和灵活性。
针对现有技术将基本块结构体以指针方式构建函数调用关系,在全分支覆盖执行方面遍历速度慢的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种反编译数据的处理方法和装置,以至少解决现有技术将基本块结构体以指针方式构建函数调用关系,在全分支覆盖执行方面遍历速度慢的技术问题。
根据本发明实施例的一个方面,提供了一种反编译数据的处理方法,包括:创建三维数组模型,三维数组模型包括:第一维数组、第二维数组和第三维数组;在将应用程序反编译为反编译程序之后,遍历反编译程序所包含的多个方法,获取每个方法的标识信息,其中,方法的标识信息包括:方法类名和方法签名信息;获取每个方法对应的多维向量对象,以及每个多维向量对象之间的调用关系;将每个方法的标识信息、对应的多维向量对象以及每个多维向量对象之间的调用关系分别记录至第一维数组中、第二维数组中和第三维数组中。
根据本发明实施例的另一方面,还提供了一种反编译数据的处理装置,包括:创建模块,用于创建三维数组模型,装置三维数组模型包括:第一维数组、第二维数组和第三维数组;第一获取模块,用于在将应用程序反编译为反编译程序之后,遍历装置反编译程序所包含的多个方法,获取每个方法的标识信息,其中,装置方法的标识信息包括:方法类名和方法签名信息;第二获取模块,用于获取装置每个方法对应的多维向量对象,以及装置每个多维向量对象之间的调用关系;记录模块,用于将装置每个方法的装置标识信息、对应的装置多维向量对象以及每个多维向量对象之间的调用关系分别记录至装置第一维数组中、装置第二维数组中和装置第三维数组中。
在本发明实施例中,可以在将应用程序反编译为反编译程序之后,遍历反编译程序所包含的多个方法,获取每个方法的标识信息,每个方法对应的多维向量对象和每个多维向量对象之间的调用关系,并将每个方法的标识信息,对应的多维向量对象和每个多维向量对象之间的调用关系记录至创建好的三维数组模型。
容易注意到,由于可以通过将遍历反编译程序获取到每个方法的标识信息,对应的多维向量对象和每个多维向量对象之间的调用关系全部记录到创建的三维数组模型中,实现根据方法的类名和签名信息从三维数组模型中快速定位到多维向量对象的目的,因此,通过本申请实施例所提供的方案,可以根据需要的方法的类名和签名信息从三维数组模型中快速定位到多维向量对象,然后对所有向量采用深度优先递归遍历,完成全分支覆盖。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510994114.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种螺旋高频速热型水龙头
- 下一篇:一种球墨管件抢修用哈夫节
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置