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

    基于Pi演算的Android多線程程序的數(shù)據(jù)競爭檢測

    2020-04-07 03:26:00
    關鍵詞:進程規(guī)則檢測

    (1. 河北科技師范學院工商管理學院,河北秦皇島066004;2. 燕山大學信息科學與工程學院,河北秦皇島066004)

    移動設備大多資源受限,為了能在其上流暢運行具有豐富功能的應用程序,Android等主流平臺廣泛采用了多線程等技術,有效降低了應用程序的響應延遲并提升了其并發(fā)執(zhí)行性能。與傳統(tǒng)應用程序的多線程模型不同,Android系統(tǒng)采用事件驅(qū)動模式,各種來源的輸入(比如UI、網(wǎng)絡、傳感器和Android生命周期等)都有可能觸發(fā)事件,使多線程模型中執(zhí)行的任務按某種規(guī)則以不確定的方式重新排序。這些復雜的并發(fā)特征容易產(chǎn)生數(shù)據(jù)競爭[1-3]等并發(fā)錯誤,糾錯十分困難。

    傳統(tǒng)的數(shù)據(jù)競爭檢測技術[4-10],提供了許多有益的建模理論和檢測方法,但并不適用于Android Apps多線程模型的數(shù)據(jù)競爭檢測。針對Android Apps的數(shù)據(jù)競爭檢測,學者們發(fā)展了靜態(tài)檢測[11-16]和動態(tài)檢測[17-18]的技術。文獻[11-12]采用新穎的方法對移動應用程序進行數(shù)據(jù)競爭檢測,但沒有考慮事件回調(diào)之間的happens-before關系,影響了其檢測精確度,同時存在大量誤報問題。SUN等[13]通過重放技術有效降低了誤報率。HU等[14]對并發(fā)動作及其時序關系進行建模,在降低誤報率的同時提高了檢測效率。FU等[15]提出了將事件回調(diào)之間的時序關系轉(zhuǎn)換為線程間的時序關系的線程化技術,大大降低了誤報率。WU等[16]提出一種流和上下文敏感的時序分析方法,可以檢測線程內(nèi)和線程間的數(shù)據(jù)競爭問題。但靜態(tài)檢測技術固有的狀態(tài)空間爆炸問題,難以突破檢測效率低的瓶頸,使得其實用性不足。文獻[17-18]采用動態(tài)檢測技術,通過采集Android Apps的執(zhí)行路徑信息,基于happens-before關系進行離線檢測,檢測效率高但代碼覆蓋率低,存在大量的漏報問題。因此,如何在多線程和事件驅(qū)動的Android平臺上精確描述和分析Apps中的并發(fā)行為,提高模型精確性的同時不犧牲模型的效率,是Android Apps行為建模與檢測研究過程中亟待解決的關鍵問題之一。

    本文針對事件驅(qū)動機制下多線程模型的安全問題,構造一個基于Pi演算的并發(fā)行為檢測模型,并利用該模型對Android Apps中的數(shù)據(jù)競爭問題進行檢測。

    1 數(shù)據(jù)競爭問題

    圖1給出一個利用AsyncTask加載數(shù)據(jù)的示例AsyncApp。應用程序啟動時,主線程創(chuàng)建一個后臺線程執(zhí)行加載數(shù)據(jù)的異步任務。為了良好的用戶體驗,后臺線程持有MainActivity的引用并使用一個進度對話框(ProgressDialog)顯示加載的進度信息。待加載任務完成,后臺線程將加載數(shù)據(jù)返回到主線程用onPostExecute方法顯示出來,主線程調(diào)用對話框的dismiss方法撤銷對話框資源。如果用戶在數(shù)據(jù)加載過程中觸發(fā)后退操作(點擊導航菜單上的后退鈕),則MainActivity被銷毀導致狀態(tài)丟失。但AsyncTask還持有MainActivity的引用,待異步任務返回onPostExecute,進度對話框調(diào)用dismiss撤銷對話框資源會引發(fā)NullPointer Exception異常。

    圖1 AsyncApp程序示例代碼Fig.1 A motivating example of AsyncApp

    由于主線程和后臺線程共享MainActivity數(shù)據(jù),構成了數(shù)據(jù)競爭關系。UI事件(如點擊導航菜單上的后退鈕、旋轉(zhuǎn)屏幕等)和應用程序的回調(diào)事件并發(fā),使得MainActivity的onDestroy和主線程的onPostExecute執(zhí)行時序不確定,產(chǎn)生了數(shù)據(jù)競爭問題。

    可見,若共享的資源、程序片段被多個方法操作,且其中至少有一個執(zhí)行的是寫操作,則多個方法執(zhí)行次序的不確定就會引發(fā)數(shù)據(jù)競爭問題。

    上例中,若onPostExecute總是先于onDestroy執(zhí)行,則不會發(fā)生異常。但Android是事件驅(qū)動的系統(tǒng),UI事件由用戶隨意觸發(fā)導致了時序的隨機性。針對該問題,一種簡單的解決辦法是在使用共享數(shù)據(jù)之前進行判斷,稱為條件護衛(wèi)原則。如圖1中onPostExecute方法里注釋的if語句,但并不能保證App的開發(fā)者總能遵循該原則,因此需要發(fā)展一種自動進行檢測的方法。

    2 擴展Pi演算

    由于進程代數(shù)[19-20]可以有效描述并發(fā)行為和消息通信特性,本文將其中的Pi演算[21]作為建模語言,并對其進行擴展,使之適合描述Android Apps且利于編碼實現(xiàn)。下面給出擴展后的Pi演算的語法和語義規(guī)范,定義如下。

    經(jīng)過擴展的Pi演算同時具備描述移動性、外部接口通信和內(nèi)部狀態(tài)遷移的能力,適合形式化地表示Android應用程序的執(zhí)行路徑和組件間通信的情況。

    將進程P所有的行為跡組成的有限集合記為Ptraces。

    定義2跡等價(trace equivalence)。給定兩個不同的進程P和Q,稱進程P和Q是跡等價的,當且僅當Ptraces=Qtraces成立。記為P≈tQ。

    定義3α變換(alpha conversion)。將進程中的名字換成新的名字的變換稱為α變換。

    一般來說,用于替換的新名字應為進程中原來不存在的名字,若該名字已存在,則須變換進程中的名字,以保證不會出現(xiàn)命名沖突。使用符號{b/a}P表示將P中的名字a替換為b。如P=υba.b,則有{c/a}P=υbc.b,{c/b}P=υca.c,{b/a}P=υb′b.b′。

    選定了進程等價定義,就可以確定出相應的遷移規(guī)則。最常用的幾條遷移規(guī)則如下。

    (F) SC-RES-COMPυx(P1‖P2)≡P1‖υxP2,若x?fn(P1)

    3 形式化建模

    與傳統(tǒng)的應用程序不同,Android Apps并不是獨立的封閉程序,需要在Android框架中運行。Android系統(tǒng)(包括Android運行時環(huán)境)在應用程序的代碼之外做了大量的工作。其中,Android系統(tǒng)為了管理應用程序,為每個組件預先定義好生命周期,應用程序可以為生命周期定義回調(diào)函數(shù)和監(jiān)聽函數(shù)。因此,為了得到更精確的模型,需要為Android生命周期構建形式化模型。

    3.1 Android生命周期的形式化建模

    以Activity組件的生命周期[22]為例,根據(jù)拓展Pi演算的形式化語法和語義,得到模型如下。

    上述進程表達式中的τ為不可見動作,在這里指代不可預知的事件。其他組件(Service和Fragment等)生命周期的形式化模型構造方法與Activity組件相同,不再贅述。將這些組件的生命周期并發(fā)演算,得到Android Apps的生命周期的形式化模型。

    3.2 多線程的形式化建模

    當Apps啟動時,系統(tǒng)會為其創(chuàng)建一個主線程(main thread)來負責和UI組件進行交互。若某個操作比較耗時,就可能阻塞主線程而導致交互卡頓。Android系統(tǒng)主要通過HandlerThread、AsyncTask和線程鎖Lock等機制解決這個問題。

    Android中實現(xiàn)多線程的方式有兩種:(a)繼承Thread類,并重寫類中的run()方法,但一個類只能繼承一個父類;(b)實現(xiàn)Runnable接口。無論哪種方式實現(xiàn),都會出現(xiàn)類似thread tr=new thread(…)和tr.start()的兩條語句。因此,按如下步驟進行形式化映射。

    分析thread tr=new thread(…)類似語句及其上下文,確定新建線程tr的類名稱son和線程類所在基本塊。在這條語句的上文搜索,若出現(xiàn)P:son implements Runnable語句,則說明線程是通過實現(xiàn)Runnable接口實現(xiàn)的;若出現(xiàn)P:son extends Thread語句,則說明線程是通過繼承Thread類實現(xiàn)的。其中P表示基本塊的編號(標記了線程類所在基本塊),son表示線程類的名稱,在實際分析中會以具體的值出現(xiàn)。

    下面給出線程的映射規(guī)則,如圖2所示。新建線程實例tr的線程類名稱為son,對應的基本塊編號為S。線程類定義了該類線程實例的行為模式。因語句tr.start()執(zhí)行后線程實例tr就會和father線程實例并發(fā)執(zhí)行,所以在動作start后添加同步動作son(son線程類的地址),并將其作為同步并發(fā)的通道。father線程的實例將start語句所在基本塊的地址(用新名字p表示)通過son通道傳送過去。線程類son的實例通過son通道接收p并將其存儲到l中,兩個線程開始并發(fā)執(zhí)行。

    這個過程,可以形式化地描述如下。

    其中,子線程son的進程S可能會產(chǎn)生多個,因此使用了復制算子。按照擴展Pi演算的操作語義,father線程和son線程進行并發(fā)演算,在使用了COMM-L、CLOSE-L等規(guī)則之后,經(jīng)過(newthread,start,τ(son))一系列動作后,father線程和son線程開始并發(fā)執(zhí)行。經(jīng)過這樣的映射,形式化地表示了父子線程間的并發(fā)特征。

    圖2 多線程的映射規(guī)則Fig.2 Mapping rules of multithread

    3.3 并發(fā)特征分析

    下面以AsyncTask為例進行并發(fā)特征分析。

    AsyncTask是Android提供的一個輕量級的異步任務處理的工具類,其時序圖如圖3所示。在執(zhí)行后臺耗時操作之前,AsyncTask在主線程里執(zhí)行onPreExecute進行一些初始化操作,然后在后臺線程里執(zhí)行doInBackground方法處理那些耗時任務。一旦任務執(zhí)行完畢,主線程就會調(diào)用onPostExecute方法將結果返回到主線程并更新UI界面。其中publishProgress方法運行在后臺線程用于更新任務進度,更新完成后主線程會執(zhí)行onProgressUpdate方法展示任務進度。

    圖3 AsyncTask的時序圖Fig.3 Sequence diagram for AsyncTask

    圖3中的幾個方法都被重寫,因此需要根據(jù)擴展Pi演算語法對這些過程間調(diào)用方法進行映射。如對于onPreExeCute的映射結果如下所示。

    從映射結果可知,主線程的進程表達式PUIthread在和后臺線程的進程表達式Pworkthread并發(fā)演算之前,需要先和onPreExecute方法的進程表達式PonPreExecute并發(fā)演算,即主線程在位置ps處調(diào)用onPreExecute方法并將ps發(fā)送給onPreExecute方法所在地址并存儲為pr,等到onPreExecute方法調(diào)用結束后再通過pr返回。

    線程間的關系主要是交互關系和時序關系,可以在線程間構造一些交互通道,巧妙地描述出這些關系。如主線程執(zhí)行完onPreExecute方法之后,后臺線程才能夠執(zhí)行doInBackground方法。為了描述這種時序關系,構造一個通道t1,主線程在執(zhí)行完onPreExecute方法后,由通道t1向后臺線程發(fā)送一個空消息,后臺線程在doInBackground方法之前插入通道t1,保證只有在t1上接收一個消息后才能執(zhí)行doInBackground方法,這樣,就描述出了線程間的時序關系。對于交互關系,如publishProgress方法會把任務進度消息發(fā)送給onProgressUpdate方法,它們之間通信的通道在程序里沒有體現(xiàn)出來,因此,也為它們構造一個通道i1,通過該通道傳輸任務進度消息。于是可得到如下映射結果。

    PAsyncTask=υt1t2i1i2(PUIthread‖Pworkthread)。

    其中并沒有對后臺線程Pworkthread使用復制算子,因為異步任務的線程一般只能被執(zhí)行一次。由于用到了doInBackground方法中定義的publishProgress,所以給出了doInBackground的過程間調(diào)用的映射。但為了突出本文研究的問題,其他方法的過程間調(diào)用的映射被省略。

    由擴展Pi演算的遷移規(guī)則可知,PAsyncTask經(jīng)過路徑(onPreExecute,τ(t1),τ(doInBackground), publishProgress,τ(i1), [onProgressUpdate, publishProgress],τ(i2),[ onProgressUpdate,τ(ds)],τ(t2),onPostExeCute/onCancelled)后成功終止。其中“[ ]”里的動作可能會以任意次序發(fā)生,如[onProgressUpdate, publishProgress]表示其路徑可能是(onProgressUpdate, publishProgress)或是(publishProgress, onProgressUpdate)?!?”表示兩個動作只能取其一,如onPostExeCute/ onCancelled表示要么onPostExeCute執(zhí)行,要么onCancelled執(zhí)行,但不會都執(zhí)行??梢?,本映射方法準確地描述了AsyncTask的并發(fā)特征。

    4 并發(fā)行為檢測

    進程表達式描述了系統(tǒng)的行為模式,而系統(tǒng)需滿足的安全約束則可用演算規(guī)則和遷移規(guī)則來描述。安全約束是指保證提供某種安全保護所必須遵守的規(guī)則。如為了保證多線程模型的時序安全,doInBackground方法必須在onPostExecute方法之前執(zhí)行,該規(guī)則就是一條安全約束。

    本文用包含進程表達式的IF-THEN規(guī)則表示演算規(guī)則和遷移規(guī)則,這意味著行為模式和行為所需滿足的安全約束之間可以演算和遷移,達到自動分析和檢測的目的。

    4.1 規(guī)則構建

    演算規(guī)則2(同步阻塞) IFa?A,x∈A,THENa.P‖x.Q=a.(P‖x.Q)。

    其中0表示故障停機。規(guī)則1、2表明,同步動作必須與其補動作同步執(zhí)行而不能單獨執(zhí)行,且可以同步時必須優(yōu)先執(zhí)行同步動作。規(guī)則3表明,若一個系統(tǒng)中當前可執(zhí)行的動作皆為同步動作且不互補,則會導致故障停機,發(fā)生同步異常錯誤。

    演算規(guī)則4(異步演算) IFa,b?A,THENa.P‖b.Q=a.(P‖b.Q)+b.(a.P‖Q)。

    規(guī)則4表明,一般動作(不屬于同步集A中的動作)以不確定的方式異步執(zhí)行。這種不確定性導致異步演算中的并發(fā)進程最終能轉(zhuǎn)換為和進程。

    以上4條規(guī)則可容易地利用進程等價(定義2)進行證明,不再贅述。根據(jù)擴展Pi演算的語法和語義,利用這些演算規(guī)則可得到如下安全約束。

    由約束2可知,可以提取出各種時序關系并通過比對Android Apps的進程表達式的時序,檢測應用程序中存在的缺陷。還可以依據(jù)這些時序重寫進程表達式,并在運行時檢測應用程序中的API序列是否滿足這些時序關系,從而判定行為是否正常。

    利用安全約束1和安全約束2,可將相關研究中的happens-before關系[13-18]形式化地構造成IF-THEN規(guī)則,這樣就可以復用這些成果,提高模型的精確性。

    根據(jù)上面給出的演算規(guī)則,還可以推導出更多的演算規(guī)則。如由規(guī)則1和規(guī)則4可知,

    由規(guī)則4可知,

    IFa,b,c,d?A,

    THEN (a.P+b.Q)‖(c.R+d.S)=a.(P‖(c.R+d.S))+b.(Q‖(c.R+d.S))+

    c.((a.P+b.Q)‖R)+d.((a.P+b.Q)‖S)。

    接下來,給出遷移規(guī)則。根據(jù)和進程的定義,容易得到其遷移規(guī)則。

    由和進程的遷移規(guī)則可知,遷移動作必須是和進程中某項的前綴動作,否則將無法進行遷移而發(fā)生異常,表述如下。

    由和進程的遷移規(guī)則和演算規(guī)則可以推導出其他的遷移規(guī)則。如由演算規(guī)則1和5可知,若存在x∈A,則有

    結合演算規(guī)則1和安全約束1,可得同步遷移規(guī)則。

    結合演算規(guī)則2、4和安全約束2,可得到異步遷移規(guī)則。

    由同步遷移規(guī)則可知下面情況無法遷移,會發(fā)生異常。

    構建了并發(fā)行為的運算規(guī)則后,就可以據(jù)此進行行為檢測,判定Android Apps中是否存在可能導致同步異常、遷移異常以及數(shù)據(jù)競爭等違反安全約束的行為。

    行為檢測的大體思路是:依據(jù)演算規(guī)則和遷移規(guī)則,由輸入信息驅(qū)動進程表達式進行演算和遷移。本文模型將靜態(tài)檢測和動態(tài)檢測相結合,靜態(tài)檢測模塊將需要滿足的規(guī)則作為輸入,驅(qū)動模型執(zhí)行檢測;動態(tài)檢測模塊在目標App運行時,獲取其API調(diào)用和觸發(fā)事件(生命周期事件、UI事件)序列、Activity棧等信息作為輸入,驅(qū)動模型執(zhí)行檢測。動、靜態(tài)檢測的輸入雖然不同,但檢測算法和步驟是相同的。

    4.2 行為檢測算法

    為了在行為檢測過程中記錄進程表達式演算和遷移的狀態(tài),為每個App維護一個行為狀態(tài)集asSet,由演算狀態(tài)集calcSet和遷移狀態(tài)集tranSet組成,即asSet::={calcSet,tranSet}。演算狀態(tài)集記錄當前演算前后的進程,即calcSet::={(oldprocess, newprocess)}。遷移狀態(tài)集記錄當前遷移到的進程和位置,即tranSet::={(process,{location})},其中l(wèi)ocation可能有多個。

    初始化演算狀態(tài)集calcSet的方法描述如下:

    (ⅰ)初始化calcSet為空;

    (ⅱ)將目標App的進程表達式app_proess作為一個演算前進程添加到calcSet,即calcSet={(app_proess,NULL)}。

    初始化遷移狀態(tài)集tranSet的方法描述如下:

    (ⅰ)初始化tranSet為空;

    (ⅱ)使用GetFirstActions(app_proess)獲取目標App的進程表達式app_proess中所有可能的首個前綴動作,并將其添加到tranSet。若app_proess中所有可能的首個前綴動作為a、b和c,則tranSet= {(app_proess,{a,b,c}}。

    檢測過程中,每次演算或遷移都更新一次asSet,更新算法如算法1所示。

    算法1更新行為狀態(tài)集asSet。

    Input: API調(diào)用和觸發(fā)事件序列、Activity棧等信息(動態(tài)檢測);需滿足的規(guī)則,分為進程表達式和包含進程表達式的IF-THEN規(guī)則(靜態(tài)檢測)。

    Output:行為狀態(tài)集asSet。

    Procedure:

    1: Pe Cp,Rp,P,Q

    2:action[] actlist, act

    3:algorithm *alg, *algo

    4:int algotype //1為演算算法,2為遷移算法

    5: while Input!=NULL do

    6: actlist=GetAPIEventSequence (Input)

    7: Cp=GetprocofActivity(GetActivity(Input))

    8: Rp=GetprocofRule(Input)

    9: alg=GetalgorithmofRule(Input)

    10: algotype=GetalgotypeofRule(Input)

    11: if algotype==1 then //演算

    12: if alg!=NULL then

    13: asSet.calculation(alg)

    14: end

    15: if Rp!=NULL then

    16: asSet.InsertCalcSet(Rp)

    17: end

    18: while algo=canCalculus() do

    19: asSet.calculation(algo)

    20: end

    21: if algotype==2 then //遷移

    22: asSet.InserttranSet(Cp)

    23: while actlist!=NULL do

    24: act=actlist.GetAction()

    25: asSet.transition(act)

    26: end

    27: end

    28: Input.Next()

    29: end

    30: return asSet。

    算法中,1~4行分別聲明了進程表達式、action數(shù)組、聲明演算或遷移算法的引用和算法類型。6~10行分別從輸入信息Input中獲取API調(diào)用和事件序列、取得當前棧頂Activity所對應的進程表達式、取得IF-THEN規(guī)則名(算法引用)、獲取算法類型(1為演算算法,2為遷移算法)。11~20行為演算操作,21~27行為遷移操作。其中calculation(calcRule)為進程演算算法,會依據(jù)指定的演算規(guī)則calcRule進行演算。transition(action)為進程遷移算法,由動作action驅(qū)動,依據(jù)遷移規(guī)則進行遷移,其遷移流程如圖4所示。

    圖4 行為遷移流程Fig.4 Procedure of behavior transition

    4.3 數(shù)據(jù)競爭檢測

    數(shù)據(jù)競爭檢測的大體思路為:若操作共享數(shù)據(jù)的動作間包含了寫操作,則對這些動作進行檢測。動作間具有確定時序,則判定為正常;否則,判定為存在數(shù)據(jù)競爭問題。下面給出競爭關系集的數(shù)據(jù)結構。令raceRelationSet::={raceRelation}為競爭關系集,其中raceRelation為競爭關系,由競爭數(shù)據(jù)及其相關動作組成,即raceRelation::={racedata, {action}}。檢測步驟如下。

    (A)初始化競爭關系集。將目標App中的組件對象(如Activity對象、Service對象等)設置為競爭數(shù)據(jù),并將與之有關的回調(diào)事件、UI事件、生命周期事件作為相關動作,構造競爭關系。

    (B)掃描目標App的數(shù)據(jù)流圖,利用文獻[23]的方法獲取共享數(shù)據(jù)和相關操作,加入raceRelationSet。

    (C)在構造的raceRelationSet中,逐個檢測競爭數(shù)據(jù)的使用是否遵循了條件護衛(wèi)原則,若已遵循,則表明無數(shù)據(jù)競爭問題;若沒有遵循,則轉(zhuǎn)(D)。

    (D)將與該共享數(shù)據(jù)相關的操作代入進程表達式,檢測其時序關系,若其具有確定時序,表明無數(shù)據(jù)競爭問題;若沒有,則表明存在數(shù)據(jù)競爭問題,生成檢測報告。

    其中,第(A)步是為了得到App環(huán)境(Android平臺、UI操作等)中的數(shù)據(jù)競爭關系。下面以圖1為例,說明具體的檢測過程。

    按照本文的建模方法,得到如下進程表達式。

    PAsyncTask=υt1t2(PMainthread‖PBackgroundthread)

    PAsyncApp=Paslifecycle‖PAsyncTask‖PonCreate。

    PAsyncApp=Paslifecycle‖PAsyncTask‖PonCreate=

    Paslifecycle‖υt1t2(PMainthread‖PBackgroundthread)‖PonCreate=

    υt1t2(Paslifecycle‖PMainthread‖PBackgroundthread)‖PonCreate(SC-RES-COMP)=

    從演算結果可以看出,onPostExecute和onDestroy之間沒有交互通道,由安全約束2知,兩者不存在時序約束,即其時序不確定,所以檢測出數(shù)據(jù)競爭問題。

    5 實驗論證分析

    5.1 實驗環(huán)境

    為了便于對比分析,采用文獻[17]中提到的開源Apps驗證本文方法的有效性,從精確性和效率兩個方面進行評估,并與相關研究DroidRacer[17]、nAdroid[15]和Sard[16]進行對比。

    建模過程需要使用Soot工具[24]進行控制流和數(shù)據(jù)流分析,資源消耗較高。因此,將建模與分析程序運行在Intel 3.20 GHz雙核CPU,8 GiB內(nèi)存的臺式機上。操作系統(tǒng)為Linux (rhel-server-5.4),使用eclipse-kepler-SR2進行編譯和調(diào)試,Android的開發(fā)版本Android 6.0(API level 23)。測試用的開源Apps和運行時行為檢測程序都運行在8 GiB RAM、128 GiB ROM的Honor V20,其處理器為Kirin 980。

    運行時行為檢測程序由API調(diào)用監(jiān)測模塊和檢測模塊組成。API調(diào)用監(jiān)測模塊采用API鉤子(API hook)技術,得到運行中的Apps的API的觸發(fā)時間、參數(shù)和返回值等信息。檢測模塊維護一個行為規(guī)則庫,其中存儲了IF-THEN格式的演算規(guī)則和遷移規(guī)則。依據(jù)行為規(guī)則,檢測模塊將API調(diào)用序列作為輸入,驅(qū)動進程表達式進行演算和遷移,給出檢測結果。

    5.2 時空效率分析

    a.c.τ(t).(b.0‖d.0)+c.a.τ(t).(b.0‖d.0)=

    a.c.τ(t).b.d.0+a.c.τ(t).d.b.0+c.a.τ(t).b.d.0 +c.a.τ(t).d.b.0。

    隨著進程中有更多的動作數(shù)以及App中有更多的并發(fā)進程,行為跡的數(shù)目將呈指數(shù)級增長,求解或遍歷程序的所有路徑將會引起狀態(tài)空間爆炸,導致極低的時空效率;不求解或遍歷程序的所有路徑,則會因檢測覆蓋面不全導致漏報問題。本文利用Pi演算的形式化和層次化特性,將各個子系統(tǒng)形式化為進程表達式,將子系統(tǒng)之間的時序、交互、同步和互斥等關系形式化為演算規(guī)則和遷移規(guī)則。依據(jù)這些規(guī)則,進程表達式通過并發(fā)演算可以還原出整個系統(tǒng)的結構信息。運行時行為檢測過程中,本文所提模型由捕獲的API驅(qū)動進行并發(fā)演算,這意味著,模型只會還原出程序該次運行所產(chǎn)生的路徑和相關結構信息。若程序的某次運行,其路徑上的API數(shù)為n,則模型的空間消耗為維護n個狀態(tài)列表的開銷,其規(guī)模與路徑上的API數(shù)n呈線性增長關系。

    為了體現(xiàn)出擴展Pi演算層次化的特點,本文的建模方法將并發(fā)的行為抽象成進程表達式的并發(fā)集合及其上的演算,形成封閉的代數(shù)空間。由于沒有使用回溯算法,設進程表達式的長度為m,維護n個狀態(tài)列表的情況下,本文方法總的時間開銷為O(mn),即運行時間是線性的,隨著m規(guī)模的增大并不會顯著地增加運行開銷。

    5.3 檢測有效性分析

    為了驗證本文所提出方法的有效性并與相關研究DroidRacer、nAdroid和Sard對比,使用10款開源的測試程序進行數(shù)據(jù)競爭檢測,結果如表1所示。其中檢測結果列、誤報數(shù)和漏報數(shù)列中由“/”分割的結果分別來自本文模型、DroidRacer、nAdroid和Sard。

    從表1中可以看出,本文方法總計檢出數(shù)據(jù)競爭81處,實際數(shù)據(jù)競爭為69處,誤報15處,漏報3處。對比檢測結果、誤報數(shù)和漏報數(shù)可知,本文方法明顯優(yōu)于DroidRacer、nAdroid和Sard。這是因為本文方法通過將數(shù)據(jù)競爭的安全約束形式化地表示為包含進程表達式的IF-THEN規(guī)則,實現(xiàn)了行為模式和行為所需滿足的安全策略之間的并發(fā)演算,這種機制可以非常容易地將現(xiàn)有的安全約束應用在該模型中。并且,本文采用的是動靜態(tài)結合進行檢測。本文將DroidRacer檢測用戶代碼的讀寫競爭規(guī)則,nAdroid檢測Android Apps中時序規(guī)則和Sard中對線程內(nèi)和線程間并發(fā)錯誤的檢測規(guī)則都以IF-THEN規(guī)則的形式納入到本文模型中,因此有較高的精確性,且在提高檢測精確性的同時并沒有犧牲檢測的效率。

    表1 數(shù)據(jù)競爭檢測結果

    5.4 檢測性能分析

    選取表1中的Android Apps作為目標程序進行時空負載的測試并與DroidRacer、nAdroid和Sard進行對比分析,其時間負載和空間負載分別如圖5、6所示。

    由時間負載的測試結果可知,檢測過程中,本文方法運行引起的正常CPU時間在5倍以下,其時間負載表現(xiàn)良好。DroidRacer和Sard引起的正常CPU時間在7倍以下,差強人意。nAdroid引起的正常CPU時間最高達到了9.5倍,明顯高于其他方法,其檢測精確性提高的同時檢測效率卻大大降低,這直接影響了其實用性。

    從空間負載的測試結果來看,本文方法的內(nèi)存空間增長率為3%~6%,非常穩(wěn)定,空間負載表現(xiàn)出色。這是因為本文方法檢測時并不需要將整個模型演算出來,而只需演算出待檢測的部分進行狀態(tài)遷移匹配,這有效地保障了模型的效率和實用性,測試結果也驗證了這一點。其他3種方法受應用程序規(guī)模的影響較大,其中nAdroid的內(nèi)存空間增長率為5%~12%,具有較高的空間負載。

    圖5 時間負載測試結果Fig.5 Result of time overhead

    圖6 空間負載測試結果Fig.6 Result of space overhead

    6 結束語

    本文針對事件驅(qū)動機制下的Android多線程程序的數(shù)據(jù)競爭問題,提出了一種形式化的行為檢測模型。利用擴展后的Pi演算對Android生命周期和多線程框架進行建模,探討了并發(fā)行為映射問題,并構建了并發(fā)行為的演算規(guī)則和遷移規(guī)則。擴展后的Pi演算的層次化特性適合于對Android Apps中組件化和基于通信的行為模式進行描述和檢測。進程演算等形式化特性有助于實現(xiàn)行為建模和檢測的自動化。通過將數(shù)據(jù)競爭的安全約束形式化地表示為包含進程表達式的IF-THEN規(guī)則,實現(xiàn)了行為模式和行為所需滿足的安全策略之間的并發(fā)演算,構建了檢測模型。將動態(tài)檢測與靜態(tài)檢測以相同的處理方式結合在檢測模型中,并給出了并發(fā)行為檢測算法和數(shù)據(jù)競爭檢測的方法。通過理論分析和實驗驗證,論證了該方法的檢測有效性和檢測性能。

    本文模型特別適合對應用程序并發(fā)執(zhí)行導致的數(shù)據(jù)競爭進行檢測。演算規(guī)則越完備,模型越精確。但隨著演算規(guī)則的規(guī)模越來越大,如何驗證這些規(guī)則之間的一致性以規(guī)避規(guī)則的內(nèi)在沖突,如何將相關的規(guī)則約簡歸并以進一步提高檢測的效率是下一步亟需解決的問題。

    猜你喜歡
    進程規(guī)則檢測
    撐竿跳規(guī)則的制定
    “不等式”檢測題
    “一元一次不等式”檢測題
    “一元一次不等式組”檢測題
    數(shù)獨的規(guī)則和演變
    債券市場對外開放的進程與展望
    中國外匯(2019年20期)2019-11-25 09:54:58
    讓規(guī)則不規(guī)則
    Coco薇(2017年11期)2018-01-03 20:59:57
    TPP反腐敗規(guī)則對我國的啟示
    小波變換在PCB缺陷檢測中的應用
    社會進程中的新聞學探尋
    民主與科學(2014年3期)2014-02-28 11:23:03
    欧美日韩亚洲国产一区二区在线观看 | 日本午夜av视频| 黄色片一级片一级黄色片| 色综合欧美亚洲国产小说| 精品一区二区三区av网在线观看 | 亚洲精品乱久久久久久| 国产免费视频播放在线视频| 午夜视频精品福利| 十八禁网站网址无遮挡| 后天国语完整版免费观看| 男女边吃奶边做爰视频| 老司机深夜福利视频在线观看 | 性高湖久久久久久久久免费观看| 男女边摸边吃奶| 成年女人毛片免费观看观看9 | 亚洲,欧美精品.| 久久99一区二区三区| 性少妇av在线| 人妻人人澡人人爽人人| 亚洲av成人不卡在线观看播放网 | 69精品国产乱码久久久| 久久99热这里只频精品6学生| 国产精品免费视频内射| 亚洲成人国产一区在线观看 | 日韩中文字幕欧美一区二区 | 黑人欧美特级aaaaaa片| 啦啦啦啦在线视频资源| 99国产精品免费福利视频| 大型av网站在线播放| 成人国产av品久久久| 极品人妻少妇av视频| 亚洲精品久久午夜乱码| 亚洲专区中文字幕在线| 国产成人精品在线电影| 欧美日韩一级在线毛片| 脱女人内裤的视频| 午夜精品国产一区二区电影| 午夜福利免费观看在线| 99热网站在线观看| 夜夜骑夜夜射夜夜干| 午夜免费成人在线视频| 国产一区二区三区综合在线观看| 免费高清在线观看视频在线观看| 丰满迷人的少妇在线观看| 国产黄色视频一区二区在线观看| 久久天堂一区二区三区四区| 中文欧美无线码| av一本久久久久| 老司机在亚洲福利影院| 国产xxxxx性猛交| 美女脱内裤让男人舔精品视频| 麻豆国产av国片精品| 国产成人av教育| 极品人妻少妇av视频| 狠狠婷婷综合久久久久久88av| 国产精品国产av在线观看| 精品国产一区二区三区四区第35| 少妇精品久久久久久久| 老司机深夜福利视频在线观看 | 日本五十路高清| bbb黄色大片| 在线观看免费日韩欧美大片| 男女下面插进去视频免费观看| 视频区欧美日本亚洲| 精品人妻熟女毛片av久久网站| 熟女av电影| 欧美av亚洲av综合av国产av| 亚洲精品美女久久久久99蜜臀 | 日韩 亚洲 欧美在线| 国产黄色视频一区二区在线观看| 777米奇影视久久| 美女脱内裤让男人舔精品视频| 高清av免费在线| 国产女主播在线喷水免费视频网站| www.av在线官网国产| 久久精品国产亚洲av涩爱| 亚洲精品美女久久av网站| 精品免费久久久久久久清纯 | 最近最新中文字幕大全免费视频 | 日本欧美国产在线视频| 免费日韩欧美在线观看| 欧美精品啪啪一区二区三区 | 欧美日韩国产mv在线观看视频| 欧美日韩黄片免| 国产91精品成人一区二区三区 | 久久人妻福利社区极品人妻图片 | 在线观看免费视频网站a站| 亚洲欧美一区二区三区黑人| 久久久久国产一级毛片高清牌| 不卡av一区二区三区| 在线观看人妻少妇| 纵有疾风起免费观看全集完整版| 久久影院123| 亚洲精品成人av观看孕妇| 亚洲人成网站在线观看播放| 男人操女人黄网站| 男男h啪啪无遮挡| 伊人久久大香线蕉亚洲五| 黄色视频不卡| 国产极品粉嫩免费观看在线| 高清欧美精品videossex| 无遮挡黄片免费观看| 美女脱内裤让男人舔精品视频| 亚洲伊人久久精品综合| 在线 av 中文字幕| 国产不卡av网站在线观看| 丝袜人妻中文字幕| 成人影院久久| 国产欧美日韩一区二区三区在线| 久久人妻福利社区极品人妻图片 | 久久久欧美国产精品| 日韩av不卡免费在线播放| 国产日韩一区二区三区精品不卡| 亚洲熟女毛片儿| 免费在线观看完整版高清| 青草久久国产| 99九九在线精品视频| 精品人妻1区二区| 欧美日韩亚洲综合一区二区三区_| 日本vs欧美在线观看视频| 天天躁日日躁夜夜躁夜夜| 无遮挡黄片免费观看| 亚洲欧美一区二区三区黑人| 中文字幕色久视频| xxxhd国产人妻xxx| 丁香六月欧美| 人妻人人澡人人爽人人| 亚洲熟女毛片儿| 亚洲国产日韩一区二区| 日本vs欧美在线观看视频| 无限看片的www在线观看| 亚洲欧美色中文字幕在线| 亚洲国产精品一区二区三区在线| 国产片内射在线| 99久久99久久久精品蜜桃| 亚洲精品久久午夜乱码| 中文字幕人妻丝袜一区二区| 无遮挡黄片免费观看| 在线观看人妻少妇| 国产伦理片在线播放av一区| 久久久久久久国产电影| 天天躁狠狠躁夜夜躁狠狠躁| 手机成人av网站| 老司机影院成人| 久久久精品区二区三区| 纯流量卡能插随身wifi吗| 国产亚洲精品第一综合不卡| 男女无遮挡免费网站观看| 欧美人与善性xxx| 亚洲激情五月婷婷啪啪| 成年女人毛片免费观看观看9 | 99热国产这里只有精品6| 国产亚洲av片在线观看秒播厂| 国产一区亚洲一区在线观看| 免费高清在线观看视频在线观看| 亚洲人成电影观看| 午夜老司机福利片| 久久久久精品国产欧美久久久 | 热re99久久精品国产66热6| 午夜视频精品福利| 飞空精品影院首页| 亚洲精品日本国产第一区| 久久精品亚洲熟妇少妇任你| 亚洲国产中文字幕在线视频| 91国产中文字幕| 欧美激情高清一区二区三区| 日韩人妻精品一区2区三区| 免费看十八禁软件| 国产成人欧美在线观看 | 精品人妻熟女毛片av久久网站| 亚洲成人免费av在线播放| 久久精品久久久久久噜噜老黄| 国产高清不卡午夜福利| 亚洲中文av在线| 狠狠婷婷综合久久久久久88av| 成人亚洲精品一区在线观看| 国产成人精品久久久久久| 香蕉丝袜av| 在线看a的网站| 18在线观看网站| 日本午夜av视频| 在线av久久热| 亚洲精品乱久久久久久| 久久ye,这里只有精品| 午夜免费鲁丝| 国产高清视频在线播放一区 | 午夜免费观看性视频| 欧美精品人与动牲交sv欧美| 国产高清国产精品国产三级| 欧美+亚洲+日韩+国产| 岛国毛片在线播放| 精品欧美一区二区三区在线| 侵犯人妻中文字幕一二三四区| 午夜免费男女啪啪视频观看| 欧美精品一区二区免费开放| 色播在线永久视频| 美女中出高潮动态图| 欧美精品人与动牲交sv欧美| 中国国产av一级| 久久久久久久大尺度免费视频| 国产三级黄色录像| 国产精品一国产av| 国产日韩一区二区三区精品不卡| 乱人伦中国视频| 狠狠婷婷综合久久久久久88av| 久久久久视频综合| 9191精品国产免费久久| 美女中出高潮动态图| 日本av免费视频播放| 精品卡一卡二卡四卡免费| 亚洲av成人不卡在线观看播放网 | 黄频高清免费视频| 欧美久久黑人一区二区| 国产亚洲av片在线观看秒播厂| 伊人亚洲综合成人网| 国产免费视频播放在线视频| 少妇被粗大的猛进出69影院| e午夜精品久久久久久久| 一级黄色大片毛片| 久久人妻福利社区极品人妻图片 | 成在线人永久免费视频| 两个人看的免费小视频| 久久久久国产精品人妻一区二区| 国产精品一区二区在线观看99| 多毛熟女@视频| 成年av动漫网址| 国产亚洲精品久久久久5区| 国产精品欧美亚洲77777| 天天躁夜夜躁狠狠躁躁| 日本av免费视频播放| 亚洲国产欧美网| 国产精品麻豆人妻色哟哟久久| 欧美精品一区二区免费开放| av天堂久久9| 国产免费一区二区三区四区乱码| 一区二区三区精品91| 亚洲国产最新在线播放| 乱人伦中国视频| www.av在线官网国产| 久久精品成人免费网站| 大码成人一级视频| 女人爽到高潮嗷嗷叫在线视频| 国产成人欧美| 久久av网站| 国产成人精品无人区| 国产成人一区二区三区免费视频网站 | 美女脱内裤让男人舔精品视频| 十八禁人妻一区二区| 爱豆传媒免费全集在线观看| 国语对白做爰xxxⅹ性视频网站| 97在线人人人人妻| 十八禁网站网址无遮挡| cao死你这个sao货| 妹子高潮喷水视频| 国产精品久久久久久精品古装| 欧美精品高潮呻吟av久久| 久久人妻熟女aⅴ| 精品熟女少妇八av免费久了| 日本猛色少妇xxxxx猛交久久| √禁漫天堂资源中文www| 99国产精品99久久久久| 欧美亚洲日本最大视频资源| 男女无遮挡免费网站观看| 久久国产精品大桥未久av| 国产成人91sexporn| 真人做人爱边吃奶动态| 午夜视频精品福利| 999精品在线视频| 女人精品久久久久毛片| 国产精品一区二区在线不卡| 国产日韩欧美视频二区| 蜜桃在线观看..| 性色av乱码一区二区三区2| 日韩中文字幕视频在线看片| 欧美精品啪啪一区二区三区 | e午夜精品久久久久久久| 9色porny在线观看| 国产视频一区二区在线看| 久久亚洲国产成人精品v| 日韩一本色道免费dvd| www.精华液| 丰满饥渴人妻一区二区三| 亚洲伊人色综图| 久久中文字幕一级| 视频区图区小说| av国产久精品久网站免费入址| 777久久人妻少妇嫩草av网站| 少妇被粗大的猛进出69影院| 久久精品成人免费网站| 亚洲熟女精品中文字幕| 看免费av毛片| 天天躁夜夜躁狠狠躁躁| 捣出白浆h1v1| 欧美精品一区二区免费开放| 美国免费a级毛片| 另类亚洲欧美激情| 亚洲人成电影观看| 菩萨蛮人人尽说江南好唐韦庄| 亚洲国产欧美网| 久久亚洲精品不卡| 国产成人影院久久av| 校园人妻丝袜中文字幕| 老司机影院成人| 久久精品国产a三级三级三级| 国产男人的电影天堂91| 国产视频首页在线观看| 成在线人永久免费视频| 欧美激情极品国产一区二区三区| 无遮挡黄片免费观看| 激情视频va一区二区三区| 另类亚洲欧美激情| 91国产中文字幕| 黄色a级毛片大全视频| 好男人电影高清在线观看| 色网站视频免费| 亚洲欧洲日产国产| 午夜激情av网站| 男人添女人高潮全过程视频| 男女下面插进去视频免费观看| 女人精品久久久久毛片| 日本欧美国产在线视频| 久久狼人影院| 亚洲一区二区三区欧美精品| 一级毛片女人18水好多 | 亚洲av电影在线进入| 精品久久蜜臀av无| 国产精品免费视频内射| 国产三级黄色录像| 国产精品亚洲av一区麻豆| 黄色视频在线播放观看不卡| 国产精品二区激情视频| 免费在线观看黄色视频的| 最近手机中文字幕大全| 久久精品熟女亚洲av麻豆精品| 91国产中文字幕| 在线观看免费高清a一片| 精品人妻一区二区三区麻豆| cao死你这个sao货| 久久久久久久精品精品| 丝瓜视频免费看黄片| 高清黄色对白视频在线免费看| 国产一区二区 视频在线| 99久久人妻综合| 伊人亚洲综合成人网| 久久青草综合色| 国产亚洲精品第一综合不卡| 在线看a的网站| 丰满迷人的少妇在线观看| 黑人巨大精品欧美一区二区蜜桃| 在线看a的网站| 制服人妻中文乱码| 乱人伦中国视频| 国产成人精品久久二区二区91| 在线观看国产h片| 91字幕亚洲| 国产女主播在线喷水免费视频网站| 免费不卡黄色视频| 免费日韩欧美在线观看| 欧美激情 高清一区二区三区| 美女主播在线视频| 欧美日韩av久久| 啦啦啦 在线观看视频| av又黄又爽大尺度在线免费看| 建设人人有责人人尽责人人享有的| 欧美97在线视频| 一区二区三区精品91| 91九色精品人成在线观看| 久久久欧美国产精品| 久热这里只有精品99| 国产成人精品久久二区二区91| 高潮久久久久久久久久久不卡| 日本91视频免费播放| 国产黄色免费在线视频| 亚洲国产最新在线播放| 国产一卡二卡三卡精品| 操美女的视频在线观看| 97精品久久久久久久久久精品| 久久女婷五月综合色啪小说| 一级毛片电影观看| 成人国产一区最新在线观看 | 美女国产高潮福利片在线看| 亚洲成av片中文字幕在线观看| 亚洲精品乱久久久久久| 欧美成人精品欧美一级黄| 亚洲av日韩在线播放| 天堂8中文在线网| 在线观看一区二区三区激情| av福利片在线| 国产精品99久久99久久久不卡| 看免费成人av毛片| 黑人猛操日本美女一级片| 亚洲成人免费av在线播放| 最新在线观看一区二区三区 | 婷婷色麻豆天堂久久| 亚洲一码二码三码区别大吗| 国产日韩一区二区三区精品不卡| 国产野战对白在线观看| 亚洲美女黄色视频免费看| 午夜免费鲁丝| 成年动漫av网址| 精品国产乱码久久久久久小说| 黄色视频在线播放观看不卡| 国产成人一区二区在线| 自拍欧美九色日韩亚洲蝌蚪91| 国产精品久久久久久精品古装| 大话2 男鬼变身卡| 一区二区三区四区激情视频| 久久精品aⅴ一区二区三区四区| 99热国产这里只有精品6| 一级a爱视频在线免费观看| 人人妻人人澡人人爽人人夜夜| 久久热在线av| 在线观看一区二区三区激情| 如日韩欧美国产精品一区二区三区| 欧美国产精品va在线观看不卡| 亚洲成色77777| 男女边吃奶边做爰视频| 人人妻,人人澡人人爽秒播 | 高清av免费在线| 成年av动漫网址| 久久99精品国语久久久| 夜夜骑夜夜射夜夜干| 久久鲁丝午夜福利片| 日韩av免费高清视频| 丝袜在线中文字幕| 日韩av在线免费看完整版不卡| 2021少妇久久久久久久久久久| 老汉色av国产亚洲站长工具| 亚洲精品国产一区二区精华液| 好男人电影高清在线观看| 一区二区三区精品91| a级毛片黄视频| 在线天堂中文资源库| 国产成人啪精品午夜网站| 人人妻人人澡人人看| 久久人人爽av亚洲精品天堂| 99热国产这里只有精品6| 中文字幕另类日韩欧美亚洲嫩草| 爱豆传媒免费全集在线观看| 少妇粗大呻吟视频| 久久久亚洲精品成人影院| 99九九在线精品视频| 美女高潮到喷水免费观看| 国产日韩一区二区三区精品不卡| 日韩电影二区| 极品人妻少妇av视频| 精品少妇一区二区三区视频日本电影| 国产精品av久久久久免费| 久久精品久久精品一区二区三区| av视频免费观看在线观看| 国产97色在线日韩免费| 久久热在线av| 久久亚洲精品不卡| 在线av久久热| 成人国产一区最新在线观看 | 午夜福利影视在线免费观看| 十八禁网站网址无遮挡| www.熟女人妻精品国产| 亚洲第一av免费看| 可以免费在线观看a视频的电影网站| 欧美亚洲日本最大视频资源| 黄频高清免费视频| 亚洲成人手机| a级片在线免费高清观看视频| 亚洲精品国产一区二区精华液| 国产野战对白在线观看| 国产极品粉嫩免费观看在线| 久久久久久免费高清国产稀缺| 免费看十八禁软件| 曰老女人黄片| 亚洲欧美精品自产自拍| 欧美日韩国产mv在线观看视频| 久久久国产精品麻豆| xxxhd国产人妻xxx| a级片在线免费高清观看视频| 免费久久久久久久精品成人欧美视频| 久久久国产欧美日韩av| 日韩伦理黄色片| 国产成人精品久久二区二区免费| 飞空精品影院首页| 最近中文字幕2019免费版| 国产成人影院久久av| 中文乱码字字幕精品一区二区三区| 久久中文字幕一级| 亚洲av片天天在线观看| 国产精品.久久久| 欧美日韩视频高清一区二区三区二| 久久亚洲精品不卡| 自拍欧美九色日韩亚洲蝌蚪91| 男女午夜视频在线观看| 亚洲国产av影院在线观看| 男人舔女人的私密视频| 欧美人与性动交α欧美精品济南到| 建设人人有责人人尽责人人享有的| 日韩大码丰满熟妇| 水蜜桃什么品种好| 永久免费av网站大全| 中文字幕精品免费在线观看视频| 国产精品av久久久久免费| 色播在线永久视频| 国产免费现黄频在线看| 啦啦啦在线免费观看视频4| www.av在线官网国产| 久久青草综合色| 久久久久精品人妻al黑| 亚洲av电影在线观看一区二区三区| 91麻豆精品激情在线观看国产 | 少妇裸体淫交视频免费看高清 | 亚洲欧美日韩另类电影网站| 51午夜福利影视在线观看| 美国免费a级毛片| 人体艺术视频欧美日本| 美女福利国产在线| videosex国产| 亚洲 欧美一区二区三区| 国产在线免费精品| 国产av国产精品国产| 日本黄色日本黄色录像| 青青草视频在线视频观看| 在线观看一区二区三区激情| 日本色播在线视频| 国产精品免费视频内射| 天堂中文最新版在线下载| 9色porny在线观看| 欧美在线黄色| 最新在线观看一区二区三区 | 男女下面插进去视频免费观看| 在现免费观看毛片| 你懂的网址亚洲精品在线观看| 日韩免费高清中文字幕av| 大话2 男鬼变身卡| 欧美性长视频在线观看| 日本a在线网址| 色婷婷久久久亚洲欧美| 天天操日日干夜夜撸| 亚洲一区中文字幕在线| 亚洲欧美精品自产自拍| 国产在视频线精品| 大陆偷拍与自拍| 国产成人a∨麻豆精品| 女人久久www免费人成看片| 日日夜夜操网爽| 久久精品国产亚洲av涩爱| 亚洲 欧美一区二区三区| 精品人妻熟女毛片av久久网站| 国产精品一区二区免费欧美 | 久久精品国产亚洲av涩爱| 看免费av毛片| 日韩,欧美,国产一区二区三区| 亚洲色图综合在线观看| 国产在线免费精品| 国产成人a∨麻豆精品| 丝袜美腿诱惑在线| 一本久久精品| 免费观看人在逋| 夜夜骑夜夜射夜夜干| 肉色欧美久久久久久久蜜桃| 欧美精品亚洲一区二区| 国产国语露脸激情在线看| 一区福利在线观看| 午夜日韩欧美国产| 天天躁夜夜躁狠狠久久av| 99久久人妻综合| 国产视频首页在线观看| 欧美日韩综合久久久久久| 久久久精品区二区三区| 亚洲免费av在线视频| 中文字幕人妻丝袜一区二区| 热99国产精品久久久久久7| av福利片在线| 午夜免费观看性视频| 国产免费视频播放在线视频| 久久精品成人免费网站| 亚洲图色成人| 亚洲国产精品一区三区| 亚洲av电影在线进入| 麻豆乱淫一区二区| 99久久精品国产亚洲精品| 深夜精品福利| 老司机影院成人| 观看av在线不卡| av欧美777| 精品少妇内射三级| 18在线观看网站| 十八禁高潮呻吟视频| 成人18禁高潮啪啪吃奶动态图| 国产有黄有色有爽视频| 亚洲av综合色区一区| 中文精品一卡2卡3卡4更新| 国产在线免费精品| 国产精品久久久久久精品电影小说| 操出白浆在线播放| 亚洲精品久久成人aⅴ小说| 99久久99久久久精品蜜桃| 只有这里有精品99| 久久国产精品男人的天堂亚洲| 亚洲精品av麻豆狂野| 久久久亚洲精品成人影院| 亚洲成人免费av在线播放| 天堂8中文在线网| av网站免费在线观看视频| 亚洲专区中文字幕在线| 久久影院123| 日本a在线网址| 午夜精品国产一区二区电影| 激情五月婷婷亚洲| 亚洲九九香蕉| 三上悠亚av全集在线观看| 亚洲欧洲日产国产| 久久人妻福利社区极品人妻图片 | 国产成人免费观看mmmm| 免费在线观看完整版高清| 国产精品久久久久成人av| 亚洲色图 男人天堂 中文字幕| 一区福利在线观看|