《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 自修改代碼對QEMU翻譯效率的影響分析
自修改代碼對QEMU翻譯效率的影響分析
2014年電子技術應用第7期
劉安戰1,2, 夏 冰2,3
1. 中原工學院 軟件學院, 河南 鄭州 450007;2. 計算機信息系統安全評估河南省工程實驗室,河南 鄭州 450007;3. 中原工學院 計算機學院,河南 鄭州 450007
摘要: 自修改代碼是二進制翻譯研究中的難點和影響翻譯效率的重要因素。眾多文獻介紹了自修改代碼對二進制翻譯效率的影響,但均缺乏量化分析。針對上述問題,利用QEMU作為實驗平臺,對自修改代碼和非自修改代碼進行了大量的測試,量化地分析了自修改代碼對翻譯器的翻譯效率和翻譯塊數量的影響。研究結果表明,在QEMU翻譯器上,自修改代碼隨著自修改同比次數增長,其執行時間的增加速度平均是非自修改程序的5.82倍。平均每增加1次自修改,對應在QEMU上的翻譯塊數量約增加10.51塊。
中圖分類號: TP311
文獻標識碼: A
文章編號: 0258-7998(2014)07-0130-04
Self-modifying code influence analysis of QEMU translation
Liu Anzhan1,2, Xia Bing2,3
1. School of Software,Zhongyuan University of Technology, Zhengzhou 450007, China;2. Henan Province Engineering Laboratory of Computer Information System Security Assessment, Zhengzhou 450007, China;3. School of Computer Science, Zhongyuan University of Technology, Zhengzhou 450007, China
Abstract: In binary translation, self-modifying code is a difficult issue and factor that influences the translation efficiency. Many papers introduce the influences of self-modifying code on binary translator, but there are no quantitative research discovered. To address the issues above,using QEMU as the experimentation platform, this thesis has carried on massive tests about the self-modifying and non-self-modifying code, thoroughly analyzed translation time efficiency and the translation block number which is influenced by the self-modifying code. From the research, the speed about procedure execution time increasing with numbers of self-modifying when self-modifying code is executed on QEMU is 5.82 times of the speed when non-self-modifying code is executed on QEMU. Each time there is one more time of self-modifying, the translation block averagely increases 10.51 blocks.
Key words : binary translation; self-modifying code; QEMU

  自修改代碼SMC(Self-Modifying Code)是程序運行期間修改或產生代碼的一種機制[1]。自修改代碼以其具有在程序執行過程中動態地修改和產生程序本身執行的指令的特點,在增加代碼的理解難度阻止逆向工程和軟件保護方面有廣泛的應用[2-3]。有文獻利用自修改代碼技術描述基于RSA算法的軟件加密保護方法[4],把自修改的特點和經典的RSA加密算法結合起來保護軟件。為了能兼容原有的程序以及對現有程序進行完整支持,有的處理器實現了對自修改代碼的支持[5-6]。在二進制翻譯中,解決自修改代碼問題,首先是要能夠發現自修改代碼,由于自修改代碼的動態性,使得對一個純靜態翻譯器來說是不可能的,對動態翻譯器也比較困難。如果能夠提供一些手段監視被修改的代碼[7],就可以在發現源機器代碼被修改后,置其對應的目標機器代碼無效并進行重新翻譯,從而解決自修改代碼問題。DAISY[8]系統通過在頁設置寫保護標識,實現在發現自修改時銷毀頁中所有的翻譯信息。QEMU[9-10]系統把所有翻譯過的塊的目標代碼段存放在自己開辟的內存空間Code cache中。被翻譯器翻譯的程序的執行就是執行Code cache中翻譯好的代碼塊。在自修改代碼發生時,QEMU通過系統信號判斷,然后清空Code cache中所有翻譯好的塊。參考文獻[11]也給出關于二進制翻譯中自修代碼的介紹。

1 自修改代碼

  下面是一段匯編編寫的自修改代碼:

  START: nop

  mov  $0x04, %eax

  LOOP:  inc %eax

  TARGET: xor  %eax, %eax

  test %eax, %eax

  jnz END

  MODIFY: movb $0x32, TARGET

  0x32 = “inc %eax”

  jmp LOOP

  END:  nop

  對于這段代碼,當程序運行到MODIFY標識時,此處對應的指令“movb $0x32, TARGET”向地址為TARGET的內存單元寫數據0x32,對應位置上的指令被修改,被修改位置上原來的指令“xor %eax, %eax”被自修改而變成了指令“inc %eax %eax”;程序繼續運行至jmp LOOP指令,跳轉到LOOP位置,當再次運行到TARGET位置時,則運行修改后的指令“inc %eax %eax”而非原代碼段的指令“xor %eax, %eax”,這樣“test %eax, %eax”的結果是非零值,接著jnz END使得程序運行結束。如果該段程序沒有MODIFY這一自修改代碼指令,此程序段將陷入死循環中。

2 QEMU的自修改代碼機制

  QEMU系統[9-10]是由法國人Farbic開發的一款多源多目標的二進制翻譯系統。它支持源平臺有PPC、ARM、X86、MIPS、SPARC和X86_64等,目標平臺可以是X86、PPC、ARM、MIPS等。

  QEMU系統中的Code cache是其為了存儲翻譯后的塊而開辟的內存空間,通過存儲基本塊對應的翻譯后的塊到Code cache中,避免重復翻譯帶來的時間開銷,加速翻譯器翻譯的效率。QEMU系統開辟了16 MB的內存空間作為系統的Code cache,并對每一個翻譯塊按照其生成的次序加入到Code cache中,直至Code cache被充滿。當Code cache被充滿時,QEMU采用全清空策略清除Code cache中所有翻譯好的塊,實際上就是清除QEMU中維護的源與目標之間的Hash表。全清空策略就是Code cache 從低地址到高地址依次存放每個翻譯后的代碼塊,當出現Code cache 空間不足或程序階段行為突變時,就將清除Code cache中所有翻譯好代碼塊。在發生自修改時,QEMU同樣采用全清空策略清除Code cache中翻譯好的塊,以防止因為自修改造成的Code cache不一致而使得翻譯的程序錯誤執行。

3 自修改代碼對翻譯效率的影響分析

  實驗采用的操作系統是CetOS-4.6, 翻譯器采用QEMU-0.9.0,針對的源和目標平臺都是Intel x86指令集。

  為了敘述方便,這里用SmcPro表示一個自修該代碼實例。該實例把第1節中的自修改代碼進行了進一步修改,用COUNT控制代碼的循次數(即自修改代碼的次數)。

  為了描述方便,這里將用到的幾個符號作如下說明: 對于SmcPro,根據自修改次數COUNT不同的值,相對應的程序為SMC_COUNT。如SMC_100表示SmcPro的COUNT為100,即自修改代碼執行次數為100次。NSMC_COUNT表示與SMC_COUNT擁有相同代碼量但不包含自修代碼的程序段。

  下面對SMC_COUNT和NSMC_COUNT程序在物理機和QEMU上進行測試和分析。

  3.1 物理機上自修改代碼的影響

  表1是對每一個SMC_COUNT和NSMC_COUNT在物理機上執行10次得到的平均值對照表,行和列交匯的值為對應程序的執行時間效率。例如:表中行SMC和列50相交的位置的值是SMC_50在物理機上執行10次的時間平均值。

  分析表1中的數據可知, SMC_COUNT和NSMC_COUNT在物理機上的執行時間相當。事實上,這正是由于它們在執行指令數量上是一致的,可以得出結論:物理機上自修改代碼對程序運行的性能沒有影響,程序的運行時間取決于程序運行過程中實際執行的指令數量。

  3.2 QEMU上自修改代碼的影響

  下面對SMC_COUNT和NSMC_COUNT在QEMU用戶模式下的測試結果進行分析,其中每個數據都是經過10次測試得到的平均值。有些數據是通過QEMU提供的日志信息得到, QEMU在用戶模式下,通過-d out_asm參數可以將翻譯的塊信息輸出到日志文件/tmp/qemu.log中。

  3.2.1 時間對比

001.jpg

  圖1給出了在QEMU上執行的SMC和NSMC程序的執行時間和COUNT關系圖,從表1和圖1可知,對于在物理機上執行時間上基本沒有差別的SMC和NSMC程序,在QEMU上的執行時間差別隨自修改同比次數的增加而越來越大。

  從圖1可以清楚地看到,在QEMU上運行的測試程序隨著自修改同比次數的增加,自修改程序比非自修改程序在執行時間上增加得更加明顯。

  對圖1中的NSMC在自修改同比次數大于1 000后所表示的點進行線性擬合,可以得到式(1):

  Tnsmc=0.000 026×C+0.000 291      (1)

  其中,Tnsmc表示圖中的縱坐標,即程序執行時間;C表示橫坐標,即COUNT。

  由式(1)可知,對于非自修改程序,COUNT平均每增加1,對應的時間增加0.000 026 s。

  同樣得到:

  Tsmc=0.000 151×C-0.010 899      (2)

  其中,Tsmc表示圖中的縱坐標,即程序執行時間;C表示橫坐標,即COUNT。

  由式(2)可知,對于自修改程序,COUNT平均每增加1,對應的時間增加0.000 151 s,而截距為負值說明隨著COUNT的增加,時間增加的速度也在增加。

  由式(1)、式(2)可以得到,SMC程序執行時間隨COUNT增大的增長率和NSMC程序的增長率的比值為:

  OMH(Y8VCVN9)}$DX~J3DHGV.png

  由此可見,SMC程序的運行時間開銷隨COUNT的增長率是NSMC程序的約5.82倍。

002.jpg

  圖2是NSMC程序在QEMU和物理機上的執行時間對比圖。由圖可知,NSMC程序在QEMU和物理機上的執行時間都隨COUNT的增加而增加,在QEMU上的執行時間略大于在物理機上的執行時間。為了對圖進行定量分析,這里給出降速因子的定義。

  定義:一個程序Pro(SMC或NSMC程序)在QEMU上的執行時間與其在物理機上的執行時間的比值,稱為該程序在QEMU上執行的降速因子,記作:SDF(Pro)。

  對于圖2中所有描述出來的數據點,可以計算得出所有NSMC程序在QEMU上執行的平均降速因子:SDF(NSMC)=1.033 421。

003.jpg

  圖3是SMC在QEMU和物理機上的執行時間對比,SMC程序在QEMU和物理機上的執行時間隨COUNT的增加而增加,在QEMU上的執行時間遠遠大于在物理機上的執行時間,增長速度也較物理機上要快得多。對于自修改同比次數大于1 000的點,計算得出圖3中表示的所有SMC程序在QEMU上執行的平均降速因子SDF(SMC)=5.925 423。

  3.2.2 翻譯塊數量對比

004.jpg

  圖4所示為翻譯的塊數與COUNT的關系圖,縱坐標表示翻譯的塊數,用BLOCK表示,縮寫表示為BLK。從圖4可以看到,在QEMU翻譯器上,SMC程序隨著自修改同比次數的增加,翻譯塊的數量也在增加,而NSMC程序翻譯塊的個數基本不變。

  對圖4中NSMC表示的折線進行線性擬合,可以得到:

  BLK=-0.003 045×C+1 672   (4)

  其中,BLK表示圖中的縱坐標,即翻譯的塊數;C表示橫坐標,即COUNT。由式(4)可知,對于非自修改程序,隨著COUNT的增加,翻譯的塊數在少量地減少,平均COUNT每增加1,翻譯塊數減少0.003 045塊。

  對圖4中的SMC表示量,通過對COUNT大于1 000的點進行線性擬合,可以得到:

  BLK=10.508 430×C+1 712.533 333     (5)

  其中,BLK表示圖中的縱坐標,即翻譯的塊數BLOCK;C表示橫坐標,即COUNT。由式(5)可知,對于自修改程序,COUNT平均每增加1,對應的翻譯塊增加10.508 430個。

  由式(2)和式(5)可知,對于自修改程序每增加一塊造成的時間開銷TPB(Time Per Block)為:

  E2CUG[QIYZ]MTIWZ{J[(X@Q.png

  3.2.3 翻譯塊數對執行時間影響

 

005.jpg

  圖5和圖6描述了程序在QEMU上執行的時間與翻譯塊數的關系。在翻譯塊的數量比較少時,程序在QEMU上的執行時間很難發現規律,執行時間具有很大的隨機性;隨著翻譯塊數的小幅增加,執行時間時增時減,如圖5所示。但是當翻譯塊的數量增加到一定程度后,執行時間逐漸開始基本成線性增加,如圖6所示,當翻譯塊數超過10 000后,程序的執行時間與翻譯塊數量基本成線性關系,通過對10 000塊以后的數據點進行線性擬合得到的斜率為0.000 0144,這與式(6)的結論相當。由此可知, 當翻譯塊的數量達到一定程度后, 程序在QEMU上的執行時間與翻譯塊的數量基本成線性關系。

  由于自修改代碼是在程序執行過程中修改程序本身的,在以塊為單位的二進制翻譯過程中,隨著自修次數的增加,造成的翻譯塊也急劇增加,從而使得程序在翻譯器上的執行時間大大增加,究其根本原因是因為自修造成的Code cache中翻譯好的塊失效。在QEMU中,翻譯器每翻譯一個塊都會把翻譯后可以在目標機上執行的代碼存放到Code cache中,但是由于自修代碼的出現使得在Code cache中的塊與源代碼塊在語義上不一致,因此必須清除掉Code cache中的翻譯好的塊,否則將執行與原來語義不一致的代碼,造成翻譯的錯誤。QEMU在自修改代碼發生時對Code cache采用全清空策略[6],這樣導致在Code cache中的所有翻譯好的塊都失效,從而在程序再次執行這些塊時,不得不重新翻譯,隨著自修改同比次數的增加,重復翻譯的塊數也在急劇增加,翻譯效率也就急劇下降。

  通過測試用例對自修改代碼和非自修改代碼進行測試和分析,可以得出以下基本結論:(1)在物理機上,自修改代碼對程序的執行時間沒有影響;(2)自修改代碼程序在QEMU上的執行時間隨自修改同比次數增長的速度是非自修改程序的約5.82倍; (3)非自修改代碼在QEMU上執行的平均降速因子約為1.033 421; (4)自修改代碼在QEMU上執行的平均降速因子約為5.925 423;(5)自修改代碼平均每增加1次自修改,對應在QEMU上的翻譯塊約增加10.51塊; (6)在QEMU上執行的程序,翻譯塊數超過一定的值后,執行時間與翻譯塊數基本成線性關系。

  在以塊為基本單位的二進制翻譯器中,當自修改代碼發生時,被修改的源代碼所在的塊對應的Code cache中翻譯好的塊就必須被清除,否則將造成語義上的不一致,導致翻譯錯誤。本文量化分析了自修改代碼對QEMU翻譯效率的影響,得出了一些初步結論,下一步將繼續研究自修改代碼翻譯效率的提高問題。

參考文獻

  [1] Self-modifying code[EB/OL].(2009-04)[2014-01].http://en.wikipedia.org/wiki/Self-modifying code.

  [2] KANZAKI Y, MONDEN A, NAKAMURA M, et al. Expl-oiting selfmodication mechanism for program protection[C].In:Proceedings of the 27th Annual International ComputerSoftware and Applications Conference, USA: IEEE Press,2003:170-181.

  [3] MADOU M, ANCKAERT B, MOSELEY P, et al. Softwareprotection through dynamic code mutation[C]. In: Proceed-ings of Information Security Applications Conference, USA:ACM  Press, 2005:194-206.

  [4] 莫翩晨, 林和, 蔡萬景,等. 基于RSA算法與自修改機制的軟件保護[J]. 計算機研究與發展, 2006,43(3):140-144.

  [5] Intel.IA-32 Intel architecture software developer′s manu-als[Z]. 2005.

  [6] 張浩,錢學海.自修改代碼在Godson-X上的處理實現[J].計算機工程, 2008,34(3):102-104.

  [7] GSCHWIND M, ALTMAN E, SATHAYE S, et al. Dynamicand transparent binary translation[J]. IEEE Computer Soci-ety, 2000,33(3):54-59.

  [8] EBCIOGLU K, ALTMAN E. DAISY: dynamic compilatonfor 100 percent architectural compatibility[C]. In: Proceed-ings of ISCA24, New York: ACM Press, 1997:26-37.

  [9] QEMU: The open source processor emulator[EB/OL].(2010-03-31)[2014-01-26].http://fabrice.bellard.free.fr/qemu/about.html.

  [10] BELLARD F. QEMU, a fast and portable dynamic trans-lator[C]. USENIX Annual Technical Conference, APR10-15, USENIX Association Proceedings of the Freenix/Open Source Track, 2005:41-46.

  [11] SMITH J, NAIR R. Virtual machines: versatile platformsfor systems and processes[M]. Morgan Kaufmann, 2005.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲精品免费在线观看| 欧美中文字幕视频| 国内精品视频一区| 亚洲国产一区二区三区高清| 久久久999精品免费| 欧美精品成人| 黄色精品一区| 日韩午夜电影在线观看| 午夜精品福利视频| 免费精品99久久国产综合精品| 激情欧美日韩一区| 久久久久久9| 国产一区av在线| 在线视频免费在线观看一区二区| 麻豆视频一区二区| 在线观看成人av| 亚洲韩国日本中文字幕| 欧美激情精品久久久久久久变态| 免费在线一区二区| 国产日韩亚洲欧美| 国产一区二区三区自拍| 国产精品久久午夜| 亚洲精品欧美激情| 香蕉久久久久久久av网站| 国产一区久久| 伊人一区二区三区久久精品| 久久久久91| 一区二区三区中文在线观看| 亚洲第一精品影视| 国产精品久久久久av| 国产精品扒开腿做爽爽爽视频| 午夜精品国产精品大乳美女| 久久综合一区| 欧美成人精品不卡视频在线观看| 国产视频精品va久久久久久| 国产精自产拍久久久久久蜜| 久久久久久穴| 免费成人av在线看| 一区二区欧美亚洲| 亚洲一区二区不卡免费| 狠狠色丁香久久婷婷综合丁香| 欧美成人国产一区二区| 久久久久久久久久久久久9999| 国产偷自视频区视频一区二区| 欧美日韩成人免费| 亚洲免费播放| 国产精品久久久久久av下载红粉| 国产精品一区2区| 亚洲视频日本| 亚洲精品久久久久久一区二区| 久久手机免费观看| 蜜臀久久99精品久久久画质超高清| 国产精品日韩精品欧美精品| 欧美日韩国产精品一卡| 99re66热这里只有精品4| 亚洲经典一区| 国产精品海角社区在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 午夜精品亚洲一区二区三区嫩草| 欧美成人精品一区| 久久一区二区视频| 一区二区久久久久| 久久精品国产v日韩v亚洲| 久久精品人人爽| 欧美一区永久视频免费观看| 国产综合色产| 一区二区在线看| 亚洲视频视频在线| 亚洲综合成人婷婷小说| 在线不卡a资源高清| 裸体素人女欧美日韩| 激情一区二区| 亚洲欧美春色| 欧美在线视频播放| 国产精品免费aⅴ片在线观看| 性色av一区二区怡红| 欧美日韩亚洲视频一区| 一本久久a久久精品亚洲| 狠狠色狠色综合曰曰| 国产曰批免费观看久久久| 欧美a一区二区| 欧美高清在线播放| 夜夜嗨av一区二区三区免费区| 蜜桃av综合| 欧美国产第二页| 久久亚洲欧美| 久久久999精品免费| 欧美乱人伦中文字幕在线| 日韩午夜电影在线观看| 精品粉嫩aⅴ一区二区三区四区| 国产精品免费区二区三区观看| 欧美日在线观看| 一区二区久久久久久| 亚洲裸体视频| 一本色道久久综合亚洲精品不| 国产精品综合色区在线观看| 国语对白精品一区二区| 欧美午夜视频在线| 一区二区三区在线不卡| 欧美成人精品三级在线观看| 亚洲精品国产精品国自产观看| 欧美一区二区久久久| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲福利视频二区| 在线精品一区二区| 欧美在线欧美在线| 亚洲国产精品一区二区久| 国产精品草莓在线免费观看| 国产一区二区三区自拍| 国产精品性做久久久久久| 亚洲精品乱码久久久久久日本蜜臀| 久久日韩粉嫩一区二区三区| 亚洲香蕉视频| 欧美精品www在线观看| 中文在线一区| 欧美日韩三区四区| 久久精品动漫| 欧美天堂亚洲电影院在线观看| 欧美在线免费观看亚洲| 国产日韩精品视频一区| 影音先锋国产精品| 一区免费观看视频| 欧美日韩一区二区高清| 午夜伦欧美伦电影理论片| 欧美成人有码| 欧美欧美天天天天操| 亚洲天堂黄色| 亚洲一区二区三区免费观看| 国产精品成人一区二区网站软件| 亚洲国产你懂的| 国产亚洲欧美在线| 亚洲国产视频a| 国产精品网红福利| 夜夜精品视频| 久久久777| 亚洲一区二区三区四区在线观看| 欧美视频一区在线观看| 国产原创一区二区| 国产欧美日本一区二区三区| 久久av二区| 久久香蕉国产线看观看av| 蜜乳av另类精品一区二区| 久久久精品国产99久久精品芒果| 亚洲丶国产丶欧美一区二区三区| 久热精品在线| 亚洲制服欧美中文字幕中文字幕| 国产精品最新自拍| 欧美日韩在线看| 欧美精品一区二区三区蜜桃| 欧美午夜不卡在线观看免费| 国产性做久久久久久| 国产农村妇女毛片精品久久麻豆| 一区二区在线观看av| 亚洲欧美在线免费| 亚洲综合视频一区| 欧美中在线观看| 亚洲成色999久久网站| 欧美另类高清视频在线| 一区二区三区欧美在线观看| 国产精品毛片大码女人| 麻豆成人在线观看| 国产精品一区二区你懂的| 欧美大学生性色视频| 亚洲视频网站在线观看| 国产精品免费视频观看| 蜜桃av噜噜一区二区三区| 欧美日韩国产麻豆| 欧美成人a∨高清免费观看| 欧美日韩二区三区| 欧美成在线视频| 欧美91福利在线观看| 黄色精品免费| 亚洲精品国产品国语在线app| 久久精品国产亚洲一区二区三区| 久久国内精品视频| 欧美α欧美αv大片| 国一区二区在线观看| 国产精品三级久久久久久电影| 亚洲国产精品福利| 国产精品久久一区主播| 国产综合视频| 久久精品国产综合精品| 国产精品视频一区二区高潮| 亚洲小说欧美另类社区| 在线成人性视频| 国产日韩欧美精品| 日韩视频免费大全中文字幕| 欧美日韩亚洲综合在线| 樱桃视频在线观看一区| 激情偷拍久久| 亚洲日本欧美| 亚洲精品视频在线观看免费| 亚洲高清不卡一区| 亚洲精品在线观看免费| 欧美在线视频导航| 久久久久久久久岛国免费| 极品少妇一区二区三区精品视频| 亚洲一区二区影院| 亚洲免费视频在线观看| 亚洲成人直播| 在线 亚洲欧美在线综合一区| 欧美激情精品久久久久久大尺度| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲国产精品一区二区www在线| 国产在线麻豆精品观看| 一区二区亚洲精品| 国产亚洲一区二区三区| 国产日本亚洲高清| 亚洲激情欧美| 欧美日韩极品在线观看一区| 国产精品二区三区四区| 欧美精品首页| 久久久久久久一区| 最新国产拍偷乱拍精品| 久久亚洲一区二区| 国产精品观看| 亚洲一区二区三区中文字幕| 久久久欧美精品sm网站| 欧美午夜视频一区二区| 国产日本欧美一区二区三区| 欧美日韩另类国产亚洲欧美一级| 欧美视频一区二区在线观看| 欧美成ee人免费视频| 欧美日韩亚洲在线| 一本综合精品| 在线成人av.com| 国产日韩欧美综合一区| 亚洲综合欧美日韩| 欧美激情在线狂野欧美精品| 久久精品国产亚洲一区二区| 99精品久久免费看蜜臀剧情介绍| 麻豆免费精品视频| 在线观看日韩专区| 亚洲欧洲一区二区三区| 免费欧美网站| 香蕉久久夜色精品国产| 欧美日韩四区| 国产一二三精品| 99www免费人成精品| 欧美日韩高清在线播放| 亚洲伊人一本大道中文字幕| 国产亚洲精品成人av久久ww| 99视频精品全部免费在线| 午夜欧美不卡精品aaaaa| 国产精品麻豆成人av电影艾秋| 国色天香一区二区| 久久免费视频这里只有精品| 在线免费日韩片| 久久天天躁狠狠躁夜夜av| 国精产品99永久一区一区| 国产精品久在线观看| 亚洲人成网站在线观看播放| 久久久国产亚洲精品| 亚洲一区二区影院| 久久国产精品久久久久久久久久| 欧美三级中文字幕在线观看| 久久久久久久久一区二区| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲人精品午夜在线观看| 国产精品久久久久久久久婷婷| 久久精品免费| 久久高清一区| 黄色在线一区| 性色av香蕉一区二区| 亚洲欧美激情四射在线日| 国内自拍亚洲| 欧美日韩国产综合久久| 欧美在线观看一区二区| 欧美色道久久88综合亚洲精品| 女仆av观看一区| 久久蜜桃资源一区二区老牛| 亚洲黄色在线看| 欧美日韩不卡| 亚洲男人第一av网站| 国产一区二区欧美日韩| 国产精品高精视频免费| 国产精品无码永久免费888| 久久综合狠狠综合久久综青草| 欧美伊人久久大香线蕉综合69| 国产精品女人网站| 欧美成人综合| 亚洲天堂成人在线观看| 国产一区二区三区四区hd| 99精品欧美一区| 欧美三级在线播放| 欧美成人按摩| 正在播放亚洲| 亚洲国产天堂网精品网站| 一区二区视频免费完整版观看| 欧美成人在线免费视频| 久久综合成人精品亚洲另类欧美| 91久久午夜| 久久久久久久性| 国产亚洲精品美女| 欧美国产日韩亚洲一区| 亚洲视频播放| 欧美视频一区二区三区…| 久久只有精品| 日韩网站在线| 一本一本大道香蕉久在线精品| 国产偷久久久精品专区| 国产日韩精品入口| 国产午夜亚洲精品不卡| 亚洲欧美日韩综合一区| 久久成人国产精品| 宅男噜噜噜66一区二区| 亚洲人被黑人高潮完整版| 伊人久久大香线蕉综合热线| 蜜臀99久久精品久久久久久软件| 欧美电影免费| 欧美精品系列| 国产精品最新自拍| 国内精品久久久久影院薰衣草| 亚洲精品在线观看视频| 欧美私人网站| 麻豆成人小视频| 欧美日韩黄色一区二区| 欧美亚洲综合久久| 美女精品视频一区| 欧美日韩精品在线视频| 国产精品一区久久久| 久久精品一区二区国产| 欧美亚洲一区三区| 国产精品亚洲第一区在线暖暖韩国| 国语自产精品视频在线看一大j8| 亚洲在线观看视频网站| 欧美.日韩.国产.一区.二区| 国产伦精品一区二区三区照片91|