[发明专利]快速定位安卓应用代码文件中的指定内容的方法和装置在审
申请号: | 201611110206.5 | 申请日: | 2016-12-06 |
公开(公告)号: | CN108614695A | 公开(公告)日: | 2018-10-02 |
发明(设计)人: | 袁伟;刘俊 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F21/56 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝;何立春 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 节点集合 抽象语法树 待处理文件 方法和装置 多个属性 快速定位 应用代码 代码检索 节点保存 解析文件 文件内容 解析器 分类 调用 查找 | ||
本发明公开了一种快速定位安卓应用代码文件中的指定内容的方法和装置,其中所述方法包括:获取待处理文件;调用所述待处理文件的解析器解析文件内容,得到所述文件内容的抽象语法树;对所述抽象语法树中的各节点进行分类,将类型相同的节点保存到对应的同一个节点集合中,得到类型不同的多个节点集合;确定待定位的指定内容的多个属性,根据该多个属性从所述多个节点集合中查找与所述指定内容对应的节点。该技术方案通过对节点的分类大大降低了定位指定内容所需的时间,提升了代码检索效率。
技术领域
本发明涉及计算机技术领域,特别涉及一种快速定位安卓应用代码文件中的指定内容的方法和装置。
背景技术
开发人员编写的代码文件往往还需要进行检查,经常需要定位到代码中的指定内容处。现有技术中往往通过代码的静态扫描等方式对代码进行遍历,这种方法速度慢,效率低,而且随着代码量的增大,遍历时间往往成指数型增长,非常不利于代码的检查,影响项目进度。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的快速定位安卓应用代码文件中的指定内容的方法和装置。
依据本发明的一个方面,提供了一种快速定位安卓应用代码文件中的指定内容的方法,包括:
获取待处理文件;
调用所述待处理文件的解析器解析文件内容,得到所述文件内容的抽象语法树;
对所述抽象语法树中的各节点进行分类,将类型相同的节点保存到对应的同一个节点集合中,得到类型不同的多个节点集合;
确定待定位的指定内容的多个属性,根据该多个属性从所述多个节点集合中查找与所述指定内容对应的节点。
可选地,所述获取待处理文件包括:
获取所述待处理文件的路径信息;
根据所述待处理文件的路径信息,以多线程方式读取该路径下的所有文件。
可选地,所述确定待定位的指定内容的多个属性包括:
确定所述指定内容的分类属性;
以及确定所述指定内容的一个或多个其他属性。
可选地,所述根据该多个属性从所述多个节点集合中查找与所述指定内容对应的节点包括:
先根据所述指定内容的分类属性,确定与该分类属性对应的一个节点集合;
从所述其他属性中选择一个属性,从所确定的节点集合中查找出与该属性匹配的节点;
判断所述一个或多个其他属性中是否存在未被选择的属性,如果存在则从查找的节点中进一步选出与该属性匹配的节点,直到所述的其他属性均被选择过一次。
可选地,所述将类型相同的节点放入对应的同一个节点集合中,得到类型不同的多个节点集合进一步包括:
将一个节点保存到对应的节点集合时,将该节点在所述抽象语法树中的路径信息一同保存。
可选地,每种节点类型是根据JAVACC的一种语法规则确定的。
可选地,所述待处理文件为安卓源代码文件;
所述指定内容为安卓源代码中具有安全漏洞的内容。
可选地,该方法进一步包括:
根据预置的安全漏洞检测规则,确定待定位的指定内容和与指定内容对应的安全漏洞类型。
可选地,所述待处理文件还包括:所述安卓源代码文件对应的安卓配置文件;
所述指定内容还包括:所述安卓配置文件中具有安全漏洞的内容;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611110206.5/2.html,转载请声明来源钻瓜专利网。