[发明专利]一种基于静态分析获取HbuilderApp调用图的方法在审
申请号: | 201710621763.1 | 申请日: | 2017-07-26 |
公开(公告)号: | CN107301347A | 公开(公告)日: | 2017-10-27 |
发明(设计)人: | 张卫丰;汤健;周国强 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 南京知识律师事务所32207 | 代理人: | 高娇阳 |
地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 静态 分析 获取 hbuilderapp 调用 方法 | ||
技术领域
本发明涉及一种分析Hbuilder App跨JavaScript和Java语言的调用图的方法,属于软件工程和信息安全领域。
背景技术
Hybrid App的兴起是现阶段移动互联网产业的一种必然趋势。在中国以Hbuilder App应用最为流行。移动互联网的热潮刮起后,众多公司前赴后继的进入。HTML5的出现让Web App露出曙光,HTML5开发移动应用的跨平台和廉价优势让众多想进入移动互联网领域的公司开始心动。正是在这样是机缘巧合下,基于HTML5低成本跨平台开发优势又兼具Native App特质的Hybrid App技术杀入混战,并且很快吸引了众人的目光。大幅的降低了移动应用的开发成本。Gartner公司表示,混合应用程序提供基于HTML5的网络应用程序和本机应用程序之间的平衡,将在2016年之前在50%以上的移动应用程序中使用。
随着Hybrid App的出现,这种APP自身存在的安全问题不容忽视。混合应用程序广泛使用Webview,如果没有正确写入,会使应用程序处于危险中。在混合应用程序中可能会出现特定于HTML5和JavaScript的攻击,SQL注入导致的隐私泄露。XSS攻击现在变得越来越普遍,它打破了JavaScript的安全环境,它注入代码到Hbuilder App的Native部分代码中导致应用受到更大范围的攻击。目前Wed技术与本地移动技术的结合还没有被静态应用安全检测(SAST)所支持。
国内外针对安卓提取上下文的敏感行为来判断应用程序中的恶意和良性的行为,很多通过soot工具进行静态分析。在针对混合应用中的跨语言接口部分做了很多工作,引入了访问控制政策,例如NoFrak,MobileIFC等。
发明内容
本发明的目的是对Hbuilder App进行静态代码分析,建立一个统一的调用链路图,将Java和JavaScript部分联系起来。这个调用图是基于跨语言数据流分析的来保证两部分相互调用。这样就那能找到调用链路的源头,以及被调用的本地资源。分析源头是触发事件还是直接按规律调用事件,有助于查看该调用是良性还是恶性。
为了实现上述目的,本发明通过使用既支持Java又支持JavaScript的静态分析工具WALA。该工具对整个App源码进行分析,以获取我们所需要的完整的跨语言的调用图。它可以进行层次结构分析,基于上下文程序切片,用于迭代数据流。WALA中的一个模块JS_WALA专门处理JavaScript,它可以将JavaScript程序转变成一个更加简单的形式,并且生成过程间的控制流图,可以被其他模块任意调用。
为解决上述问题,本发明采用的方案如下:一种基于静态分析获取Hbuilder App调用图的方法,其特征在于,包括如下步骤:
(1)获取Hbuilder App:将Hybrid App从APK格式转化为.rar格式并进行解压,通过AXMLPrinter2.jar包反编译AndroidManifest.xml,根据反编译后AndroidManifest.xml中的关键词区分,找到Hbuilder App;
(2)分析Hbuilder App的Native部分,生成Java部分的控制流图;
(3)分析Hbuilder App的Webview部分,生成JavaScript部分的控制流图;
(4)结合Hbuilder App的Webview部分和Native部分的控制流图生成完整的调用图。
进一步,根据上述设计方案所述基于静态分析获取Hbuilder App调用图的方法,其特征在于,所述步骤(2)分析Hbuilder App的Native部分,生成Java部分的控制流图,首先使用makeJavaBinaryAnalysisScope()方法将java代码转为二进制形式存储到内存中,并解析一些基本的数据类型;再用ClassHierarchy里面的make()方法进行层次结构分析,可以在eclipse上生成可视化的类型层次结构,将程序所有的入口点带入AnalysisOptions()方法,经过makeZeroCFABuilder()和makeCallGraph()方法生成应用软件最终的Native部分有关Java代码的控制流图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710621763.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种触摸屏解锁方法
- 下一篇:一种微电路IC读头射频系统