日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java探针之修改类字节码文件

發(fā)布時(shí)間:2024/9/30 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java探针之修改类字节码文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java探針利用了javaAgent + ASM字節(jié)碼注入工具實(shí)現(xiàn)了動(dòng)態(tài)修改類文件的功能。像skywalking和arthas都使用到了這個(gè)技術(shù)。
具體原理為:

jdk1.5以后引入了javaAgent技術(shù),javaAgent是運(yùn)行方法之前的攔截器。我們利用javaAgent和ASM字節(jié)碼技術(shù),在JVM加載class二進(jìn)制文件的時(shí)候,利用ASM動(dòng)態(tài)的修改加載的class文件,在監(jiān)控的方法前后添加計(jì)時(shí)器功能,用于計(jì)算監(jiān)控方法耗時(shí),同時(shí)將方法耗時(shí)及內(nèi)部調(diào)用情況放入處理器,處理器利用棧先進(jìn)后出的特點(diǎn)對(duì)方法調(diào)用先后順序做處理,當(dāng)一個(gè)請(qǐng)求處理結(jié)束后,將耗時(shí)方法軌跡和入?yún)ap輸出到文件中,然后根據(jù)map中相應(yīng)參數(shù)或耗時(shí)方法軌跡中的關(guān)鍵代碼區(qū)分出我們要抓取的耗時(shí)業(yè)務(wù)。最后將相應(yīng)耗時(shí)軌跡文件取下來(lái),轉(zhuǎn)化為xml格式并進(jìn)行解析,通過(guò)瀏覽器將代碼分層結(jié)構(gòu)展示出來(lái),方便耗時(shí)分析。

上篇我們介紹了JavaAgent的基本使用,下面介紹如何去動(dòng)態(tài)的修改類的字節(jié)碼文件,這個(gè)才是agent實(shí)現(xiàn)更強(qiáng)大功能的核心所在!

Instrumentation接口

Instrumentation接口位于jdk1.6包java.lang.instrument包下,Instrumentation指的是可以獨(dú)立于應(yīng)用程序之外的代理程序,可以用來(lái)監(jiān)控和擴(kuò)展JVM上運(yùn)行的應(yīng)用程序,相當(dāng)于是JVM層面的AOP。

功能:
監(jiān)控和擴(kuò)展JVM上的運(yùn)行程序,它可以替換和修改java類的字節(jié)碼以便采集數(shù)據(jù),用于監(jiān)控,性能統(tǒng)計(jì),覆蓋率分析,事件記錄等。可以用在程序啟動(dòng)時(shí),也可以用于程序運(yùn)行時(shí)動(dòng)態(tài)attach。

比如說(shuō)一個(gè)Java程序在JVM上運(yùn)行,這時(shí)如果需要監(jiān)控JVM的狀態(tài),除了使用JDK自帶的jps等命令之外,就可以通過(guò)instrument來(lái)更直觀的獲取JVM的運(yùn)行情況;
或者一個(gè)Java方法在JVM中執(zhí)行,如果我想獲取這個(gè)方法的執(zhí)行時(shí)間又不想改代碼,常用的做法是通過(guò)Spring的AOP來(lái)實(shí)現(xiàn),而AOP通過(guò)面向切面編程,而instrument是在JVM層面上直接改動(dòng)java方法來(lái)實(shí)現(xiàn)。

public interface Instrumentation{//添加ClassFileTransformervoid addTransformer(ClassFileTransformer transformer, boolean canRetransform);//添加ClassFileTransformervoid addTransformer(ClassFileTransformer transformer);//移除ClassFileTransformerboolean removeTransformer(ClassFileTransformer transformer);//是否可以被重新定義boolean isRetransformClassesSupported();//重新定義Class文件void redefineClasses(ClassDefinition... definitions)throws ClassNotFoundException, UnmodifiableClassException;//是否可以修改Class文件boolean isModifiableClass(Class<?> theClass);//獲取所有加載的Class@SuppressWarnings("rawtypes")Class[] getAllLoadedClasses();//獲取指定類加載器已經(jīng)初始化的類@SuppressWarnings("rawtypes")Class[] getInitiatedClasses(ClassLoader loader);//獲取某個(gè)對(duì)象的大小long getObjectSize(Object objectToSize);//添加指定jar包到啟動(dòng)類加載器檢索路徑void appendToBootstrapClassLoaderSearch(JarFile jarfile);//添加指定jar包到系統(tǒng)類加載檢索路徑void appendToSystemClassLoaderSearch(JarFile jarfile);//本地方法是否支持前綴boolean isNativeMethodPrefixSupported();//設(shè)置本地方法前綴,一般用于按前綴做匹配操作void setNativeMethodPrefix(ClassFileTransformer transformer, String prefix); }

要是定義了操作java類的class文件方法,這里又涉及到了ClassFileTransformer接口,這個(gè)接口的作用是改變Class文件的字節(jié)碼,返回新的字節(jié)碼數(shù)組,源碼如下:

public interface ClassFileTransformer{byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined,ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException; }

ClassFileTransformer接口只有一個(gè)方法,就是改變指定類的Class文件,該接口沒(méi)有默認(rèn)實(shí)現(xiàn),很顯然如果需要改變Class文件的內(nèi)容,需要改成什么樣需要使用者自己來(lái)實(shí)現(xiàn)。
如:

import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod; import javassist.CtNewMethod;import java.lang.instrument.ClassFileTransformer; import java.lang.instrument.IllegalClassFormatException; import java.security.ProtectionDomain; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class MyTransformer implements ClassFileTransformer {final static String prefix = "\nlong startTime = System.currentTimeMillis();\n";final static String postfix = "\nlong endTime = System.currentTimeMillis();\n";// 被處理的方法列表final static Map<String, List<String>> methodMap = new HashMap<>();public MyTransformer() {add("com.jun.sail.myservice.service.HelloService.say");add("com.jun.sail.myservice.service.HelloService.say2");}private void add(String methodString) {String className = methodString.substring(0, methodString.lastIndexOf("."));String methodName = methodString.substring(methodString.lastIndexOf(".") + 1);List<String> list = methodMap.computeIfAbsent(className, k -> new ArrayList<>());list.add(methodName);}@Overridepublic byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined,ProtectionDomain protectionDomain, byte[] classfileBuffer) {className = className.replace("/", ".");if (methodMap.containsKey(className)) { // 判斷加載的class的包路徑是不是需要監(jiān)控的類CtClass ctclass = null;try {// 使用全稱,用于取得字節(jié)碼類<使用javassist>ctclass = ClassPool.getDefault().get(className);for (String methodName : methodMap.get(className)) {String outputStr = "\nSystem.out.println(\"this method [" + methodName+ "] cost:\" +(endTime - startTime) +\"ms.\");";// 得到這方法實(shí)例CtMethod ctmethod = ctclass.getDeclaredMethod(methodName);// 根據(jù)原來(lái)的方法 創(chuàng)建新的方法,名字為原來(lái)的methodNameCtMethod newMethod = CtNewMethod.copy(ctmethod, methodName, ctclass, null);// 把舊方法名字改掉,否則會(huì)沖突String oldMethodName = methodName + "$old";ctmethod.setName(oldMethodName);// 構(gòu)建新的方法體StringBuilder bodyStr = new StringBuilder();bodyStr.append("{");bodyStr.append(prefix);bodyStr.append(oldMethodName).append("($$);\n");// 調(diào)用原有代碼,類似于method();($$)表示所有的參數(shù)bodyStr.append(postfix);bodyStr.append(outputStr);bodyStr.append("}");newMethod.setBody(bodyStr.toString());newMethod.setName(methodName);ctclass.addMethod(newMethod);}return ctclass.toBytecode();} catch (Exception e) {System.out.println("AAAAA" + e.getMessage());e.printStackTrace();}}return null;} }

然后在permain或agentmain方法中inst.addTransformer(new MyTransformer());,其他步驟同之前,不再贅述。

Instrumentation接口相當(dāng)于一個(gè)代理,當(dāng)執(zhí)行premain方法時(shí),通過(guò)Instrumentation提供的API可以動(dòng)態(tài)的添加管理JVM加載的Class文件,Instrumentation管理著ClassFileTransformer。
ClassFileTransformer接口可以動(dòng)態(tài)的改變Class文件的字節(jié)碼,在加載字節(jié)碼的時(shí)候可以將字節(jié)碼進(jìn)行動(dòng)態(tài)修改,具體實(shí)現(xiàn)需要自定義實(shí)現(xiàn)類來(lái)實(shí)現(xiàn)ClassFileTransformer接口

Java字節(jié)碼生成框架大致有ASM、Javassist和byte buddy三種

  • ASM框架介紹及使用
    ASM是一種Java字節(jié)碼操控框架,能夠以二進(jìn)制形式修改已有的類或是生成類,ASM可以直接生成二進(jìn)制class文件也可以在類被加載入JVM之前動(dòng)態(tài)改變類,只不過(guò)ASM在創(chuàng)建class字節(jié)碼時(shí)說(shuō)底層JVM的匯編指令,需要使用者對(duì)class組織結(jié)構(gòu)和JVM匯編指令有一定的了解。由于Java 類存儲(chǔ)在.class文件中,這些類文件中包含有:類名稱、方法、屬性及字節(jié)碼,ASM從類文件中讀入信息后改變類行為、分析類信息或者直接創(chuàng)建新的類。

    著名的使用到ASM的案例便是lambda表達(dá)式、CGLIB動(dòng)態(tài)代理類

    ASM框架核心類包含
    ClassReader:該類用來(lái)解析編譯過(guò)的class字節(jié)碼文件
    ClassWriter:該類用來(lái)重新構(gòu)建編譯后的類,比如修改類名、屬性、方法或者根據(jù)要求創(chuàng)建新的字節(jié)碼文件
    ClassAdapter:實(shí)現(xiàn)了ClassVisitor接口,將對(duì)它的方法調(diào)用委托給另一個(gè)ClassVisitor對(duì)象

  • Javassist及使用
    Javassit相比于ASM要簡(jiǎn)單點(diǎn),Javassit提供了更高級(jí)的API,當(dāng)時(shí)執(zhí)行效率上比ASM要差,因?yàn)锳SM上直接操作的字節(jié)碼。功能和JDK自帶的反射功能類似,但是比反射要強(qiáng)大。

    Javassist核心類包括ClassPool:
    一個(gè)基于HashMap實(shí)現(xiàn)的CtClass對(duì)象容器,key上類名,value上這個(gè)類的CtClass對(duì)象
    CtClass:表示一個(gè)類,可以從ClassPool中獲取
    CtMethods:表示一個(gè)類的方法
    CtFields:表示類中的屬性

  • Byte Buddy及使用
    byte buddy是一個(gè)提供了API用于生成任意Java類工具包,可以生成和修改字節(jié)碼。

3. Instrumentation的實(shí)現(xiàn)原理

說(shuō)起Instrumentation的原理,就不得不先提起JVMTI:
JVMTI官網(wǎng)文檔
JVMTI
JVMTI 是JVM Tool Interface 的縮寫,是 JVM 暴露出來(lái)給用戶擴(kuò)展使用的接口集合,JVMTI 是基于事件驅(qū)動(dòng)的,JVM每執(zhí)行一定的邏輯就會(huì)調(diào)用一些事件的回調(diào)接口,這些接口可以給用戶自行擴(kuò)展來(lái)實(shí)現(xiàn)自己的邏輯。JVMTI是實(shí)現(xiàn) Debugger、Profiler、Monitor、Thread Analyser 和coverage analysis等工具的統(tǒng)一基礎(chǔ),在主流 Java 虛擬機(jī)中都有實(shí)現(xiàn)。

JVMTIAgent
JVMTI 是一套本地代碼接口,因此使用 JVMTI 需要我們與 C/C++ 以及 JNI 打交道。事實(shí)上,開(kāi)發(fā)時(shí)一般采用建立一個(gè) Agent 的方式來(lái)使用 JVMTI,它使用 JVMTI 函數(shù),設(shè)置一些回調(diào)函數(shù),并從 Java 虛擬機(jī)中得到當(dāng)前的運(yùn)行態(tài)信息,并作出自己的判斷,最后還可能操作虛擬機(jī)的運(yùn)行態(tài)。把 Agent 編譯成一個(gè)動(dòng)態(tài)鏈接庫(kù)之后,我們就可以在 Java 程序啟動(dòng)的時(shí)候來(lái)加載它(啟動(dòng)加載模式)
主要有三個(gè)函數(shù):

  • Agent_OnLoad方法:如果agent是在啟動(dòng)時(shí)加載的,那么在JVM啟動(dòng)過(guò)程中會(huì)執(zhí)行這個(gè)agent里的Agent_OnLoad函數(shù)
  • Agent_OnAttach方法:如果agent不是在啟動(dòng)時(shí)加載的,而是attach到目標(biāo)程序上,然后通過(guò)load命令來(lái)加載agent,由ClassFileLoadHook event提供回調(diào),調(diào)用Agent_OnAttach方法
  • Agent_OnUnload方法:在agent卸載時(shí)調(diào)用

回到主題,Instrument 就是一種 JVMTIAgent,它實(shí)現(xiàn)了Agent_OnLoad和Agent_OnAttach兩個(gè)方法,也就是在使用時(shí),Instrument既可以在啟動(dòng)時(shí)加載,也可以在運(yùn)行時(shí)動(dòng)態(tài)加載

  • 啟動(dòng)時(shí)加載就是在啟動(dòng)時(shí)添加JVM參數(shù):-javaagent:XXXAgent.jar的方式
  • 運(yùn)行時(shí)加載是通過(guò)JVM的attach機(jī)制來(lái)實(shí)現(xiàn),通過(guò)發(fā)送load命令來(lái)加載,這種方式明顯更加靈活,對(duì)監(jiān)控目標(biāo)啟動(dòng)也無(wú)限制,arthas的attach就是基于此
private void attachAgent(Configure configure) throws Exception {VirtualMachineDescriptor virtualMachineDescriptor = null;for (VirtualMachineDescriptor descriptor : VirtualMachine.list()) {String pid = descriptor.id();if (pid.equals(Integer.toString(configure.getJavaPid()))) {virtualMachineDescriptor = descriptor;}}VirtualMachine virtualMachine = null;try {if (null == virtualMachineDescriptor) { // 使用 attach(String pid) 這種方式virtualMachine = VirtualMachine.attach("" + configure.getJavaPid());} else {virtualMachine = VirtualMachine.attach(virtualMachineDescriptor);}Properties targetSystemProperties = virtualMachine.getSystemProperties();String targetJavaVersion = targetSystemProperties.getProperty("java.specification.version");String currentJavaVersion = System.getProperty("java.specification.version");if (targetJavaVersion != null && currentJavaVersion != null) {if (!targetJavaVersion.equals(currentJavaVersion)) {AnsiLog.warn("Current VM java version: {} do not match target VM java version: {}, attach may fail.",currentJavaVersion, targetJavaVersion);AnsiLog.warn("Target VM JAVA_HOME is {}, try to set the same JAVA_HOME.",targetSystemProperties.getProperty("java.home"));}}virtualMachine.loadAgent(configure.getArthasAgent(),configure.getArthasCore() + ";" + configure.toString());} finally {if (null != virtualMachine) {virtualMachine.detach();}}}

通過(guò) VirtualMachine , 可以attach到當(dāng)前指定的jvm pid上,然后 virtualMachine.loadAgent()將編寫好的agent用于監(jiān)控目標(biāo)。

總結(jié):

  • Instrumentation相當(dāng)于一個(gè)JVM級(jí)別的AOP

  • Instrumentation在JVM啟動(dòng)的時(shí)候監(jiān)聽(tīng)事件,如類加載事件,JVM觸發(fā)來(lái)指定的事件通過(guò)回調(diào)通知,并創(chuàng)建一個(gè) Instrumentation接口的實(shí)例,然后找到MANIFEST.MF中配置的實(shí)現(xiàn)了premain方法的Class,然后將Instrumentation實(shí)例傳入premain方法中

  • premain方法會(huì)在main方法之前執(zhí)行,可以添加ClassFileTransfer來(lái)實(shí)現(xiàn)對(duì)Class文件字節(jié)碼的動(dòng)態(tài)修改(并不會(huì)修改Class文件中的字節(jié)碼,而是修改已經(jīng)被JVM加載的字節(jié)碼)

  • 修改字節(jié)碼的技術(shù)可以使用開(kāi)源的 ASM、javassist、byteBuddy等

  • https://blog.csdn.net/u010862794/article/details/87773434

    總結(jié)

    以上是生活随笔為你收集整理的java探针之修改类字节码文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    亚洲午夜精品久久久久久久久久久久 | 亚洲aⅴ一区二区三区 | 成人97人人超碰人人99 | 性色av免费观看 | 又黄又爽又湿又无遮挡的在线视频 | 国产视频一区精品 | 国产精品自产拍在线观看网站 | a级成人毛片 | 国产视频 亚洲精品 | 国产97在线播放 | 97偷拍视频 | 中文字幕一区二区三区在线视频 | 最新午夜 | 丁香视频 | 美女国产 | 在线导航福利 | 免费av在线网 | 国产破处视频在线播放 | 六月天综合网 | 97自拍超碰 | 久久国产手机看片 | 最新av免费| 97网| 日韩色在线观看 | 人人天天夜夜 | 美女av在线免费 | 中文字幕av有码 | 国产一级电影免费观看 | 在线中文日韩 | 日韩精品三区四区 | 日本久久成人中文字幕电影 | 国产一区二区三区高清播放 | 91九色蝌蚪国产 | 欧美黑人性猛交 | 久草香蕉在线视频 | 成人超碰在线 | 手机在线看永久av片免费 | 日韩三区在线观看 | 美女网站免费福利视频 | 天天操综合网站 | 欧美性网站 | 欧美日本一二三 | 久久网址 | 国产九九精品 | 亚洲国产高清在线观看视频 | 色.com| 一级黄色电影网站 | 精品一区二区在线看 | 99久久久成人国产精品 | 天天射天天爱天天干 | 黄色午夜| 欧美性天天 | 国产精品久久久久av福利动漫 | 国产精品一区二区久久国产 | av免费在线看网站 | 在线成人观看 | 88av色| 日韩在线观看视频免费 | 黄毛片在线观看 | 91精品久久久久久综合乱菊 | 久久艹人人 | 91新人在线观看 | 六月天综合网 | 日韩精品免费在线视频 | 2021av在线| 中文字幕一区二区三区在线播放 | 国产精品久久久久av福利动漫 | 久久艹国产视频 | 色哟哟国产精品 | 2021av在线| 中文字幕视频免费观看 | 国产色视频 | 国内精品免费久久影院 | 亚洲国产精选 | 麻豆传媒电影在线观看 | 色综合天天干 | 激情网站网址 | 国产一级电影在线 | 91黄色影视 | 日本字幕网 | 在线视频 亚洲 | 天天色天| 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 亚洲mv大片欧洲mv大片免费 | 成年人免费电影在线观看 | 911精品视频| 狠狠色伊人亚洲综合网站色 | 日韩成人精品一区二区 | 国内久久久 | 午夜视频播放 | 国产精品女同一区二区三区久久夜 | av大全免费在线观看 | 欧美精品一区二区免费 | 在线观看日韩免费视频 | 欧美精品亚州精品 | 夜夜骑首页 | 国产免费专区 | 午夜三级理论 | 日韩av专区 | 国产日韩在线播放 | 亚洲天堂精品视频 | 综合国产在线观看 | 在线观看午夜av | 日本在线观看视频一区 | 18国产精品白浆在线观看免费 | 色99之美女主播在线视频 | 国产一级免费观看视频 | 91麻豆产精品久久久久久 | 99精品国产一区二区三区麻豆 | 日韩精品一区二区免费视频 | 欧美一区二区三区在线视频观看 | 999久久久精品视频 日韩高清www | 国产亚洲一级高清 | 国产成人精品电影久久久 | 91免费观看国产 | 91av国产视频 | 久久8| 久热电影| 狠狠狠狠狠操 | 亚洲国产大片 | 久久久人| 国产精品一区二区三区电影 | 亚洲亚洲精品在线观看 | 激情五月六月婷婷 | 久久视频这里有久久精品视频11 | 国产精品久久久久久久久久三级 | 美女久久久久久久 | 99热这里只有精品1 av中文字幕日韩 | 91欧美视频网站 | 亚洲黄色一级大片 | 一区二区三区中文字幕在线 | 免费观看的av | 亚洲三级网站 | 久久精品久久99精品久久 | 免费福利视频导航 | 国产专区视频在线观看 | 亚洲欧美日韩国产一区二区三区 | 国产视频不卡 | 97超碰国产精品女人人人爽 | 五月天色站 | 99精品免费久久久久久久久日本 | 午夜精品一区二区国产 | 国产精品久久在线观看 | 国产 精品 资源 | 亚洲成年人在线播放 | 亚洲午夜久久久久久久久电影网 | 一级α片免费看 | 色综合天天狠天天透天天伊人 | 激情五月播播久久久精品 | 在线中文字母电影观看 | 色综合久久天天 | 5月丁香婷婷综合 | 五月天婷婷在线视频 | 国产亚洲视频在线 | 国产成人黄色片 | 97成人免费 | 成人av在线播放网站 | 91久久国产综合精品女同国语 | 黄色网www | www成人av | 日韩免费| av电影在线观看 | 三级黄色大片在线观看 | 免费国产视频 | 久久99亚洲网美利坚合众国 | 91av在线免费观看 | 成人av播放 | 午夜av在线电影 | 毛片网站观看 | a黄在线观看 | 精品国产亚洲日本 | 热精品| 欧美91精品久久久久国产性生爱 | 免费a v在线 | 精品a在线 | 探花视频在线观看 | 成人免费一级 | 国产福利一区二区在线 | 六月丁香婷婷久久 | 久久免费电影 | 在线观看视频97 | 欧美日本不卡 | 久久视频国产 | 一级黄色片在线免费观看 | 丁香久久| 日韩网站在线免费观看 | 操久久免费视频 | 五月天网页 | 欧美精品亚州精品 | 成人在线观看你懂的 | 国产精品久久久久久久久久白浆 | 中文免费在线观看 | 伊人亚洲综合网 | 在线免费av观看 | 精品在线小视频 | 国产精品色视频 | 狠狠色丁香婷婷综合最新地址 | 色多视频在线观看 | av三级在线播放 | 99色精品视频 | 亚洲乱码国产乱码精品天美传媒 | 免费看黄在线 | 日本精品一二区 | 精品免费视频 | 国产精品久久久久久久久久久久久 | 精品免费视频. | 国产精品成人一区二区 | 欧洲精品视频一区二区 | 午夜在线国产 | 欧美日韩一区二区三区免费视频 | 久久久久久久久福利 | 97av.com| 亚洲va天堂va欧美ⅴa在线 | 狠狠88综合久久久久综合网 | 国产精品久久久一区二区三区网站 | 久久精品视频网 | 在线视频黄 | 国产色婷婷在线 | 四虎成人精品在永久免费 | 中文字幕乱视频 | 欧美激情综合五月色丁香 | 91精品亚洲影视在线观看 | 免费精品人在线二线三线 | 日日操狠狠干 | 正在播放 久久 | 久久久久久久久久久久久久av | 亚洲爱视频 | 天天夜夜狠狠操 | 国产一级片一区二区三区 | 激情综合交| 在线免费看片 | 超碰夜夜| 国产中年夫妇高潮精品视频 | 久保带人| 久久高清片 | 国产97在线观看 | 久久激情日本aⅴ | 亚洲精品影院在线观看 | 国产亚洲午夜高清国产拍精品 | 国产精品久久久久久一区二区 | 欧美日韩免费一区二区 | 在线观看免费高清视频大全追剧 | 天天色综合久久 | 天天综合区 | 97视频人人澡人人爽 | 国产成人精品一区二区在线 | www.久久久.com | 日韩xxxxxxxxx | 久久综合欧美精品亚洲一区 | 中文字幕黄色网址 | 国产成人精品午夜在线播放 | 日韩高清 一区 | 成人免费观看视频网站 | 久久久免费在线观看 | av免费看电影 | 久久精品中文字幕一区二区三区 | 国产视频精品在线 | 亚洲精品在线一区二区三区 | 免费又黄又爽视频 | 成人国产精品免费 | 国产在线视频导航 | 69国产盗摄一区二区三区五区 | 亚洲成人在线免费 | 久热精品国产 | 国产v在线观看 | 99久久久久久国产精品 | 国产精品毛片一区二区三区 | 99久久久国产免费 | 97操碰 | 久艹视频在线免费观看 | 91成人精品一区在线播放69 | 在线精品视频在线观看高清 | 人人插人人草 | 国产色女 | 麻豆视频一区二区 | 一区二区三区在线不卡 | 九色激情网 | 日韩精品视频久久 | 偷拍精偷拍精品欧洲亚洲网站 | 国产麻豆精品一区二区 | 中文字幕免费一区二区 | 五月天堂网 | 日韩免费在线一区 | 亚洲精品国久久99热 | av免费在线播放 | 欧美黄色高清 | 91九色蝌蚪国产 | 五月天色站 | 久久久久免费精品国产小说色大师 | 久艹在线观看视频 | 丁香激情视频 | 综合五月 | 国产成人精品在线播放 | 黄色国产高清 | 久久伊人婷婷 | 日产乱码一二三区别在线 | www麻豆视频 | 中文视频在线播放 | 在线免费三级 | 国产精品色婷婷视频 | 欧美一区免费在线观看 | 美女网站视频一区 | www.av在线.com | 日韩精品中文字幕在线 | 99久久久国产免费 | 中文字幕视频在线播放 | 国产精品入口麻豆www | 99色婷婷 | 国产成人精品a | 久久亚洲精品国产亚洲老地址 | 国产精品久久麻豆 | 中文字幕色在线视频 | 国产激情电影综合在线看 | 免费看一级片 | 黄色一级动作片 | 99精品视频免费看 | 天天想夜夜操 | 亚洲第一中文字幕 | 在线免费视频 你懂得 | 不卡视频国产 | 中国美女一级看片 | 国产成人在线免费观看 | 国产精品久久 | 国产一区二区视频在线播放 | 日韩精品一区二区三区不卡 | 99久久久国产精品免费观看 | 久久精品美女视频 | 免费日韩 精品中文字幕视频在线 | 国产精品正在播放 | 精品夜夜嗨av一区二区三区 | 少妇搡bbb| 国产精品久久久久国产a级 激情综合中文娱乐网 | 狠狠色综合网站久久久久久久 | 91麻豆国产 | av短片在线观看 | 81精品国产乱码久久久久久 | 久久久午夜电影 | 美女精品在线观看 | 久久精品亚洲精品国产欧美 | 在线va网站 | 亚洲国产一区二区精品专区 | 久久免费成人精品视频 | 日本在线观看一区 | 精品国产一区二区三区男人吃奶 | 婷婷天天色 | 国产综合激情 | 就要干b | 一本一本久久aa综合精品 | 亚洲91精品在线观看 | 色婷婷六月天 | 免费av小说 | 激情xxxx| 西西www4444大胆在线 | 久久免费精品视频 | 国产精品一区专区欧美日韩 | 欧美成人一二区 | 亚洲一本视频 | 欧美少妇xxx| 亚洲精品99久久久久久 | 久艹视频免费观看 | 国产午夜精品视频 | 亚洲精品mv在线观看 | 97超碰国产精品 | 亚洲一区二区高潮无套美女 | 精品国产综合区久久久久久 | 久久久久久久久久久久亚洲 | 久久视频一区 | 在线观看精品一区 | 国产高清一区二区 | 国产精品久久久久久五月尺 | 天天摸天天操天天爽 | 亚洲精品国偷自产在线91正片 | 色综合天天综合网国产成人网 | 91成人免费视频 | av黄色在线播放 | 中文字幕日韩伦理 | 天天操天天干天天干 | 成人四虎| 99免费在线观看视频 | 97人人网 | 国产成人一区二区三区影院在线 | 97电影在线| 日韩av免费观看网站 | 国产精品精品久久久 | 1024手机基地在线观看 | 久久精品女人毛片国产 | 成人av免费播放 | 久久色在线播放 | 99久久精品视频免费 | 免费在线观看成人小视频 | 久久看片网站 | 亚洲成aⅴ人在线观看 | 精品国产一区二区三区噜噜噜 | 日韩一级电影在线观看 | 少妇性aaaaaaaaa视频 | 成年人国产在线观看 | 国产又粗又长的视频 | 成人va天堂 | 亚洲激情网站免费观看 | 视频在线一区二区三区 | 欧美日韩在线网站 | 亚洲精品中文字幕在线 | 日韩性色| 九九综合在线 | 97久久精品午夜一区二区 | 亚洲永久精品一区 | 99热99 | 在线精品视频在线观看高清 | 日产乱码一二三区别在线 | 亚洲区视频在线 | 九九精品久久 | 亚洲黄电影 | 久久综合亚洲鲁鲁五月久久 | 深夜免费福利网站 | 婷婷成人亚洲综合国产xv88 | 日韩av看片| 一区二区中文字幕在线观看 | 日韩在线不卡视频 | 欧美精品一区二区三区一线天视频 | 成人黄色毛片视频 | 亚洲天堂网在线观看视频 | 在线免费国产视频 | 91热视频| 在线中文字幕电影 | 97av影院 | 国产精品资源在线 | 免费看黄色小说的网站 | 亚洲精品1234区 | 日韩黄在线观看 | 久久精品视频免费播放 | 国产精品18久久久久vr手机版特色 | 欧美中文字幕第一页 | 日韩中文字幕在线看 | 99久热在线精品视频成人一区 | 夜又临在线观看 | 亚洲国产视频直播 | 午夜黄网 | 久久精品一二三 | 一级电影免费在线观看 | 国色综合 | 亚洲视频在线免费看 | 999成人| 视频99爱 | 亚洲网久久 | 九九九免费视频 | 亚洲视频精选 | 国产91在| 91禁在线看| 欧美日韩精品影院 | 久久高清| 91x色| 五月婷在线 | 91精品秘密在线观看 | 成人免费观看a | 欧美精品做受xxx性少妇 | 嫩草伊人久久精品少妇av | 一区二区电影在线观看 | 久久香蕉国产精品麻豆粉嫩av | 久久免费99精品久久久久久 | 91自拍成人| 久久经典视频 | 日本在线观看一区二区三区 | 精品中文字幕视频 | 在线观看日韩av | 中文字幕高清免费日韩视频在线 | 亚洲精品黄色 | 国产精品9999| 91精品久久久久 | 国产一线天在线观看 | 99亚洲精品| 波多野结衣综合网 | 婷婷六月丁香激情 | 中文av不卡 | 亚洲综合视频在线观看 | 久久国产片 | 国产爽妇网 | 久久久久女人精品毛片九一 | 美女久久一区 | 97视频久久久 | 天天摸日日摸人人看 | 夜夜躁日日躁狠狠久久av | 欧美日韩精品免费观看视频 | 日韩欧三级 | 在线播放 日韩专区 | 国产精品久久嫩一区二区免费 | 精品国产一区二区三区蜜臀 | 人人藻人人澡人人爽 | 麻豆视频在线观看免费 | 亚洲免费观看视频 | 国产在线日本 | 色综合久久久久综合体桃花网 | 精品专区一区二区 | 在线观看韩日电影免费 | 国产麻豆剧传媒免费观看 | 成人午夜精品久久久久久久3d | 国产黄在线 | 国产美女视频免费观看的网站 | 五月综合激情婷婷 | www日 | 91热爆视频 | 91精品啪在线观看国产 | 中文字幕国产精品一区二区 | 久久综合久色欧美综合狠狠 | 国产精品久久久久久久久久久杏吧 | 五月天激情视频在线观看 | 五月综合久久 | 在线观看成人福利 | 国产在线观看一区 | 日韩高清在线看 | 91av资源在线 | 92av视频 | 99在线免费观看 | 欧美日韩精 | 在线视频观看国产 | 国产精品第一页在线观看 | 欧美视频二区 | 一级一片免费观看 | www.亚洲激情.com | 亚洲午夜精品久久久久久久久 | 很黄很黄的网站免费的 | 国产午夜麻豆影院在线观看 | 日韩精品 在线视频 | 丁香花在线观看免费完整版视频 | 国产精品video | 国产色 在线 | 成人免费中文字幕 | 九九热免费视频在线观看 | 精品中文字幕在线观看 | 午夜国产福利在线观看 | 国产精品久久久久久久av电影 | 精品视频成人 | 91成人午夜 | 久久免费电影网 | 黄色中文字幕在线 | 人人爽人人搞 | 欧美黑人性猛交 | 97在线视频免费 | 久久精品国产成人 | 一区二区中文字幕在线播放 | 日韩精品91偷拍在线观看 | 亚洲精品在线资源 | 国产男女无遮挡猛进猛出在线观看 | 91成人区 | 天天插天天色 | 黄色大片免费播放 | 欧美日韩精品在线 | 免费成人在线视频网站 | 国产精品免费成人 | 午夜精选视频 | 91视频免费看片 | 黄色av一区二区三区 | 欧美日韩18 | 国产成人精品一二三区 | 手机看片国产 | 久久久久久久福利 | 操碰av| 91超级碰| 亚洲国产美女精品久久久久∴ | 国产二区视频在线观看 | 成人黄色资源 | 黄色影院在线观看 | 玖玖在线免费视频 | 青草视频在线 | 永久免费精品视频网站 | 91尤物在线播放 | 亚洲成av人片在线观看无 | 日韩欧美电影在线观看 | 亚洲理论在线 | 黄色的视频 | 天天搞天天 | 婷婷中文在线 | 久影院 | 国产精品久久人 | av天天澡天天爽天天av | 中文字幕91视频 | 国产精品久久久久影院 | 久草在线免 | 狠狠的操狠狠的干 | 免费看色视频 | 久久与婷婷 | 久久久久影视 | 综合久久2023| 91在线操 | 亚洲人成人天堂h久久 | 免费成人在线电影 | 日本在线观看一区二区三区 | 一区二区三区久久精品 | 久久99亚洲热视 | 夜夜躁日日躁狠狠久久88av | 超碰人人乐 | 天天干天天射天天操 | 天天色成人网 | 成+人+色综合 | 色多多污污 | 免费看的黄网站 | 久久精品久久久久电影 | 精品 激情 | 国产精品久久久久久久久久白浆 | 三级黄色网络 | 久久99精品国产 | 久草精品视频在线播放 | 美国人与动物xxxx | 欧美在线不卡一区 | 日韩免费一二三区 | 色吧av色av| 伊人夜夜| 日韩av中文字幕在线免费观看 | 在线观看中文字幕一区二区 | 免费高清在线观看成人 | 日本高清中文字幕有码在线 | 国产精品视频区 | 欧美成人黄色 | 国产一区二区精品在线 | 亚洲视频免费 | 精品一区二区三区电影 | 免费观看一区二区 | 日韩午夜av | 欧美久久久久 | 97热久久免费频精品99 | 欧美日韩国语 | 天天舔天天搞 | 日韩网站视频 | 国产精品一区二区美女视频免费看 | 成人中文字幕在线 | 香蕉91视频| 国产中出在线观看 | 在线观看国产中文字幕 | 激情网站免费观看 | 婷婷伊人综合亚洲综合网 | 中文在线8资源库 | 亚洲精品久久久久久久蜜桃 | 麻豆影视在线播放 | 欧美 激情 国产 91 在线 | 欧美性生活久久 | 成人黄色短片 | 91丝袜美腿 | 一区二区三区免费网站 | 超碰97中文 | 国内视频一区二区 | 超碰97成人| 国产一区二区在线免费观看 | 五月婷婷丁香激情 | 日韩av电影中文字幕 | 亚洲九九影院 | 亚洲精品xx| aaa日本高清在线播放免费观看 | a视频在线 | 亚洲国产美女精品久久久久∴ | 91丨九色丨丝袜 | 亚洲国产精品99久久久久久久久 | 在线日韩一区 | 国产福利精品一区二区 | 一区二区丝袜 | 亚洲视频六区 | 亚洲综合黄色 | 国产亚洲综合在线 | 国产在线观看免费 | 二区三区在线观看 | 国产a级精品 | 中文字幕精品视频 | 欧美日韩国产区 | 91在线看黄 | 日韩三级视频在线观看 | 亚洲另类xxxx | 人人添人人澡人人澡人人人爽 | 伊人狠狠色 | 黄网站色视频免费观看 | 江苏妇搡bbbb搡bbbb | 黄色片网站| 在线va视频 | 久草在线在线 | 91精品日韩 | 超碰久热 | 91九色蝌蚪国产 | 天天插天天干天天操 | 天天做日日做天天爽视频免费 | 超碰97在线资源站 | 日韩av不卡播放 | 女女av在线 | 国产精品你懂的在线观看 | 国产免费视频在线 | 欧美日韩一区二区在线观看 | 国产成人性色生活片 | 狠狠干网站 | 色黄视频免费观看 | 91成人破解版 | 97色综合 | 中文字幕一区二区三区在线视频 | 日本中文字幕在线 | 国产精品午夜在线观看 | 亚洲成人av一区二区 | 欧美一区二区三区免费看 | 久久精品一区二区三 | 久久a免费视频 | 精品久久久久久久久久久院品网 | 在线亚洲激情 | 亚洲成av人片在线观看 | 国产99久久久精品 | 韩国一区二区三区视频 | 九九激情视频 | 国产精品av电影 | av天天色 | 精品国产诱惑 | 亚洲视频播放 | 精品美女在线观看 | 91欧美国产| 日韩欧美视频免费看 | 涩涩资源网 | 久草在线中文888 | 免费又黄又爽的视频 | 精品国产成人av | 亚洲精区二区三区四区麻豆 | 成人性生爱a∨ | 国内偷拍精品视频 | 五月婷婷六月丁香 | 中文字幕欧美三区 | 免费观看国产成人 | 精品在线观看一区二区 | 又色又爽又激情的59视频 | 亚洲成人午夜在线 | 国产在线更新 | 亚洲四虎影院 | 日本在线观看中文字幕无线观看 | 久久久久成人精品亚洲国产 | 亚洲精品tv久久久久久久久久 | 欧美综合色在线图区 | 91中文视频| 欧美激情视频一二区 | 夜夜操网站 | 91| 国产精品免费一区二区 | av在线短片 | 97国产在线 | 精精国产xxxx视频在线播放 | 毛片网在线观看 | 91丨九色丨91啦蝌蚪老版 | 色综合天天视频在线观看 | 91在线免费看片 | 中文字幕在线视频一区 | 免费在线观看一级片 | 久久人人爽人人人人片 | adn—256中文在线观看 | 国产在线a不卡 | 天天干,天天草 | 九九久久国产精品 | 国产在线不卡一区 | 欧美日韩在线免费观看视频 | 又黄又刺激视频 | 亚洲激情视频 | 久99久视频 | 少妇av网| 人人干干人人 | 国产美女精品 | 91精品久久久久久久久久久久久 | 四虎国产免费 | 亚洲激情网站免费观看 | 国产亚洲精品中文字幕 | 国产精品va在线观看入 | 97精品免费视频 | 激情文学丁香 | 免费久久网站 | 亚洲精品日韩av | 激情综合网在线观看 | 五月婷婷久久丁香 | 亚洲国产精品va在线 | 日本少妇久久久 | 欧美性大战久久久久 | 国产资源网 | 婷婷丁香在线 | 激情深爱五月 | 韩日电影在线免费看 | 在线a亚洲视频播放在线观看 | 日韩在线观看第一页 | 亚洲欧美综合精品久久成人 | 日本mv大片欧洲mv大片 | 99免费国产 | 99视频在线观看免费 | 免费av黄色| 日本中文一级片 | 偷拍精偷拍精品欧洲亚洲网站 | 中文字幕在线一区二区三区 | 在线看片成人 | 九色91福利 | 亚洲国产精品久久久久久 | 偷拍区另类综合在线 | 欧美在线不卡一区 | 中文乱码视频在线观看 | 手机看片1042 | 亚洲黄色小说网址 | 久久久2o19精品 | 国产亚洲精品久久久久动 | 久久999精品 | 久久伊人免费视频 | 97视频久久久 | 国产视频在 | 玖玖综合网 | 日韩二区在线播放 | 911精品视频| 免费av影视 | 欧美亚洲三级 | jizz999| 久久99国产一区二区三区 | 色综合久久综合 | av网站在线观看免费 | 中文字幕在线视频一区二区 | 日日干干 | 天天操天天干天天摸 | 欧美日韩一区二区三区在线观看视频 | 99久久婷婷国产综合精品 | 韩国三级在线一区 | 久久久久久99精品 | 99久热在线精品视频成人一区 | 国内免费久久久久久久久久久 | 日韩午夜大片 | 日韩中文字幕免费在线观看 | 美女视频永久黄网站免费观看国产 | 成人在线播放av | 色婷婷九月 | 综合激情av | 免费观看性生交 | 亚洲精品中文字幕视频 | 午夜精品久久久久久久久久久久久久 | 免费在线中文字幕 | 国内视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 98久9在线 | 免费 | 99久久精品国产一区二区三区 | 亚洲 欧洲 国产 日本 综合 | 欧美亚洲国产日韩 | 在线色网站 | 丁香婷婷亚洲 | 免费在线一区二区三区 | 香蕉视频在线免费 | 精品视频国产 | 最近免费中文字幕大全高清10 | 天天爽网站 | 天天天天综合 | 免费网站色 | 天天综合人人 | 网址你懂的在线观看 | 久久综合免费 | 欧美激情综合五月 | 99国产一区二区三精品乱码 | а天堂中文最新一区二区三区 | 激情偷乱人伦小说视频在线观看 | 国产粉嫩在线观看 | 欧美久久综合 | 中文字幕乱码日本亚洲一区二区 | 欧美日韩亚洲在线 | 一区二区三区免费 | 成人免费大片黄在线播放 | 99视频导航 | 最新日韩中文字幕 | 成人禁用看黄a在线 | 免费网址在线播放 | 亚洲永久精品一区 | 日本精品久久久久中文字幕 | 人人躁| 久二影院 | 国产一级视频免费看 | 成人中文字幕在线 | 91免费版在线 | 日韩精品久久久久久久电影99爱 | 国产99久久久国产精品 | 天天摸天天操天天爽 | 国产高清不卡 | а天堂中文最新一区二区三区 | 免费欧美高清视频 | 青青草在久久免费久久免费 | 精品国模一区二区三区 | 深爱婷婷久久综合 | 欧美一级爽 | avav99| 国产成人精品网站 | 九九精品无码 | 黄污网 | 欧美色伊人 | 少妇自拍av| 西西444www高清大胆 | 最新国产中文字幕 | 亚洲综合色网站 | 在线只有精品 | 亚洲三级网 | 日韩欧美在线中文字幕 | 人人超碰免费 | 欧美精品一级视频 | 亚洲精品国产精品99久久 | 久久伊人精品一区二区三区 | 国产成人av片 | 国产综合片 | 激情欧美网| 最近日本韩国中文字幕 | 最近中文字幕在线 | 国产永久网站 | 曰本免费av | 精品亚洲欧美无人区乱码 | 国产精品a级 | 六月天综合网 | 又长又大又黑又粗欧美 | 99精品网站| 日韩精品一区二区在线视频 | 日日夜夜免费精品视频 | 8x成人在线| 日韩在线免费视频观看 | 欧美日韩不卡一区二区三区 | 黄色一级免费网站 | 成年人黄色大片在线 | 久久不卡日韩美女 | 五月婷婷在线观看 | av日韩在线网站 | 久久婷婷开心 | 久久久久国产精品厨房 | 成人资源站| 久久网页 | 日韩二区三区在线 | 国内精品久久久久久久影视麻豆 | 午夜av片| 婷婷久久一区 | 国产亚洲精品女人久久久久久 | 91影视成人| 日日干视频 | 亚洲自拍av在线 | 久久婷五月| 黄色免费大全 | 九九九九九国产 | 国产黄色成人 | 四虎免费av| 在线免费观看视频一区二区三区 | 亚洲国产精品电影 | 国产黄色精品网站 | 成人性生交大片免费观看网站 | 久久99在线观看 | 日本三级中文字幕在线观看 | 久久av福利 | 久久久久久国产精品久久 | 91精品色| 亚洲精选久久 | 中文字幕在线观看网址 | 怡红院av久久久久久久 | 成年人电影毛片 | 福利电影一区二区 | 开心激情五月婷婷 | 日韩欧在线 | 亚洲精品456在线播放 | 伊人视频 | 奇米影视8888在线观看大全免费 | 日韩综合精品 | 最近字幕在线观看第一季 | 成人av资源网站 | 久久99深爱久久99精品 | 十八岁以下禁止观看的1000个网站 | 五月天婷婷综合 | 久久免费国产电影 | 国产精品免费久久久久久久久久中文 | 久久在草 | 青春草视频 | 91香蕉视频在线下载 | 草久在线| 黄色大片视频网站 | 国产精品一区二区三区观看 | 99久久久久久国产精品 | 国产成人福利在线观看 | 国产精品一区二区久久精品 | 国产精品va最新国产精品视频 | 在线亚洲日本 | 国产对白av| 中文字幕成人在线观看 | 久久久精品视频成人 | 中文字幕在线观看视频一区二区三区 | 亚洲精品久久在线 | 91人人射| 九九热精品在线 | 国产在线精品区 | 午夜精品久久久久久久99热影院 | 色小说在线 | 91视频在线观看下载 | 国产成人精品久久久久蜜臀 | 日韩激情片在线观看 | 日韩二区三区在线观看 | 激情综合婷婷 | 精品亚洲免费视频 | 亚洲成年人免费网站 | 在线播放日韩 | 久久久久久久久免费视频 | 亚洲国产久 | 精品一区二区久久久久久久网站 | 91chinesexxx | 久久这里 | 在线观看你懂的网址 | www.黄色片网站| 国产精品黄色av | 中文字幕人成乱码在线观看 | 国产丝袜制服在线 | 最近日本韩国中文字幕 | 综合色站| 在线国产一区二区三区 | 在线精品在线 | 日本成人免费在线观看 |