• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于LLVM 的Android 應(yīng)用程序加固方法

    2021-05-28 06:04:10江秋語(yǔ)殷芙萍
    現(xiàn)代計(jì)算機(jī) 2021年11期
    關(guān)鍵詞:基本塊控制流字符串

    江秋語(yǔ),殷芙萍

    (1.四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065;2.上海理工大學(xué)管理學(xué)院,上海200082)

    0 引言

    Android 平臺(tái)的開源特性使它在全球智能手機(jī)市場(chǎng)占據(jù)主導(dǎo)地位[1]。然而,近90%的Android 應(yīng)用程序中存在重打包的現(xiàn)象,嚴(yán)重侵犯了開發(fā)者的知識(shí)產(chǎn)權(quán)。由于Java 類文件和DEX 文件保留了大部分的語(yǔ)義信息,攻擊者使用逆向工具可以輕而易舉地進(jìn)行破解以獲取程序的源代碼。

    為解決此問(wèn)題,常用混淆技術(shù)對(duì)Android 應(yīng)用程序進(jìn)行加固。代碼混淆技術(shù)是一種代碼轉(zhuǎn)換機(jī)制,通過(guò)將易讀的代碼或數(shù)據(jù)進(jìn)行保留語(yǔ)義的轉(zhuǎn)換、重組和整理來(lái)加大代碼分析難度,達(dá)到保護(hù)軟件安全的目的。但是對(duì)Java 代碼進(jìn)行混淆會(huì)大大降低程序的性能,為了解決這個(gè)問(wèn)題,本文提出了一種基于LLVM 的Android應(yīng)用程序的混淆方法,利用LLVM 將DEX 文件中的Java 函數(shù)轉(zhuǎn)化為本地代碼,相比于Java 代碼,本地代碼具有更少的語(yǔ)義信息和更快的加載速度,能有效增加攻擊者分析的難度,減少混淆帶來(lái)的性能損失。

    1 相關(guān)工作

    近年來(lái),由于本地代碼具有更少的語(yǔ)義信息和更快的加載速度的特點(diǎn),Android 應(yīng)用保護(hù)的研究方向也逐漸轉(zhuǎn)向本地代碼的保護(hù),研究人員開始結(jié)合代碼混淆技術(shù)和虛擬化保護(hù)方法來(lái)保護(hù)Android 應(yīng)用中的本地代碼。

    Vivek Balachandran 等人[2]提出一種針對(duì)Java 層代碼的混淆保護(hù)方法,利用切片技術(shù)將函數(shù)劃分為多個(gè)代碼片段,通過(guò)pack 和switch 指令將代碼片段的控制流平展,同時(shí)插入垃圾代碼擴(kuò)展分支語(yǔ)句來(lái)增強(qiáng)其控制流復(fù)雜程度,為了防止符號(hào)執(zhí)行方法恢復(fù)混淆后的控制流,使用try 和catch 指令來(lái)隱藏控制流的跳轉(zhuǎn)。但僅僅增加控制流的復(fù)雜程度不能很好地增加攻擊者分析的難度,而且對(duì)APK 內(nèi)所有基本塊進(jìn)行切片并進(jìn)行混淆會(huì)導(dǎo)致很大的性能開銷,因此只能選擇部分關(guān)鍵函數(shù)進(jìn)行保護(hù)。

    Kyeonghwan Lim 等人[3]進(jìn)一步提出針對(duì)Android 本地代碼的保護(hù)方法,通過(guò)將Android 字節(jié)碼以更安全和高效的形式保存在本地代碼中并使用OLLVM 來(lái)對(duì)其進(jìn)行混淆,以增強(qiáng)代碼最終的安全性,但是近年來(lái)有很多針對(duì)OLLVM 的反混淆研究,僅僅使用OLLVM 進(jìn)行混淆保護(hù)不能很好的增加攻擊者分析的難度,因此需要增加混淆方式的多樣性和復(fù)雜性以便更好的保護(hù)Android 應(yīng)用程序。

    趙貝貝等人[4]提出了針對(duì)DEX 文件和SO 文件的多重虛擬化保護(hù)方法,通過(guò)將DEX 文件中的部分函數(shù)轉(zhuǎn)化為本地層函數(shù),然后分別對(duì)其和SO 文件進(jìn)行指令的虛擬化,大大增加的逆向分析的難度。由于虛擬化保護(hù)技術(shù)需要將被保護(hù)代碼全部轉(zhuǎn)化為自定義的虛擬指令,然后在運(yùn)行的時(shí)候根據(jù)自定義的解釋器逐條翻譯虛擬指令,這樣會(huì)大大降低Android 應(yīng)用程序的執(zhí)行效率。

    綜上所述,現(xiàn)有的Android 應(yīng)用程序保護(hù)方法能夠在一定程度上提高程序的安全性,但是仍然存在性能開銷過(guò)大和無(wú)法有效抵御動(dòng)態(tài)攻擊的問(wèn)題。

    2 具體實(shí)現(xiàn)

    圖1 描述了本文所提Android 應(yīng)用程序加固方法的五個(gè)步驟:首先是關(guān)鍵函數(shù)的提取,通過(guò)一個(gè)決策模型選擇被保護(hù)函數(shù),將其反匯編為Smali 代碼;再對(duì)Smali 代碼進(jìn)行解析,將其轉(zhuǎn)化為同語(yǔ)義的C++代碼;接著由LLVM[5]前端Clang 解析、驗(yàn)證和診斷輸入的C++代碼;然后通過(guò)編寫LLVM 中端的優(yōu)化模塊完成對(duì)LLVMIR 的優(yōu)化、轉(zhuǎn)換、混淆[6]等一系列自定義操作,將優(yōu)化后的指令轉(zhuǎn)化為本地代碼;最后將修改后的DEX文件和LLVM 后端生成的本地代碼重新打包為一個(gè)新的APK 文件。下面介紹一些關(guān)鍵技術(shù)的具體實(shí)現(xiàn),如選擇關(guān)鍵函數(shù)、關(guān)鍵函數(shù)的轉(zhuǎn)化、控制流混淆、不透明謂詞混淆、整型數(shù)和字符串混淆。

    圖1 本文所提加固方法的主要流程

    2.1 選擇關(guān)鍵函數(shù)

    對(duì)所有Java 層函數(shù)進(jìn)行加固會(huì)造成巨大開銷[7],部分函數(shù)的程序框架,如窗口操作和界面渲染,已經(jīng)被業(yè)內(nèi)人士所熟知。相比于核心加密和通信邏輯的函數(shù),這些函數(shù)本身調(diào)用了許多其他函數(shù),無(wú)需浪費(fèi)額外的資源對(duì)其進(jìn)行加固,因此本文構(gòu)建一個(gè)決策模型識(shí)別DEX 文件中的關(guān)鍵函數(shù):

    首先深度優(yōu)先遍歷反匯編后的Smali 文件,生成每個(gè)函數(shù)的函數(shù)調(diào)用樹;其次選擇樹中的葉子節(jié)點(diǎn),也就是不存在函數(shù)調(diào)用的函數(shù),將函數(shù)名添加到被保護(hù)函數(shù)列表中,修改函數(shù)屬性為Native 類型;最后刪除原函數(shù)體并添加無(wú)用的垃圾指令來(lái)影響攻擊者逆向分析。

    圖2 函數(shù)F調(diào)用樹

    2.2 關(guān)鍵函數(shù)的轉(zhuǎn)化

    將關(guān)鍵函數(shù)轉(zhuǎn)化為C++代碼通過(guò)指令逐條翻譯和程序語(yǔ)義恢復(fù)實(shí)現(xiàn)。

    指令逐條翻譯:圖3 是一個(gè)函數(shù)反匯編生成的Smali 代碼,Smali 是基于寄存器的指令,由于同一個(gè)寄存器一般儲(chǔ)存多個(gè)不同類型的變量,因此在翻譯每一條指令時(shí)要對(duì)寄存器里的值進(jìn)行區(qū)分。將Smali 指令逐條翻譯后如圖4 所示:為每一個(gè)寄存器操作分配一個(gè)新的臨時(shí)變量來(lái)翻譯指令,當(dāng)該寄存器進(jìn)行賦值操作后,用一個(gè)新的臨時(shí)變量替代之前的臨時(shí)變量。

    圖3 Smali 指令

    圖4 C++代碼

    程序語(yǔ)義恢復(fù):構(gòu)建一個(gè)以每一條指令作為一個(gè)節(jié)點(diǎn)的指令圖,深度優(yōu)先搜索圖中的每一個(gè)節(jié)點(diǎn),根據(jù)每個(gè)節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)和后繼節(jié)點(diǎn)以及節(jié)點(diǎn)的出度和入度,刪除不必要的變量并增加新的變量關(guān)聯(lián),恢復(fù)程序正常的邏輯關(guān)系和上下文。

    圖5 C++代碼的指令圖

    圖6 優(yōu)化后的C++代碼

    2.3 控制流平坦化

    控制流圖[8]是程序的抽象表現(xiàn),圖中每一個(gè)節(jié)點(diǎn)代表一個(gè)基本塊??刂屏髌教够瘜⒊绦虻目刂屏鲌D轉(zhuǎn)化為一個(gè)有很多分支的switch 結(jié)構(gòu),通過(guò)替換程序中的循環(huán)判斷條件和計(jì)數(shù)器,將程序的跳轉(zhuǎn)過(guò)程集中在switch 的判斷語(yǔ)句。一個(gè)函數(shù)的原始控制流圖,包含一些變量的賦值和一個(gè)循環(huán),如圖7 所示。圖8 是對(duì)其進(jìn)行控制流平坦化后的控制流圖,通過(guò)變量V 來(lái)控制程序的執(zhí)行,每執(zhí)行完一個(gè)基本塊后,對(duì)V 進(jìn)行賦值操作來(lái)決定下一個(gè)要執(zhí)行的基本塊。

    圖7 函數(shù)的原始控制流圖

    實(shí)現(xiàn)流程如下面的偽代碼所示:遍歷函數(shù)中所有的基本塊,選擇第一個(gè)基本塊作為函數(shù)的入口,若是有條件的基本塊,則將其轉(zhuǎn)為一個(gè)無(wú)條件的基本塊和一個(gè)有條件的基本塊,并將無(wú)條件的基本塊作為程序的入口;為每一個(gè)基本塊分配一個(gè)唯一的編號(hào),并修改其結(jié)尾的跳轉(zhuǎn)指令,若當(dāng)前基本塊為非條件跳轉(zhuǎn),將變量V 的值賦值為要跳轉(zhuǎn)的基本塊的編號(hào);若當(dāng)前基本塊為條件跳轉(zhuǎn),則需要修改為兩個(gè)條件賦值指令。最后,將基本塊插入到switch 結(jié)構(gòu)中。

    圖8 控制流平坦化后的控制流圖

    圖9 偽代碼

    2.4 不透明謂詞混淆

    不透明謂詞[9]是一種布爾表達(dá)式,其結(jié)果為真或者為假。攻擊者只有在程序執(zhí)行到一定階段才能利用逆向工具對(duì)它進(jìn)行分析,因此不透明謂詞混淆可以抵御大部分靜態(tài)攻擊,本文選擇數(shù)論的結(jié)論來(lái)生成不透明謂詞。

    實(shí)現(xiàn)過(guò)程如下:對(duì)基本塊進(jìn)行拆分,直到每個(gè)基本塊都無(wú)法再被拆分,向前驅(qū)基本塊插入一個(gè)無(wú)條件跳轉(zhuǎn)指令指向其后繼基本塊,以保證程序的正確運(yùn)行;生成一組不透明謂詞(pi,i=1,2,…,n,其中任意一個(gè)pi 的值為真時(shí),其他所有不透明謂詞的值都為真)將其插入到拆分后的基本塊中,如圖10 所示。

    圖10 不透明謂詞混淆

    2.5 整型數(shù)替換

    整型數(shù)替換相比于加密優(yōu)勢(shì)在于,加密后的數(shù)據(jù)在內(nèi)存中運(yùn)行時(shí)解密,很容易被攻擊者發(fā)現(xiàn)并利用,而混淆后的數(shù)據(jù)在內(nèi)存中保持原有的形式,攻擊者難以理解。整型數(shù)替換的原理是將一個(gè)整型數(shù)拆分為高位和低位長(zhǎng)度相同的兩部分,分別儲(chǔ)存在寄存器中并對(duì)整型數(shù)的基本運(yùn)算進(jìn)行替換。例如,可以將一個(gè)長(zhǎng)為2N 的整型數(shù)A 拆分為長(zhǎng)度均為N 的Ah(高位)和Al(低位)。

    對(duì)于加法運(yùn)算A=B+C,

    Al=(Bl+Cl)mod(1<>N)mod(1<

    對(duì)于減法運(yùn)算A=B-C,

    Al=(Bl-Cl)mod(1<>N)mod(1<

    對(duì)于比較運(yùn)算,只需要先比較高位,若不相等則不需要再比較低位。

    對(duì)于位運(yùn)算,只需要同時(shí)對(duì)高位或低位進(jìn)行相同的位運(yùn)算操作即可。

    對(duì)于移位運(yùn)算A=B>>x,

    其中0>x,Ah=Bh>>x

    對(duì)于除法和乘法運(yùn)算,LLVM 在編譯器優(yōu)化過(guò)程會(huì)對(duì)乘除法指令進(jìn)行替換,轉(zhuǎn)化為由移位和加法等指令等價(jià)表示的形式,由于乘法和除法的拆分會(huì)造成很大的開銷,因此不對(duì)存在乘法和除法的代碼進(jìn)行整型數(shù)的拆分。

    LLVMIR[10]使用了一個(gè)由%字符命名的無(wú)限寄存器集合,而不是一個(gè)固定的命名寄存器集合。整型變量的表示一般以i 為起始標(biāo)志,i32 表示32 位整型數(shù),all?oca i32 指令用于分配32 位長(zhǎng)度的整型數(shù)變量。例如加法運(yùn)算A=B+C,%1、%2、%3 分別用于儲(chǔ)存A、B、C的值,然后將B 和C 的值讀取出來(lái),相加后儲(chǔ)存到A中;其進(jìn)行整型數(shù)拆分的結(jié)果如圖11 所示,分別使用兩個(gè)寄存器儲(chǔ)存A、B、C 的值,首先是低位相加,再對(duì)65536 取模,完成低位相加,然后是高位相加的結(jié)果和低位和右移16 位的結(jié)果相加,最后對(duì)65536 取模完成高位相加。

    圖11 混淆前的LLVMIR

    圖12 混淆后的LLVMIR

    2.6 字符串混淆

    代碼中hashcode 的字符串可以在生成的binary 中查找到,因此增加破解的難度對(duì)字符串進(jìn)行混淆很重要。常用方法是在編譯過(guò)程中使用密鑰對(duì)原字符串異或加密,然后在函數(shù)頭部插入解密代碼在運(yùn)行時(shí)進(jìn)行字符串解密[11],文件加載后,字符串在內(nèi)存中仍是解密后的形式,因此,需要對(duì)字符串的解密進(jìn)行隱藏。

    實(shí)現(xiàn)過(guò)程如下:首先生成隨機(jī)密鑰對(duì)字符串異或加密,在函數(shù)要使用加密的字符串時(shí)調(diào)用解密函數(shù)。解密函數(shù)會(huì)首先申請(qǐng)一個(gè)與原字符串等長(zhǎng)的??臻g,用于保存解密后的字符串,并修改原字符串的引用地址到當(dāng)前棧的地址;字符串使用后會(huì)釋放棧的空間,解密后的字符串不會(huì)一直存在內(nèi)存中,能一定程度上抵抗動(dòng)態(tài)攻擊。

    3 實(shí)驗(yàn)

    從手動(dòng)分析、通用脫殼工具攻擊和運(yùn)行性能三個(gè)

    方面進(jìn)行測(cè)試。編譯時(shí)系統(tǒng)使用Ubuntu 16.04 和LLVM 5.0 版本;測(cè)試端使用Android 5.0。

    3.1 手動(dòng)攻擊

    本部分主要以攻擊者的角度,使用一些逆向工具來(lái)分析加固后的代碼。首先,使用JEB[12]的工具反編譯Android 應(yīng)用程序。如圖13 所示,可以看到未加固代碼的邏輯是清晰可見,而加固后的代碼在Java 層中只有方法的聲明。攻擊者再進(jìn)一步的分析,結(jié)合Java 文件中的函數(shù)聲明和從IDA[13]輸出的偽代碼,可以快速找到函數(shù)的實(shí)現(xiàn),但是經(jīng)過(guò)字符串和整型變量混淆以后,它們都沒(méi)有完整的語(yǔ)義,導(dǎo)致攻擊者很難理解。所以,攻擊者想要獲取應(yīng)用程序的原始邏輯需要大量的時(shí)間和精力。

    圖13 原始代碼反編譯結(jié)果

    圖14 加固后代碼反編譯結(jié)果

    3.2 通用脫殼工具攻擊

    本部分主要選擇了六個(gè)常見的Android 脫殼工具,并使用它們來(lái)分析加固后的應(yīng)用程序。DEXExtractor[14]原理是修改系統(tǒng)DVM 虛擬機(jī)模塊代碼DEXFile.cpp文件的DEXFileParse 函數(shù),在系統(tǒng)調(diào)用DEXFileParse函數(shù)之前將原始DEX 文件從內(nèi)存dump 出來(lái)。但是本文的方法已經(jīng)將DEX 文件中的關(guān)鍵函數(shù)本地化,即使在內(nèi)存中dump 出DEX 文件依然得不到函數(shù)的實(shí)現(xiàn)方式。Drizzledumper[15]原理是在root 環(huán)境下,通過(guò)ptrace附加需要脫殼的APK 進(jìn)程,然后在脫殼的APK 進(jìn)程的內(nèi)存中進(jìn)行DEX 文件頭的特征搜索,當(dāng)搜索到DEX文件時(shí)進(jìn)行DEX 文件的內(nèi)存dump。由于函數(shù)經(jīng)過(guò)本地化保護(hù)后在內(nèi)存中找不到DEX 頭文件,因此這個(gè)工具對(duì)于本方法是無(wú)效的。ZjDroid[16]基于Xposed 框架,通過(guò)hook 每個(gè)應(yīng)用進(jìn)程在Java 級(jí)別獲取DEX 文件并利用獲得的mcookie dump 出DEX 文件,因此它無(wú)法在本地層還原代碼。DEXHunter[17]原理是在Android 系統(tǒng)代碼調(diào)用函數(shù)dvmDefineClass 進(jìn)行類加載之前,主動(dòng)地一次性加載并初始化DEX 文件所有的類。但它不能處理帶有代碼混淆和垃圾指令的加殼程序。Packer?Grind[18]從運(yùn)行時(shí)跟蹤、系統(tǒng)跟蹤和指令跟蹤對(duì)加殼的App 進(jìn)行監(jiān)控和分析,最后進(jìn)行還原。本文對(duì)代碼的控制流和數(shù)據(jù)都進(jìn)行了混淆,不透明謂詞產(chǎn)生的虛假控制流使它無(wú)法決定哪個(gè)代碼是正確的。DROIDUN?PACK 可以對(duì)JNI 接口進(jìn)行檢查,進(jìn)而知道哪些函數(shù)已經(jīng)本地化,本文的方法對(duì)數(shù)據(jù)進(jìn)行了混淆,使得它很難將其還原為正確的指令執(zhí)行。

    結(jié)果如表1 所示,DROIDUNPACK 是目前最強(qiáng)大的脫殼工具,但是對(duì)本文提出的方法無(wú)效。這是因?yàn)楸疚牡姆椒▽EX 字節(jié)碼編譯時(shí)混淆成本機(jī)代碼,在運(yùn)行代碼時(shí)動(dòng)態(tài)還原并在使用后再次加密。實(shí)驗(yàn)結(jié)果表明,本文提出的加固方法克服了傳統(tǒng)加固方法容易被還原的缺點(diǎn),對(duì)通用逆向工具有良好的抵抗能力。

    表1 脫殼工具以及對(duì)應(yīng)的脫殼結(jié)果

    3.3 運(yùn)行性能

    本部分從CPU 占用率、大小和運(yùn)行時(shí)內(nèi)存使用率三個(gè)方面來(lái)評(píng)估加固前后程序的運(yùn)行性能。選擇了六個(gè)常見的Android 應(yīng)用,每一個(gè)應(yīng)用程序都要運(yùn)行10次,取其結(jié)果的平均值作為最后的實(shí)驗(yàn)結(jié)果。在測(cè)試過(guò)程中,通過(guò)Monkey[19]觸發(fā)隨機(jī)點(diǎn)擊、幻燈片、文本或字符輸入模擬用戶的行為,隨機(jī)事件設(shè)置間隔為1s,每次數(shù)據(jù)收集的時(shí)間為10 分鐘。最后使用騰訊的開源性能測(cè)試工具GT[20]獲得了相應(yīng)的實(shí)驗(yàn)數(shù)據(jù),如表2所示。

    CPU 使用率:可以看出,加固后程序的CPU 使用率與原應(yīng)用程序幾乎相同。

    大?。簭谋碇锌梢钥闯?,所有加固后的應(yīng)用程序比原應(yīng)用程序約增加20%,原因是加固后的應(yīng)用程序包含一個(gè)修改過(guò)的DEX 文件和一個(gè)新生成的SO 文件。雖然DEX 文件中的一些函數(shù)是在本機(jī)層中實(shí)現(xiàn)的,但它在原函數(shù)的指令中添加了JNI 注冊(cè)信息以及一些垃圾指令,因此它比原函數(shù)要占用更大的內(nèi)存空間,并且在一定程度上增加了攻擊者逆向分析的難度。

    內(nèi)存使用:加固后,程序總內(nèi)存使用量呈上升趨勢(shì),但增幅不大,增加的內(nèi)存消耗主要來(lái)自本機(jī)代碼的消耗。

    綜上所述,由于本機(jī)層代碼直接執(zhí)行效率更高、更直觀的CPU 指令,使得函數(shù)的本地化提高了程序的運(yùn)行效率、抵消了部分混淆帶來(lái)的性能開銷,因此加固前后程序的性能未受到很大影響。

    表2 加固前后程序運(yùn)行性能對(duì)比

    4 結(jié)語(yǔ)

    本文提出了一種基于LLVM 的Android 應(yīng)用加固方法,該方法將被保護(hù)程序中的Java 函數(shù)轉(zhuǎn)化為本地代碼并對(duì)其進(jìn)行混淆保護(hù),能夠有效抵抗逆向軟件的靜態(tài)分析和攻擊者的動(dòng)態(tài)調(diào)試。將關(guān)鍵函數(shù)反匯編為Smali 指令后轉(zhuǎn)化為C++代碼,利用LLVM 框架的特點(diǎn)對(duì)C++代碼進(jìn)行分析得到LLVM 中間表示,然后對(duì)LL?VMIR 指令進(jìn)行優(yōu)化和混淆,最后輸出機(jī)器碼。實(shí)驗(yàn)結(jié)果表明,本文提出的方法具有較高的隱蔽性,相比其他混淆保護(hù)方法使用更少的性能消耗和代碼體積,且能夠抵御大部分通用脫殼工具的攻擊,因此本文的方法具有更優(yōu)越的性能。

    本文僅選擇不存在函數(shù)調(diào)用的函數(shù)作為保護(hù)的對(duì)象,在具有函數(shù)調(diào)用的函數(shù)中可能存在比較重要、需要被保護(hù)的函數(shù)。在以后的工作中,將考慮保護(hù)更多函數(shù)時(shí)應(yīng)用程序性能的變化,以及如何在保證高安全性的前提下克服代碼混淆帶來(lái)的性能開銷。

    猜你喜歡
    基本塊控制流字符串
    基于級(jí)聯(lián)森林的控制流錯(cuò)誤檢測(cè)優(yōu)化算法
    抵御控制流分析的Python 程序混淆算法
    距離與權(quán)重相結(jié)合的導(dǎo)向式灰盒模糊測(cè)試方法
    工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
    電子科技(2021年2期)2021-01-08 02:25:58
    抵御控制流分析的程序混淆算法
    一種檢測(cè)控制流錯(cuò)誤的多層分段標(biāo)簽方法
    基于控制流隱藏的代碼迷惑
    一種新的基于對(duì)稱性的字符串相似性處理算法
    依據(jù)字符串匹配的中文分詞模型研究
    一種針對(duì)Java中字符串的內(nèi)存管理方案
    久久 成人 亚洲| 日本黄色日本黄色录像| 自线自在国产av| 岛国在线观看网站| 成人亚洲精品av一区二区 | 欧美日韩亚洲国产一区二区在线观看| 亚洲黑人精品在线| 亚洲成人精品中文字幕电影 | 亚洲午夜精品一区,二区,三区| 精品国产一区二区久久| 日韩视频一区二区在线观看| 婷婷六月久久综合丁香| 亚洲全国av大片| www日本在线高清视频| 国产精品野战在线观看 | 亚洲少妇的诱惑av| 极品人妻少妇av视频| 少妇裸体淫交视频免费看高清 | 国产亚洲精品一区二区www| 91麻豆av在线| 操出白浆在线播放| 亚洲国产精品一区二区三区在线| 国产91精品成人一区二区三区| 久久欧美精品欧美久久欧美| 黄色成人免费大全| 亚洲国产欧美网| 国产精品一区二区免费欧美| 久久精品国产99精品国产亚洲性色 | 欧美日韩亚洲国产一区二区在线观看| 别揉我奶头~嗯~啊~动态视频| 1024视频免费在线观看| 午夜福利在线免费观看网站| 日韩 欧美 亚洲 中文字幕| 亚洲欧美日韩无卡精品| 乱人伦中国视频| 欧美av亚洲av综合av国产av| 午夜福利欧美成人| av欧美777| 在线免费观看的www视频| 国产无遮挡羞羞视频在线观看| 久久精品亚洲精品国产色婷小说| 午夜福利在线观看吧| 在线看a的网站| 免费在线观看完整版高清| 亚洲成人久久性| 亚洲精品国产区一区二| 亚洲一区二区三区不卡视频| 久久精品国产综合久久久| 国产成+人综合+亚洲专区| 亚洲自偷自拍图片 自拍| www日本在线高清视频| 91精品国产国语对白视频| 国产片内射在线| 很黄的视频免费| 精品午夜福利视频在线观看一区| 国产激情久久老熟女| 成熟少妇高潮喷水视频| 婷婷丁香在线五月| 国产单亲对白刺激| 午夜久久久在线观看| 热re99久久国产66热| 女同久久另类99精品国产91| 丁香欧美五月| 五月开心婷婷网| 欧美成狂野欧美在线观看| 亚洲avbb在线观看| 亚洲国产欧美网| 亚洲精品成人av观看孕妇| 国产真人三级小视频在线观看| 亚洲视频免费观看视频| 日本免费a在线| 男人操女人黄网站| 一级片'在线观看视频| 国产亚洲精品综合一区在线观看 | 久久香蕉精品热| 国产av在哪里看| 亚洲激情在线av| 国产精品九九99| 母亲3免费完整高清在线观看| 夜夜爽天天搞| 99香蕉大伊视频| 日本wwww免费看| 精品日产1卡2卡| 亚洲精品久久午夜乱码| av国产精品久久久久影院| 韩国av一区二区三区四区| 日韩国内少妇激情av| 777久久人妻少妇嫩草av网站| 欧美亚洲日本最大视频资源| 嫩草影视91久久| 国产在线观看jvid| 亚洲av美国av| 99在线人妻在线中文字幕| 夜夜爽天天搞| x7x7x7水蜜桃| 精品国产乱子伦一区二区三区| 又黄又爽又免费观看的视频| 欧美一区二区精品小视频在线| 国产成人一区二区三区免费视频网站| 久久天躁狠狠躁夜夜2o2o| 黄片大片在线免费观看| 精品久久久久久电影网| 女人被狂操c到高潮| 国产精品电影一区二区三区| 久久国产精品影院| 久久狼人影院| 久久久精品欧美日韩精品| 91国产中文字幕| 多毛熟女@视频| 手机成人av网站| av天堂在线播放| 99国产精品免费福利视频| 男女之事视频高清在线观看| 国产精华一区二区三区| 久久精品国产99精品国产亚洲性色 | 国产黄a三级三级三级人| 丝袜人妻中文字幕| 美女扒开内裤让男人捅视频| netflix在线观看网站| 黄色 视频免费看| 一区二区日韩欧美中文字幕| 亚洲人成77777在线视频| 80岁老熟妇乱子伦牲交| 999精品在线视频| 国产男靠女视频免费网站| 久久狼人影院| 女生性感内裤真人,穿戴方法视频| 母亲3免费完整高清在线观看| 一区二区三区精品91| 大香蕉久久成人网| 亚洲一区高清亚洲精品| 欧美大码av| 在线观看免费高清a一片| 女人被躁到高潮嗷嗷叫费观| 日韩免费av在线播放| 亚洲自拍偷在线| 国产91精品成人一区二区三区| 久久久精品欧美日韩精品| 欧美精品一区二区免费开放| 97超级碰碰碰精品色视频在线观看| 搡老乐熟女国产| 免费在线观看视频国产中文字幕亚洲| 午夜福利影视在线免费观看| 又黄又爽又免费观看的视频| 一a级毛片在线观看| 久久亚洲精品不卡| 大陆偷拍与自拍| 在线观看日韩欧美| 啦啦啦在线免费观看视频4| 一二三四在线观看免费中文在| 18禁观看日本| 日韩欧美一区视频在线观看| 国产av一区二区精品久久| 国产精品久久久久久人妻精品电影| 一级作爱视频免费观看| 亚洲色图综合在线观看| 国产一区二区三区视频了| 亚洲激情在线av| 亚洲一码二码三码区别大吗| 久久久久久久精品吃奶| svipshipincom国产片| 亚洲一区二区三区不卡视频| 神马国产精品三级电影在线观看 | 俄罗斯特黄特色一大片| 中国美女看黄片| 久久久久精品国产欧美久久久| 欧美人与性动交α欧美软件| 欧美日本亚洲视频在线播放| 久久99一区二区三区| 久久久久久亚洲精品国产蜜桃av| 亚洲色图综合在线观看| 丝袜在线中文字幕| 两个人免费观看高清视频| 天堂√8在线中文| 电影成人av| 日韩一卡2卡3卡4卡2021年| 高潮久久久久久久久久久不卡| 一二三四在线观看免费中文在| 国产蜜桃级精品一区二区三区| 欧美激情高清一区二区三区| 久99久视频精品免费| 熟女少妇亚洲综合色aaa.| 国产精品久久久久成人av| 国产精品99久久99久久久不卡| 涩涩av久久男人的天堂| 欧美日韩中文字幕国产精品一区二区三区 | 身体一侧抽搐| 99re在线观看精品视频| 波多野结衣av一区二区av| 成在线人永久免费视频| 精品久久久久久电影网| 亚洲午夜精品一区,二区,三区| 少妇被粗大的猛进出69影院| 欧美激情极品国产一区二区三区| 99久久精品国产亚洲精品| xxx96com| 一进一出抽搐gif免费好疼 | 757午夜福利合集在线观看| 久热这里只有精品99| 久久性视频一级片| 色综合婷婷激情| 日韩 欧美 亚洲 中文字幕| 超色免费av| 夜夜躁狠狠躁天天躁| 女人高潮潮喷娇喘18禁视频| 国产成人精品无人区| 成人18禁高潮啪啪吃奶动态图| 久久久久久人人人人人| 日本免费a在线| 欧美大码av| 嫩草影视91久久| 亚洲aⅴ乱码一区二区在线播放 | 国产精品香港三级国产av潘金莲| 男人的好看免费观看在线视频 | 香蕉久久夜色| 亚洲欧美激情在线| 日本黄色日本黄色录像| 99久久精品国产亚洲精品| 97人妻天天添夜夜摸| 久久久水蜜桃国产精品网| 久久久国产成人精品二区 | 男人的好看免费观看在线视频 | 欧美黑人欧美精品刺激| 久久这里只有精品19| 亚洲色图av天堂| 天堂√8在线中文| 狂野欧美激情性xxxx| 亚洲 欧美 日韩 在线 免费| 90打野战视频偷拍视频| 亚洲精品国产一区二区精华液| 丰满饥渴人妻一区二区三| 他把我摸到了高潮在线观看| 狠狠狠狠99中文字幕| 日本撒尿小便嘘嘘汇集6| a级毛片黄视频| 亚洲精品美女久久久久99蜜臀| 一进一出抽搐动态| 一级毛片精品| 精品少妇一区二区三区视频日本电影| 久久亚洲精品不卡| 黄频高清免费视频| 亚洲免费av在线视频| 国产亚洲精品综合一区在线观看 | 自线自在国产av| 88av欧美| 亚洲性夜色夜夜综合| 国产国语露脸激情在线看| 男男h啪啪无遮挡| 伊人久久大香线蕉亚洲五| 久久中文字幕一级| 97超级碰碰碰精品色视频在线观看| 亚洲va日本ⅴa欧美va伊人久久| 午夜福利一区二区在线看| 亚洲一区二区三区欧美精品| 国产aⅴ精品一区二区三区波| 午夜两性在线视频| 好男人电影高清在线观看| 两个人看的免费小视频| 亚洲一区二区三区不卡视频| 最好的美女福利视频网| 欧美激情高清一区二区三区| 国产精品亚洲av一区麻豆| 岛国在线观看网站| 国产蜜桃级精品一区二区三区| 丝袜人妻中文字幕| 女人精品久久久久毛片| 99国产精品99久久久久| 亚洲精品在线观看二区| 黄色视频,在线免费观看| 国产成人欧美在线观看| 手机成人av网站| 啦啦啦免费观看视频1| 国产一区二区三区综合在线观看| 51午夜福利影视在线观看| 欧美日韩福利视频一区二区| 午夜日韩欧美国产| 男女做爰动态图高潮gif福利片 | 日韩视频一区二区在线观看| 69精品国产乱码久久久| 久久 成人 亚洲| 久久久国产欧美日韩av| 久久精品国产亚洲av高清一级| www.精华液| 18禁观看日本| 麻豆av在线久日| 搡老熟女国产l中国老女人| 91麻豆精品激情在线观看国产 | 免费少妇av软件| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲av五月六月丁香网| 免费高清视频大片| 在线观看免费午夜福利视频| 国产伦一二天堂av在线观看| 欧美黑人精品巨大| 午夜福利在线观看吧| 国产日韩一区二区三区精品不卡| 亚洲精品国产区一区二| 极品教师在线免费播放| √禁漫天堂资源中文www| 岛国在线观看网站| 久久久水蜜桃国产精品网| 亚洲男人的天堂狠狠| 麻豆久久精品国产亚洲av | 脱女人内裤的视频| 精品国产超薄肉色丝袜足j| 国产精品九九99| 女人精品久久久久毛片| 手机成人av网站| 久久精品人人爽人人爽视色| av天堂久久9| 国产乱人伦免费视频| 国产蜜桃级精品一区二区三区| 欧美激情高清一区二区三区| 国产熟女午夜一区二区三区| 欧美中文综合在线视频| 热re99久久国产66热| 国产精品久久久人人做人人爽| 一级片免费观看大全| 人人妻人人添人人爽欧美一区卜| 99国产极品粉嫩在线观看| 精品久久久久久久毛片微露脸| 国产精品久久电影中文字幕| 女同久久另类99精品国产91| 欧美日韩中文字幕国产精品一区二区三区 | 成人三级黄色视频| 亚洲五月天丁香| 久久国产亚洲av麻豆专区| 午夜两性在线视频| 老汉色av国产亚洲站长工具| 免费久久久久久久精品成人欧美视频| 日韩中文字幕欧美一区二区| av有码第一页| 老司机午夜福利在线观看视频| 欧美激情久久久久久爽电影 | 日韩欧美一区二区三区在线观看| 成年人黄色毛片网站| 真人做人爱边吃奶动态| 欧美在线黄色| 三级毛片av免费| 9热在线视频观看99| 日本精品一区二区三区蜜桃| 免费在线观看黄色视频的| 国产精品乱码一区二三区的特点 | 久久香蕉国产精品| e午夜精品久久久久久久| 夜夜看夜夜爽夜夜摸 | 久99久视频精品免费| 久久影院123| 精品久久久久久,| 久久午夜亚洲精品久久| 一级毛片女人18水好多| 天天影视国产精品| 久久久久九九精品影院| 色婷婷久久久亚洲欧美| 中文字幕人妻丝袜一区二区| 别揉我奶头~嗯~啊~动态视频| 日韩免费高清中文字幕av| 免费av毛片视频| 日韩有码中文字幕| 无限看片的www在线观看| 欧美日本中文国产一区发布| 最新在线观看一区二区三区| 在线观看免费视频日本深夜| 午夜亚洲福利在线播放| 精品第一国产精品| 亚洲欧美日韩无卡精品| 精品熟女少妇八av免费久了| 国产亚洲av高清不卡| 欧美激情极品国产一区二区三区| 亚洲免费av在线视频| av免费在线观看网站| 黄色视频不卡| 多毛熟女@视频| 丁香欧美五月| 一级作爱视频免费观看| 曰老女人黄片| 黑丝袜美女国产一区| 黄色怎么调成土黄色| 18禁国产床啪视频网站| 无人区码免费观看不卡| 国产精品98久久久久久宅男小说| 日韩欧美免费精品| 亚洲av片天天在线观看| 国产三级黄色录像| 精品国产乱子伦一区二区三区| 黄片小视频在线播放| 日韩欧美在线二视频| www.自偷自拍.com| 18美女黄网站色大片免费观看| 午夜日韩欧美国产| 在线永久观看黄色视频| 国产97色在线日韩免费| 18禁观看日本| www.www免费av| 国产免费男女视频| 黑丝袜美女国产一区| 国产在线精品亚洲第一网站| 久久久国产一区二区| 免费在线观看视频国产中文字幕亚洲| 80岁老熟妇乱子伦牲交| 无人区码免费观看不卡| 亚洲色图av天堂| 久久中文字幕一级| 夜夜躁狠狠躁天天躁| 在线观看免费视频网站a站| 操美女的视频在线观看| 日韩中文字幕欧美一区二区| 国产伦人伦偷精品视频| 精品卡一卡二卡四卡免费| 80岁老熟妇乱子伦牲交| 精品无人区乱码1区二区| 99久久久亚洲精品蜜臀av| 男人的好看免费观看在线视频 | 久久人人97超碰香蕉20202| 国产精华一区二区三区| 一二三四在线观看免费中文在| 性色av乱码一区二区三区2| 亚洲欧美一区二区三区久久| 国产三级黄色录像| 精品第一国产精品| 国产主播在线观看一区二区| 久久精品国产99精品国产亚洲性色 | 天堂影院成人在线观看| 亚洲欧美日韩无卡精品| 欧美日韩视频精品一区| 午夜两性在线视频| a在线观看视频网站| 侵犯人妻中文字幕一二三四区| 亚洲精品国产精品久久久不卡| 搡老乐熟女国产| 搡老岳熟女国产| 操出白浆在线播放| 亚洲 欧美 日韩 在线 免费| 亚洲七黄色美女视频| 精品高清国产在线一区| 亚洲av成人av| 午夜免费鲁丝| 成人国产一区最新在线观看| 交换朋友夫妻互换小说| 搡老熟女国产l中国老女人| 91成年电影在线观看| 黑人欧美特级aaaaaa片| 巨乳人妻的诱惑在线观看| 欧美日韩一级在线毛片| 亚洲成人久久性| 大型av网站在线播放| 中文字幕av电影在线播放| 在线永久观看黄色视频| 久久精品国产99精品国产亚洲性色 | 99热国产这里只有精品6| 色老头精品视频在线观看| 国产免费现黄频在线看| 多毛熟女@视频| 国产又色又爽无遮挡免费看| 日韩一卡2卡3卡4卡2021年| 亚洲全国av大片| 欧美日韩福利视频一区二区| 老汉色∧v一级毛片| 久久久久久久精品吃奶| 精品久久久精品久久久| 亚洲精品国产精品久久久不卡| 国产av一区在线观看免费| 波多野结衣av一区二区av| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲欧美精品综合一区二区三区| 日韩视频一区二区在线观看| 亚洲 欧美一区二区三区| 欧美老熟妇乱子伦牲交| 亚洲男人的天堂狠狠| 欧美在线黄色| 久久久久久亚洲精品国产蜜桃av| 久久久国产欧美日韩av| 夜夜夜夜夜久久久久| 日韩精品青青久久久久久| 一区二区三区精品91| 久久久久国产精品人妻aⅴ院| 一级,二级,三级黄色视频| 亚洲国产欧美日韩在线播放| 亚洲免费av在线视频| 黄色女人牲交| 窝窝影院91人妻| 国产有黄有色有爽视频| 又紧又爽又黄一区二区| 国产精品秋霞免费鲁丝片| 在线观看一区二区三区激情| 国产日韩一区二区三区精品不卡| 天天添夜夜摸| 国产精品98久久久久久宅男小说| 别揉我奶头~嗯~啊~动态视频| 日韩成人在线观看一区二区三区| 久久国产精品人妻蜜桃| 极品教师在线免费播放| 欧美成人午夜精品| 热99re8久久精品国产| 国产又爽黄色视频| 黄色怎么调成土黄色| 91av网站免费观看| 亚洲 欧美 日韩 在线 免费| 最新在线观看一区二区三区| 久久中文看片网| 午夜日韩欧美国产| 午夜福利在线观看吧| 好男人电影高清在线观看| 成人三级做爰电影| 欧美日本中文国产一区发布| 欧美日韩瑟瑟在线播放| 久9热在线精品视频| 91成人精品电影| 国产精品一区二区在线不卡| 成在线人永久免费视频| 国产视频一区二区在线看| 99久久国产精品久久久| 国产精品香港三级国产av潘金莲| 窝窝影院91人妻| 高清黄色对白视频在线免费看| 亚洲精品中文字幕在线视频| 精品欧美一区二区三区在线| 国产欧美日韩精品亚洲av| 欧美人与性动交α欧美软件| 成人手机av| 精品久久久久久,| 黑人欧美特级aaaaaa片| 国产亚洲精品久久久久5区| 亚洲三区欧美一区| 两人在一起打扑克的视频| 国产欧美日韩一区二区三| 色播在线永久视频| 中国美女看黄片| 婷婷精品国产亚洲av在线| √禁漫天堂资源中文www| 成人免费观看视频高清| 一二三四在线观看免费中文在| 人人妻人人澡人人看| 男女做爰动态图高潮gif福利片 | 一本综合久久免费| 国产精品偷伦视频观看了| 精品人妻1区二区| 国产高清videossex| 午夜福利免费观看在线| 少妇 在线观看| 极品人妻少妇av视频| 久久精品国产亚洲av香蕉五月| 中文字幕高清在线视频| 亚洲五月天丁香| 神马国产精品三级电影在线观看 | 久久久精品欧美日韩精品| 亚洲欧美日韩另类电影网站| 精品国产一区二区久久| 久久精品国产清高在天天线| 日韩免费高清中文字幕av| 青草久久国产| 在线视频色国产色| 50天的宝宝边吃奶边哭怎么回事| 国产成人精品久久二区二区91| 老司机靠b影院| 精品久久久久久成人av| 淫秽高清视频在线观看| 国产精品亚洲一级av第二区| 久久久国产成人精品二区 | 亚洲一区二区三区不卡视频| 如日韩欧美国产精品一区二区三区| 国产亚洲精品第一综合不卡| 人人妻人人添人人爽欧美一区卜| 精品人妻在线不人妻| 亚洲中文日韩欧美视频| 超色免费av| 国产精品久久久av美女十八| 国产99久久九九免费精品| 大型av网站在线播放| 自线自在国产av| 国产精品一区二区在线不卡| 黄频高清免费视频| 午夜精品国产一区二区电影| 伦理电影免费视频| 免费观看人在逋| 免费在线观看影片大全网站| 欧美中文综合在线视频| 成在线人永久免费视频| 国产一区二区三区视频了| 免费久久久久久久精品成人欧美视频| 90打野战视频偷拍视频| 一区二区三区激情视频| 99久久综合精品五月天人人| 人人妻人人爽人人添夜夜欢视频| 国产精品国产高清国产av| 国产精品秋霞免费鲁丝片| 日韩欧美三级三区| 久久久久国产精品人妻aⅴ院| 无人区码免费观看不卡| 在线免费观看的www视频| 两性午夜刺激爽爽歪歪视频在线观看 | 国产精品98久久久久久宅男小说| 免费不卡黄色视频| 亚洲精品美女久久久久99蜜臀| 日韩精品中文字幕看吧| 午夜老司机福利片| 亚洲男人天堂网一区| 日韩精品中文字幕看吧| 免费在线观看亚洲国产| 88av欧美| 777久久人妻少妇嫩草av网站| 女人精品久久久久毛片| 国产91精品成人一区二区三区| 热99国产精品久久久久久7| 人人妻人人澡人人看| 午夜福利,免费看| 老熟妇乱子伦视频在线观看| 日韩一卡2卡3卡4卡2021年| 一二三四社区在线视频社区8| 国产精品一区二区精品视频观看| 欧美丝袜亚洲另类 | 欧美日韩一级在线毛片| 亚洲激情在线av| 又黄又爽又免费观看的视频| 日本撒尿小便嘘嘘汇集6|