[發(fā)明專利]快速定位安卓應(yīng)用代碼文件中的指定內(nèi)容的方法和裝置在審
| 申請?zhí)枺?/td> | 201611110206.5 | 申請日: | 2016-12-06 |
| 公開(公告)號: | CN108614695A | 公開(公告)日: | 2018-10-02 |
| 發(fā)明(設(shè)計)人: | 袁偉;劉俊 | 申請(專利權(quán))人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F21/56 |
| 代理公司: | 北京市隆安律師事務(wù)所 11323 | 代理人: | 權(quán)鮮枝;何立春 |
| 地址: | 100088 北京市西城區(qū)新*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 節(jié)點集合 抽象語法樹 待處理文件 方法和裝置 多個屬性 快速定位 應(yīng)用代碼 代碼檢索 節(jié)點保存 解析文件 文件內(nèi)容 解析器 分類 調(diào)用 查找 | ||
本發(fā)明公開了一種快速定位安卓應(yīng)用代碼文件中的指定內(nèi)容的方法和裝置,其中所述方法包括:獲取待處理文件;調(diào)用所述待處理文件的解析器解析文件內(nèi)容,得到所述文件內(nèi)容的抽象語法樹;對所述抽象語法樹中的各節(jié)點進行分類,將類型相同的節(jié)點保存到對應(yīng)的同一個節(jié)點集合中,得到類型不同的多個節(jié)點集合;確定待定位的指定內(nèi)容的多個屬性,根據(jù)該多個屬性從所述多個節(jié)點集合中查找與所述指定內(nèi)容對應(yīng)的節(jié)點。該技術(shù)方案通過對節(jié)點的分類大大降低了定位指定內(nèi)容所需的時間,提升了代碼檢索效率。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種快速定位安卓應(yīng)用代碼文件中的指定內(nèi)容的方法和裝置。
背景技術(shù)
開發(fā)人員編寫的代碼文件往往還需要進行檢查,經(jīng)常需要定位到代碼中的指定內(nèi)容處。現(xiàn)有技術(shù)中往往通過代碼的靜態(tài)掃描等方式對代碼進行遍歷,這種方法速度慢,效率低,而且隨著代碼量的增大,遍歷時間往往成指數(shù)型增長,非常不利于代碼的檢查,影響項目進度。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的快速定位安卓應(yīng)用代碼文件中的指定內(nèi)容的方法和裝置。
依據(jù)本發(fā)明的一個方面,提供了一種快速定位安卓應(yīng)用代碼文件中的指定內(nèi)容的方法,包括:
獲取待處理文件;
調(diào)用所述待處理文件的解析器解析文件內(nèi)容,得到所述文件內(nèi)容的抽象語法樹;
對所述抽象語法樹中的各節(jié)點進行分類,將類型相同的節(jié)點保存到對應(yīng)的同一個節(jié)點集合中,得到類型不同的多個節(jié)點集合;
確定待定位的指定內(nèi)容的多個屬性,根據(jù)該多個屬性從所述多個節(jié)點集合中查找與所述指定內(nèi)容對應(yīng)的節(jié)點。
可選地,所述獲取待處理文件包括:
獲取所述待處理文件的路徑信息;
根據(jù)所述待處理文件的路徑信息,以多線程方式讀取該路徑下的所有文件。
可選地,所述確定待定位的指定內(nèi)容的多個屬性包括:
確定所述指定內(nèi)容的分類屬性;
以及確定所述指定內(nèi)容的一個或多個其他屬性。
可選地,所述根據(jù)該多個屬性從所述多個節(jié)點集合中查找與所述指定內(nèi)容對應(yīng)的節(jié)點包括:
先根據(jù)所述指定內(nèi)容的分類屬性,確定與該分類屬性對應(yīng)的一個節(jié)點集合;
從所述其他屬性中選擇一個屬性,從所確定的節(jié)點集合中查找出與該屬性匹配的節(jié)點;
判斷所述一個或多個其他屬性中是否存在未被選擇的屬性,如果存在則從查找的節(jié)點中進一步選出與該屬性匹配的節(jié)點,直到所述的其他屬性均被選擇過一次。
可選地,所述將類型相同的節(jié)點放入對應(yīng)的同一個節(jié)點集合中,得到類型不同的多個節(jié)點集合進一步包括:
將一個節(jié)點保存到對應(yīng)的節(jié)點集合時,將該節(jié)點在所述抽象語法樹中的路徑信息一同保存。
可選地,每種節(jié)點類型是根據(jù)JAVACC的一種語法規(guī)則確定的。
可選地,所述待處理文件為安卓源代碼文件;
所述指定內(nèi)容為安卓源代碼中具有安全漏洞的內(nèi)容。
可選地,該方法進一步包括:
根據(jù)預(yù)置的安全漏洞檢測規(guī)則,確定待定位的指定內(nèi)容和與指定內(nèi)容對應(yīng)的安全漏洞類型。
可選地,所述待處理文件還包括:所述安卓源代碼文件對應(yīng)的安卓配置文件;
所述指定內(nèi)容還包括:所述安卓配置文件中具有安全漏洞的內(nèi)容;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經(jīng)北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611110206.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





