[发明专利]基于调用栈和依赖路径的函数调用代码生成方法及系统有效
申请号: | 201811015368.X | 申请日: | 2018-08-31 |
公开(公告)号: | CN109240666B | 公开(公告)日: | 2020-08-25 |
发明(设计)人: | 蔡华谦;黄罡;骆宇冲;景翔;马郓 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 调用 依赖 路径 函数 代码 生成 方法 系统 | ||
1.一种基于调用栈和依赖路径的函数调用代码生成方法,其特征在于,包括如下步骤:
步骤S1:在安卓应用运行时,对所述安卓应用的运行进行监控,得到所述安卓应用的行为反射运行时模型,然后跳转至步骤S2;所述行为反射运行时模型包括运行时栈模型和运行时堆模型;
步骤S2:标注目标对象,然后跳转至步骤S3,所述目标对象是所述运行时栈模型中包含目标数据的对象;
步骤S3:生成所述目标对象的所有函数调用集,然后跳转至步骤S4;
步骤S4:分析使用每一函数调用集生成函数调用代码的难度,并据此为每一函数调用集进行评分,然后跳转到步骤S5;
步骤S5:判断被选择的函数调用集是否依赖新对象,当所述被选择的函数调用集依赖新对象时,跳转至步骤S2,并将所述目标对象替换为依赖的新对象,否则跳转至步骤S6,所述被选择的函数调用集为根据各函数调用集的评分从所述所有函数调用集中选择的;
步骤S6:将各次选择的函数调用集按序组成函数调用序列,并使用所述函数调用序列生成可执行的函数调用代码。
2.如权利要求1所述的基于调用栈和依赖路径的函数调用代码生成方法,其特征在于,所述步骤S4中,分析使用函数调用集生成函数调用代码的难度,并据此为该函数调用集进行评分的步骤包括:
统计该函数调用集中函数调用的数目A;
统计该函数调用集所依赖的新对象的数目B;
统计该函数调用集所依赖的所有新对象的总相关函数调用的数目C;
统计该函数调用集中无法在运行时栈模型中构造的新对象数目D;
根据数目A、数目B、数目C及数目D各自的预设权重,将数目A、数目B、数目C及数目D进行加权求和,得到该函数调用集的评分。
3.如权利要求2所述的基于调用栈和依赖路径的函数调用代码生成方法,其特征在于,跳转到步骤S5之前,还包括如下步骤:
按照函数调用集评分由低到高的顺序推荐函数调用集以供选择。
4.如权利要求1所述的基于调用栈和依赖路径的函数调用代码生成方法,其特征在于,所述步骤S3中,生成所述目标对象的所有函数调用集包括如下步骤:
查找所述目标对象从第一次出现到包含所述目标数据的过程中所有调用的函数以及所有以所述目标对象为参数的函数;
依据运行时栈模型提供的函数调用栈信息,将查找到的函数划分成调用栈层次不完全相同但最后执行逻辑相同的多个函数调用集。
5.如权利要求4所述的基于调用栈和依赖路径的函数调用代码生成方法,其特征在于,生成所述目标对象的所有函数调用集时,将每一轮的目标对象及被选择的函数调用集所用到的函数序号存储在一个集合当中;
在获取依赖的新对象的所有调用函数时,如果遇到一条所述集合中存在的函数调用,则跳过对该函数调用及其函数调用栈下所有函数的搜索。
6.一种基于调用栈和依赖路径的函数调用代码生成系统,其特征在于,包括网构软件行为反射技术框架、目标对象标注模块、函数调用集生成模块、函数调用集评分模块、判断模块和函数调用代码生成模块;
所述网构软件行为反射技术框架,用于在安卓应用运行时,对所述安卓应用的运行进行监控,得到所述安卓应用的行为反射运行时模型,所述行为反射运行时模型包括运行时栈模型和运行时堆模型;
所述目标对象标注模块,用于标注目标对象,所述目标对象是所述运行时栈模型中包含目标数据的对象;
所述函数调用集生成模块,用于生成所述目标对象的所有函数调用集;
所述函数调用集评分模块,用于分析使用每一函数调用集生成函数调用代码的难度,并据此为每一函数调用集进行评分;
所述判断模块,用于判断被选择的函数调用集是否依赖新对象,当所述被选择的函数调用集依赖新对象时,返回运行所述目标对象标注模块,并将所述目标对象替换为依赖的新对象,否则运行所述函数调用代码生成模块,所述被选择的函数调用集为根据各函数调用集的评分从所述所有函数调用集中选择的;
所述函数调用代码生成模块,用于将各次选择的函数调用集按序组成函数调用序列,并使用所述函数调用序列生成可执行的函数调用代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811015368.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种具有自动接入功能的单兵模拟器
- 下一篇:一种特种陶瓷生产用喷粉设备