[發(fā)明專(zhuān)利]一種基于靜態(tài)分析獲取HbuilderApp調(diào)用圖的方法在審
| 申請(qǐng)?zhí)枺?/td> | 201710621763.1 | 申請(qǐng)日: | 2017-07-26 |
| 公開(kāi)(公告)號(hào): | CN107301347A | 公開(kāi)(公告)日: | 2017-10-27 |
| 發(fā)明(設(shè)計(jì))人: | 張衛(wèi)豐;湯健;周?chē)?guó)強(qiáng) | 申請(qǐng)(專(zhuān)利權(quán))人: | 南京郵電大學(xué) |
| 主分類(lèi)號(hào): | G06F21/56 | 分類(lèi)號(hào): | G06F21/56 |
| 代理公司: | 南京知識(shí)律師事務(wù)所32207 | 代理人: | 高嬌陽(yáng) |
| 地址: | 210003 江蘇*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 靜態(tài) 分析 獲取 hbuilderapp 調(diào)用 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種分析Hbuilder App跨JavaScript和Java語(yǔ)言的調(diào)用圖的方法,屬于軟件工程和信息安全領(lǐng)域。
背景技術(shù)
Hybrid App的興起是現(xiàn)階段移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)的一種必然趨勢(shì)。在中國(guó)以Hbuilder App應(yīng)用最為流行。移動(dòng)互聯(lián)網(wǎng)的熱潮刮起后,眾多公司前赴后繼的進(jìn)入。HTML5的出現(xiàn)讓W(xué)eb App露出曙光,HTML5開(kāi)發(fā)移動(dòng)應(yīng)用的跨平臺(tái)和廉價(jià)優(yōu)勢(shì)讓眾多想進(jìn)入移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的公司開(kāi)始心動(dòng)。正是在這樣是機(jī)緣巧合下,基于HTML5低成本跨平臺(tái)開(kāi)發(fā)優(yōu)勢(shì)又兼具Native App特質(zhì)的Hybrid App技術(shù)殺入混戰(zhàn),并且很快吸引了眾人的目光。大幅的降低了移動(dòng)應(yīng)用的開(kāi)發(fā)成本。Gartner公司表示,混合應(yīng)用程序提供基于HTML5的網(wǎng)絡(luò)應(yīng)用程序和本機(jī)應(yīng)用程序之間的平衡,將在2016年之前在50%以上的移動(dòng)應(yīng)用程序中使用。
隨著Hybrid App的出現(xiàn),這種APP自身存在的安全問(wèn)題不容忽視。混合應(yīng)用程序廣泛使用Webview,如果沒(méi)有正確寫(xiě)入,會(huì)使應(yīng)用程序處于危險(xiǎn)中。在混合應(yīng)用程序中可能會(huì)出現(xiàn)特定于HTML5和JavaScript的攻擊,SQL注入導(dǎo)致的隱私泄露。XSS攻擊現(xiàn)在變得越來(lái)越普遍,它打破了JavaScript的安全環(huán)境,它注入代碼到Hbuilder App的Native部分代碼中導(dǎo)致應(yīng)用受到更大范圍的攻擊。目前Wed技術(shù)與本地移動(dòng)技術(shù)的結(jié)合還沒(méi)有被靜態(tài)應(yīng)用安全檢測(cè)(SAST)所支持。
國(guó)內(nèi)外針對(duì)安卓提取上下文的敏感行為來(lái)判斷應(yīng)用程序中的惡意和良性的行為,很多通過(guò)soot工具進(jìn)行靜態(tài)分析。在針對(duì)混合應(yīng)用中的跨語(yǔ)言接口部分做了很多工作,引入了訪問(wèn)控制政策,例如NoFrak,MobileIFC等。
發(fā)明內(nèi)容
本發(fā)明的目的是對(duì)Hbuilder App進(jìn)行靜態(tài)代碼分析,建立一個(gè)統(tǒng)一的調(diào)用鏈路圖,將Java和JavaScript部分聯(lián)系起來(lái)。這個(gè)調(diào)用圖是基于跨語(yǔ)言數(shù)據(jù)流分析的來(lái)保證兩部分相互調(diào)用。這樣就那能找到調(diào)用鏈路的源頭,以及被調(diào)用的本地資源。分析源頭是觸發(fā)事件還是直接按規(guī)律調(diào)用事件,有助于查看該調(diào)用是良性還是惡性。
為了實(shí)現(xiàn)上述目的,本發(fā)明通過(guò)使用既支持Java又支持JavaScript的靜態(tài)分析工具WALA。該工具對(duì)整個(gè)App源碼進(jìn)行分析,以獲取我們所需要的完整的跨語(yǔ)言的調(diào)用圖。它可以進(jìn)行層次結(jié)構(gòu)分析,基于上下文程序切片,用于迭代數(shù)據(jù)流。WALA中的一個(gè)模塊JS_WALA專(zhuān)門(mén)處理JavaScript,它可以將JavaScript程序轉(zhuǎn)變成一個(gè)更加簡(jiǎn)單的形式,并且生成過(guò)程間的控制流圖,可以被其他模塊任意調(diào)用。
為解決上述問(wèn)題,本發(fā)明采用的方案如下:一種基于靜態(tài)分析獲取Hbuilder App調(diào)用圖的方法,其特征在于,包括如下步驟:
(1)獲取Hbuilder App:將Hybrid App從APK格式轉(zhuǎn)化為.rar格式并進(jìn)行解壓,通過(guò)AXMLPrinter2.jar包反編譯AndroidManifest.xml,根據(jù)反編譯后AndroidManifest.xml中的關(guān)鍵詞區(qū)分,找到Hbuilder App;
(2)分析Hbuilder App的Native部分,生成Java部分的控制流圖;
(3)分析Hbuilder App的Webview部分,生成JavaScript部分的控制流圖;
(4)結(jié)合Hbuilder App的Webview部分和Native部分的控制流圖生成完整的調(diào)用圖。
進(jìn)一步,根據(jù)上述設(shè)計(jì)方案所述基于靜態(tài)分析獲取Hbuilder App調(diào)用圖的方法,其特征在于,所述步驟(2)分析Hbuilder App的Native部分,生成Java部分的控制流圖,首先使用makeJavaBinaryAnalysisScope()方法將java代碼轉(zhuǎn)為二進(jìn)制形式存儲(chǔ)到內(nèi)存中,并解析一些基本的數(shù)據(jù)類(lèi)型;再用ClassHierarchy里面的make()方法進(jìn)行層次結(jié)構(gòu)分析,可以在eclipse上生成可視化的類(lèi)型層次結(jié)構(gòu),將程序所有的入口點(diǎn)帶入AnalysisOptions()方法,經(jīng)過(guò)makeZeroCFABuilder()和makeCallGraph()方法生成應(yīng)用軟件最終的Native部分有關(guān)Java代碼的控制流圖。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于南京郵電大學(xué),未經(jīng)南京郵電大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710621763.1/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 上一篇:一種觸摸屏解鎖方法
- 下一篇:一種微電路IC讀頭射頻系統(tǒng)
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過(guò)保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過(guò)保護(hù)特定的外圍設(shè)備,如鍵盤(pán)或顯示器
G06F21-06 .通過(guò)感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過(guò)限制訪問(wèn)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過(guò)限制訪問(wèn)或處理程序或過(guò)程
- 復(fù)雜背景中實(shí)現(xiàn)靜態(tài)目標(biāo)檢測(cè)和識(shí)別的方法
- 一種設(shè)置靜態(tài)認(rèn)證信息的方法及裝置
- 一種基于物聯(lián)網(wǎng)技術(shù)的機(jī)房靜態(tài)資源快速定位的方法
- 一種動(dòng)態(tài)網(wǎng)頁(yè)靜態(tài)化的方法和裝置
- 瀏覽器靜態(tài)資源加載方法、瀏覽器程序及可讀存儲(chǔ)介質(zhì)
- 靜態(tài)資源更新方法、裝置、存儲(chǔ)介質(zhì)和計(jì)算機(jī)設(shè)備
- 一種圖像顯示方法及裝置
- 一種靜態(tài)方法修改非靜態(tài)對(duì)象的方法
- 一種靜態(tài)資源加載方法、裝置、設(shè)備及可讀存儲(chǔ)介質(zhì)
- 一種靜態(tài)資源獲取方法、裝置及其相關(guān)設(shè)備





