[发明专利]反编译数据的处理方法和装置有效

专利信息
申请号: 201510994114.7 申请日: 2015-12-25
公开(公告)号: CN106919429B 公开(公告)日: 2021-05-04
发明(设计)人: 徐胜 申请(专利权)人: 阿里巴巴集团控股有限公司
主分类号: G06F8/53 分类号: G06F8/53
代理公司: 北京博浩百睿知识产权代理有限责任公司 11134 代理人: 宋子良
地址: 英属开曼群岛大开*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 反编译 数据 处理 方法 装置
【说明书】:

发明公开了一种反编译数据的处理方法和装置。其中,该方法包括:创建三维数组模型,三维数组模型包括:第一维数组、第二维数组和第三维数组;在将应用程序反编译为反编译程序之后,遍历反编译程序所包含的多个方法,获取每个方法的标识信息,其中,方法的标识信息包括:方法类名和方法签名信息;获取每个方法对应的多维向量对象,以及每个多维向量对象之间的调用关系;将每个方法的标识信息、对应的多维向量对象以及每个多维向量对象之间的调用关系分别记录至第一维数组中、第二维数组中和第三维数组中。本发明解决了现有技术将基本块结构体以指针方式构建函数调用关系,在全分支覆盖执行方面遍历速度慢的技术问题。

技术领域

本发明涉及反编译数据领域,具体而言,涉及一种反编译数据的处理方法和装置。

背景技术

Android程序运行在Dalvik虚拟机中,由Dalvik虚拟机解释执行Android程序的Dalvik指令,Dalvik指令经过反编译输出方便人阅读的smali指令。

对Android程序进行执行流追踪,一般分为两类:静态追踪和动态追踪。动态追踪即运行时追踪,存在执行分支覆盖不全的缺点;静态追踪分支覆盖全,但是,涉及程序的切片技术和函数调用追踪技术。现有的静态追踪技术中会把切片后的基本块以指针形式串接起来表达函数调用关系。

现有技术将基本块结构体以指针方式构建函数调用关系,虽然,能解决从某个函数出发正向深度递归遍历某个分支执行流,但是,对于定位执行入口,全分支覆盖执行,反向追踪执行方面加重了程序设计、编码的难度,使程序不易理解,降低了程序稳定性、可扩展性和灵活性。

针对现有技术将基本块结构体以指针方式构建函数调用关系,在全分支覆盖执行方面遍历速度慢的技术问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种反编译数据的处理方法和装置,以至少解决现有技术将基本块结构体以指针方式构建函数调用关系,在全分支覆盖执行方面遍历速度慢的技术问题。

根据本发明实施例的一个方面,提供了一种反编译数据的处理方法,包括:创建三维数组模型,三维数组模型包括:第一维数组、第二维数组和第三维数组;在将应用程序反编译为反编译程序之后,遍历反编译程序所包含的多个方法,获取每个方法的标识信息,其中,方法的标识信息包括:方法类名和方法签名信息;获取每个方法对应的多维向量对象,以及每个多维向量对象之间的调用关系;将每个方法的标识信息、对应的多维向量对象以及每个多维向量对象之间的调用关系分别记录至第一维数组中、第二维数组中和第三维数组中。

根据本发明实施例的另一方面,还提供了一种反编译数据的处理装置,包括:创建模块,用于创建三维数组模型,装置三维数组模型包括:第一维数组、第二维数组和第三维数组;第一获取模块,用于在将应用程序反编译为反编译程序之后,遍历装置反编译程序所包含的多个方法,获取每个方法的标识信息,其中,装置方法的标识信息包括:方法类名和方法签名信息;第二获取模块,用于获取装置每个方法对应的多维向量对象,以及装置每个多维向量对象之间的调用关系;记录模块,用于将装置每个方法的装置标识信息、对应的装置多维向量对象以及每个多维向量对象之间的调用关系分别记录至装置第一维数组中、装置第二维数组中和装置第三维数组中。

在本发明实施例中,可以在将应用程序反编译为反编译程序之后,遍历反编译程序所包含的多个方法,获取每个方法的标识信息,每个方法对应的多维向量对象和每个多维向量对象之间的调用关系,并将每个方法的标识信息,对应的多维向量对象和每个多维向量对象之间的调用关系记录至创建好的三维数组模型。

容易注意到,由于可以通过将遍历反编译程序获取到每个方法的标识信息,对应的多维向量对象和每个多维向量对象之间的调用关系全部记录到创建的三维数组模型中,实现根据方法的类名和签名信息从三维数组模型中快速定位到多维向量对象的目的,因此,通过本申请实施例所提供的方案,可以根据需要的方法的类名和签名信息从三维数组模型中快速定位到多维向量对象,然后对所有向量采用深度优先递归遍历,完成全分支覆盖。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510994114.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top