色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入探究Linux中的Kprobe機制

Linux閱碼場 ? 來源:csdn ? 作者:liuhangtiant ? 2021-01-02 11:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

kprobe機制用于在內核中動態添加一些探測點,可以滿足一些調試需求。本文主要探尋kprobe的執行路徑,也就是說如何trap到kprobe,以及如何回到原路徑繼續執行。

實例

先通過一個實例來感受下kprobe,linux中有一個現成的實例: samples/kprobes/kprobe_example.c 由于當前驗證環境是基于qemu+arm64,我刪除了其他架構的代碼,并稍稍做了一下改動:

/* * NOTE: This example is works on x86 and powerpc. * Here‘s a sample kernel module showing the use of kprobes to dump a * stack trace and selected registers when _do_fork() is called. * * For more information on theory of operation of kprobes, see * Documentation/kprobes.txt * * You will see the trace data in /var/log/messages and on the console * whenever _do_fork() is invoked to create a new process. */ #include 《linux/kernel.h》#include 《linux/module.h》#include 《linux/kprobes.h》 #define MAX_SYMBOL_LEN 64static char symbol[MAX_SYMBOL_LEN] = “_do_fork”;module_param_string(symbol, symbol, sizeof(symbol), 0644); /* For each probe you need to allocate a kprobe structure */static struct kprobe kp = { .symbol_name = symbol,}; /* kprobe pre_handler: called just before the probed instruction is executed */static int handler_pre(struct kprobe *p, struct pt_regs *regs){ pr_info(“《%s》 pre_handler: p-》addr = 0x%p, pc = 0x%lx,” “ pstate = 0x%lx ”, p-》symbol_name, p-》addr, (long)regs-》pc, (long)regs-》pstate); dump_stack(); /* A dump_stack() here will give a stack backtrace */ return 0;} /* kprobe post_handler: called after the probed instruction is executed */static void handler_post(struct kprobe *p, struct pt_regs *regs, unsigned long flags){ pr_info(“《%s》 post_handler: p-》addr = 0x%p, pstate = 0x%lx ”, p-》symbol_name, p-》addr, (long)regs-》pstate); dump_stack();} /* * fault_handler: this is called if an exception is generated for any * instruction within the pre- or post-handler, or when Kprobes * single-steps the probed instruction. */static int handler_fault(struct kprobe *p, struct pt_regs *regs, int trapnr){ pr_info(“fault_handler: p-》addr = 0x%p, trap #%dn”, p-》addr, trapnr); /* Return 0 because we don’t handle the fault. */ return 0;} static int __init kprobe_init(void){ int ret; kp.pre_handler = handler_pre; kp.post_handler = handler_post; kp.fault_handler = handler_fault; ret = register_kprobe(&kp); if (ret 《 0) { pr_err(“register_kprobe failed, returned %d ”, ret); return ret; } pr_info(“Planted kprobe at %p ”, kp.addr); return 0;} static void __exit kprobe_exit(void){ unregister_kprobe(&kp); pr_info(“kprobe at %p unregistered ”, kp.addr);} module_init(kprobe_init)module_exit(kprobe_exit)MODULE_LICENSE(“GPL”);

這段代碼很簡單,默認情況下,kprobe做了3個鉤子,分別在_do_fork對應位置的指令執行之前,執行之后,以及出異常的時候。

插入該內核模塊之后,隨便輸入一條命令,可看到下面的打印:

[ 19.882832] kprobe_example: loading out-of-tree module taints kernel.[ 19.900442] Planted kprobe at (____ptrval____)[ 19.908571] 《_do_fork》 pre_handler: p-》addr = 0x(____ptrval____), pc = 0xffff0000080d2c98, pstate = 0x80000005[ 19.913657] CPU: 0 PID: 1358 Comm: udevd Tainted: G O 4.18.0 #7[ 19.916239] Hardware name: linux,dummy-virt (DT)[ 19.918400] Call trace:[ 19.919373] dump_backtrace+0x0/0x180[ 19.920681] show_stack+0x14/0x20[ 19.921817] dump_stack+0x90/0xb4[ 19.923678] handler_pre+0x24/0x68 [kprobe_example][ 19.926357] kprobe_breakpoint_handler+0xbc/0x160[ 19.926627] brk_handler+0x70/0x88[ 19.926802] do_debug_exception+0x94/0x160[ 19.927102] el1_dbg+0x18/0x78[ 19.927299] _do_fork+0x0/0x358[ 19.927465] el0_svc_naked+0x30/0x34[ 19.928973] 《_do_fork》 post_handler: p-》addr = 0x(____ptrval____), pstate = 0x80000005[ 19.929361] CPU: 0 PID: 1358 Comm: udevd Tainted: G O 4.18.0 #7[ 19.929693] Hardware name: linux,dummy-virt (DT)[ 19.929962] Call trace:[ 19.930102] dump_backtrace+0x0/0x180[ 19.930289] show_stack+0x14/0x20[ 19.930461] dump_stack+0x90/0xb4[ 19.934684] handler_post+0x24/0x30 [kprobe_example][ 19.934968] post_kprobe_handler+0x54/0x98[ 19.935234] kprobe_single_step_handler+0x74/0xa8[ 19.935389] single_step_handler+0x3c/0xb0[ 19.935516] do_debug_exception+0x94/0x160[ 19.935642] el1_dbg+0x18/0x78[ 19.935965] 0xffff000000ac8004[ 19.936067] el0_svc_naked+0x30/0x34

probe和post鉤子得到執行,這對查看內核的調用棧非常有幫助。

深入探究

是否只能基于symbol_name做kprobe?

顯然不太可能,struct kprobe中有一個addr成員,很明顯是可以直接基于地址做kprobe的。

把這段代碼:

#define MAX_SYMBOL_LEN 64static char symbol[MAX_SYMBOL_LEN] = “_do_fork”;module_param_string(symbol, symbol, sizeof(symbol), 0644); /* For each probe you need to allocate a kprobe structure */static struct kprobe kp = { .symbol_name = symbol,};

修改為:

/* For each probe you need to allocate a kprobe structure */static struct kprobe kp = { .addr= (kprobe_opcode_t *)0xffff0000080d2c98,};

效果是一樣的。

kprobe是如何動態添加探針的?

這個肯定要分析代碼了,好在代碼相當簡單:

register_kprobe |------arm_kprobe | |------__arm_kprobe | | |------arch_arm_kprobe /* arm kprobe: install breakpoint in text */void __kprobes arch_arm_kprobe(struct kprobe *p){ patch_text(p-》addr, BRK64_OPCODE_KPROBES);}

從注釋就可以很明顯看出來,是把addr對應位置的指令修改為brk指令,當然這里說的是ARM64架構。那么一旦CPU執行到addr,就會觸發異常,trap到kprobe注冊的鉤子上。

post鉤子為什么會用到single step

從上面的調用棧可以看到,post鉤子實際上是通過單步斷點trap過來的?為什么需要用到單步斷點呢?這個其實很好解釋。我們先來理一下kprobe的過程:

把addr位置的指令修改為brk指令

CPU執行到addr處trap到pre執行

pre執行完畢后需要把addr處的指令恢復

CPU繼續執行addr處的指令

CPU執行post

那么CPU如何才能執行到post,很簡單,使能單步執行就可以了。肯定有人會說,可以把addr+4的指令也替換成brk,這個肯定是不行的,因為ARM64可能是32位/16位指令混編的,即便是固定32位指令,CPU下一條要執行的指令也不一定是addr+4,比如當前addr是一條跳轉指令。

fault_handler 鉤子什么時候會用到

通過分析代碼可知,當發生page fault的時候,會調用當前正在running的kprobe的fault_handler鉤子,所以這里發生page fault的代碼并不一定是addr處的指令,也可能是pre或者post中的指令。我在pre中注入一段訪問0地址的邏輯:

static void * g_addr=0;static int handler_pre(struct kprobe *p, struct pt_regs *regs) __attribute__((optimize(“O0”)));static int handler_pre(struct kprobe *p, struct pt_regs *regs){ pr_info(“《%s》 pre_handler: p-》addr = 0x%p, pc = 0x%lx,” “ pstate = 0x%lx ”, p-》symbol_name, p-》addr, (long)regs-》pc, (long)regs-》pstate); printk(“%d ”, *(char *)g_addr); /* A dump_stack() here will give a stack backtrace */ return 0;}

經驗證確實調用到了fault_handler鉤子:

[ 17.272594] kprobe_example: loading out-of-tree module taints kernel.[ 17.294266] Planted kprobe at (____ptrval____)# # ls[ 19.072586] 《(null)》 pre_handler: p-》addr = 0x(____ptrval____), pc = 0xffff0000080d2c98, pstate = 0x80000005[ 19.073189] fault_handler: p-》addr = 0x(____ptrval____), trap #-1778384890n[ 19.073568] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000[ 19.074271] Mem abort info:[ 19.074393] ESR = 0x96000006[ 19.074641] Exception class = DABT (current EL), IL = 32 bits[ 19.074887] SET = 0, FnV = 0[ 19.075014] EA = 0, S1PTW = 0[ 19.075174] Data abort info:[ 19.075324] ISV = 0, ISS = 0x00000006[ 19.075455] CM = 0, WnR = 0[ 19.075774] user pgtable: 4k pages, 48-bit VAs, pgdp = (____ptrval____)[ 19.076005] [0000000000000000] pgd=00000000485c6003, pud=00000000bb2f4003, pmd=0000000000000000[ 19.076596] Internal error: Oops: 96000006 [#1] PREEMPT SMP[ 19.076924] Modules linked in: kprobe_example(O)[ 19.077693] CPU: 0 PID: 1387 Comm: sh Tainted: G O 4.18.0 #7[ 19.077927] Hardware name: linux,dummy-virt (DT)[ 19.078298] pstate: 400003c5 (nZcv DAIF -PAN -UAO)[ 19.078962] pc : handler_pre+0x50/0x70 [kprobe_example][ 19.079149] lr : handler_pre+0x44/0x70 [kprobe_example][ 19.079359] sp : ffff00000ac63c00[ 19.079565] x29: ffff00000ac63c00 x28: ffff80007a3c9a80 [ 19.079821] x27: ffff000008ac1000 x26: 00000000000000dc [ 19.080047] x25: ffff80007dfb7788 x24: 0000000000000000 [ 19.080363] x23: ffff0000080d2c98 x22: ffff00000ac63d70 [ 19.080621] x21: ffff000000ac2000 x20: 0000800074f02000 [ 19.080863] x19: ffff0000090b5788 x18: ffffffffffffffff [ 19.081197] x17: 0000000000000000 x16: 0000000000000000 [ 19.081501] x15: ffff0000090d96c8 x14: 3030303030666666 [ 19.081720] x13: 667830203d206370 x12: ffff0000090d9940 [ 19.081933] x11: ffff0000085dd8d8 x10: 5f287830203d2072 [ 19.082189] x9 : 0000000000000017 x8 : 2065746174737020 [ 19.082455] x7 : 2c38396332643038 x6 : ffff80007dfb8240 [ 19.082660] x5 : ffff80007dfb8240 x4 : 0000000000000000 [ 19.082871] x3 : ffff80007dfbf030 x2 : 793b575e486def00 [ 19.083068] x1 : 0000000000000000 x0 : 0000000000000000 [ 19.083390] Process sh (pid: 1387, stack limit = 0x(____ptrval____))[ 19.083783] Call trace:[ 19.084020] handler_pre+0x50/0x70 [kprobe_example][ 19.084470] kprobe_breakpoint_handler+0xbc/0x160[ 19.084693] brk_handler+0x70/0x88[ 19.084839] do_debug_exception+0x94/0x160[ 19.085132] el1_dbg+0x18/0x78[ 19.085259] _do_fork+0x0/0x358[ 19.085443] el0_svc_naked+0x30/0x34[ 19.085939] Code: 95d9a53f b0000000 9101c000 f9400000 (39400000) [ 19.086713] ---[ end trace 3bb11c402bc37363 ]---

但由于fault_handler中沒有對該異常做處理,所以依然掛死了。

fault_handler可以用于報錯或者糾錯,報錯可以自定義一些錯誤信息給用戶,以便分析錯誤;糾錯用于修改錯誤,那么針對當前這個錯誤應該怎么做糾錯呢?

在fault_handler中為g_addr分配空間?,這顯然不行,g_addr肯定已經被載入寄存器了,此時修改已經太遲。唯一的方法就是修改寄存器的值,而寄存器此時肯定已經入棧了,所以必須修改寄存器在棧里面的內容。

下面我們來fixup這個掛死問題:

根據掛死信息

[ 19.084020] handler_pre+0x50/0x70 [kprobe_example]

是在handler_pre+0x50這個位置出異常的,通過反匯編得知這個位置對應的指令是:

50: 39400000 ldrb w0, [x0]

x0的內容是0,所以這里是讀0地址,很明顯,g_addr被載入到了x0中,所以只要修改x0就可以了。

fixup實現

修改fault_handler函數:

static int g_addr1=0x5a;static int handler_fault(struct kprobe *p, struct pt_regs *regs, int trapnr){ pr_info(“fault_handler: p-》addr = 0x%p, trap #%dn”, p-》addr, trapnr); regs-》regs[0] = (unsigned long)&g_addr1; /* Return 0 because we don‘t handle the fault. */ return 1;}

驗證

[ 58.882059] 《(null)》 pre_handler: p-》addr = 0x(____ptrval____), pc = 0xffff0000080d2c98, pstate = 0x80000005[ 58.882393] fault_handler: p-》addr = 0x(____ptrval____), trap #-1778384890n[ 58.882411] 90[ 58.882658] 《(null)》 post_handler: p-》addr = 0x(____ptrval____), pstate = 0x80000005[ 58.882960] CPU: 1 PID: 1388 Comm: sh Tainted: G O 4.18.0 #7

fault_handler之后,pre_handler打印了g_addr對應地址的內容是90,也就是0x5a。

大功告成,我們成功的讓內核訪問了0地址,并且返回了0x5a。

當然,這一切都是假的!

原文標題:深入探究Linux Kprobe機制

文章出處:【微信公眾號:Linuxer】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1422

    瀏覽量

    41636
  • Linux
    +關注

    關注

    88

    文章

    11534

    瀏覽量

    214806

原文標題:深入探究Linux Kprobe機制

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux權限體系解析

    你真的了解Linux權限嗎?大多數人只知道rwx,但Linux的權限體系遠比你想象的復雜和強大。今天我們深入探討Linux的12位權限體系,這是每個運維工程師都應該掌握的核心知識。
    的頭像 發表于 07-23 16:57 ?246次閱讀

    Linux系統中網絡配置詳解

    網絡配置是Linux系統運維的核心技能之一。正確理解和配置子網掩碼、網關等網絡參數,直接影響系統的網絡連通性和性能。本文將深入探討Linux系統中網絡配置的方方面面,為運維工程師提供
    的頭像 發表于 07-17 11:01 ?372次閱讀

    淺切多道切割工藝對晶圓 TTV 厚度均勻性的提升機制與參數優化

    TTV 厚度均勻性欠佳。淺切多道切割工藝作為一種創新加工方式,為提升晶圓 TTV 厚度均勻性提供了新方向,深入探究其提升機制與參數優化方法具有重要的現實意義。 二
    的頭像 發表于 07-11 09:59 ?180次閱讀
    淺切多道切割工藝對晶圓 TTV 厚度均勻性的提升<b class='flag-5'>機制</b>與參數優化

    Linux網絡管理的關鍵技術和最佳實踐

    在大型互聯網企業Linux網絡管理是運維工程師的核心技能之一。面對海量服務器、復雜網絡拓撲、高并發流量,運維人員需要掌握從基礎網絡配置到高級網絡優化的全套技術棧。本文將結合大廠實際場景,深入解析
    的頭像 發表于 07-09 09:53 ?257次閱讀

    MICRO OLED 金屬陽極像素制作工藝對晶圓 TTV 厚度的影響機制及測量優化

    與良品率,因此深入探究二者關系并優化測量方法意義重大。 影響機制 工藝應力引發變形 在金屬陽極像素制作時,諸如光刻、蝕刻、金屬沉積等步驟會引入工藝應力。光刻,光刻膠的涂覆與曝光過程會
    的頭像 發表于 05-29 09:43 ?252次閱讀
    MICRO OLED 金屬陽極像素制作工藝對晶圓 TTV 厚度的影響<b class='flag-5'>機制</b>及測量優化

    物聯網工程師為什么要學Linux

    依賴Linux的安全啟動機制。 三、職業需求與就業優勢 1)崗位技能硬性要求 企業招聘,約70%的物聯網開發崗位明確要求具備Linux系統編程、內核移植或驅動開發經驗。例如
    發表于 05-26 10:32

    Linux系統管理的核心概念

    在前一篇文章,我們深入探討了Linux的文件操作命令,如cp、mv、rm,以及文本處理命令grep、wc和管道符。本文將繼續深入
    的頭像 發表于 05-15 17:05 ?284次閱讀

    Linux權限管理基礎入門

    Linux的廣闊天空中,權限管理猶如一只翱翔的雄鷹,掌控著系統的安全與秩序。掌握Linux權限,不僅能讓你的系統管理更加得心應手,還能有效防止未授權訪問和數據泄露。本文將帶你深入探索Linu
    的頭像 發表于 05-06 13:44 ?321次閱讀
    <b class='flag-5'>Linux</b>權限管理基礎入門

    深入剖析半導體濕法刻蝕過程殘留物形成的機理

    半導體濕法刻蝕過程殘留物的形成,其背后的機制涵蓋了化學反應、表面交互作用以及側壁防護等多個層面,下面是對這些機制深入剖析: 化學反應層面 1 刻蝕劑與半導體材料的交互:濕法刻蝕技術
    的頭像 發表于 01-08 16:57 ?1009次閱讀

    深入探討Linux系統的動態鏈接庫機制

    本文將深入探討Linux系統的動態鏈接庫機制,這其中包括但不限于全局符號介入、延遲綁定以及地址無關代碼等內容。 引言 在軟件開發過程,動
    的頭像 發表于 12-18 10:06 ?655次閱讀
    <b class='flag-5'>深入</b>探討<b class='flag-5'>Linux</b>系統<b class='flag-5'>中</b>的動態鏈接庫<b class='flag-5'>機制</b>

    盤點Linux系統的常見命令

    作為運維同學怎能不知道Linux系統的lsmod、lsof、lspci、lsscsi命令呢,今天就來盤一盤她及實例。
    的頭像 發表于 12-03 09:48 ?898次閱讀
    盤點<b class='flag-5'>Linux</b>系統<b class='flag-5'>中</b>的常見命令

    UCD31xx器件的CPU鎖定機制

    電子發燒友網站提供《UCD31xx器件的CPU鎖定機制.pdf》資料免費下載
    發表于 10-15 10:18 ?0次下載
    UCD31xx器件<b class='flag-5'>中</b>的CPU鎖定<b class='flag-5'>機制</b>

    詳解linux內核的uevent機制

    linux內核,uevent機制是一種內核和用戶空間通信的機制,用于通知用戶空間應用程序各種硬件更改或其他事件,比如插入或移除硬件設備(如USB驅動器或網絡接口)。uevent表示
    的頭像 發表于 09-29 17:01 ?2082次閱讀

    Linux網絡協議棧的實現

    網絡協議棧是操作系統核心的一個重要組成部分,負責管理網絡通信中的數據包處理。在 Linux 操作系統,網絡協議棧(Network Stack)負責實現 TCP/IP 協議簇,處理應用程序發起的網絡
    的頭像 發表于 09-10 09:51 ?809次閱讀
    <b class='flag-5'>Linux</b>網絡協議棧的實現

    MSPM0 MCU的網絡安全機制

    電子發燒友網站提供《MSPM0 MCU的網絡安全機制.pdf》資料免費下載
    發表于 08-29 10:05 ?1次下載
    MSPM0 MCU<b class='flag-5'>中</b>的網絡安全<b class='flag-5'>機制</b>
    主站蜘蛛池模板: 亚洲综合精品 | 关之琳三级全黄做爰在线观看 | 88av在线视频 | 中国性xxx | 久久久久久毛片 | 国产精品污 | 色噜噜av男人的天堂 | 中国女人做爰视频 | 亚洲精品久久久久久久久久久 | 亚洲一区二区日韩 | 亚洲精品一区二区精华 | 7777av| 特级a级片| 精品人妻系列无码人妻免费视频 | 琪琪亚洲精品午夜在线 | 日日狠狠久久8888偷偷色 | 亚洲精品v日韩精品 | av无码久久久久久不卡网站 | 日韩精品一区二区三区三炮视频 | 天天摸天天爽日韩欧美大片 | 亚洲性精品 | 丁香狠狠色婷婷久久综合 | 国产乱子经典视频在线观看 | 日本国产一级片 | 欧美综合色区 | 山林妇女勾搭老头av | 天堂中文最新版在线中文 | 99久久久久 | 一区二区三区无码高清视频 | 91看片看淫黄大片 | 麻豆专区一区二区三区四区五区 | 国产伦孑沙发午休精品 | 亚洲欧美色一区二区三区 | 四虎影视永久在线精品 | 日本公妇乱淫免费视频一区三区 | 国产一级淫 | 狠色狠狠色狠狠狠色综合久久 | 国产成人av手机在线观看 | 黄色av网站在线 | 亚洲人成电影网站在线观看 | wwwxxx黄色| 性一交一乱一伧老太 | 一级黄色片在线免费观看 | 日韩一二三四区 | 国产精品美女久久久久av超清 | 动漫av纯肉无码免费播放 | 小12萝8禁在线喷水观看 | 可以直接免费观看的av网站 | 成年人网站黄 | 在线看片成人 | 国产69精品久久久久777 | 三级少妇 | 在线免费黄网 | 亚洲 中文 欧美 日韩 在线 | 超碰最新在线 | 亚洲精品一 | 久久精品无码一区二区三区免费 | 免费成人深夜夜行网站视频 | 日韩av在线免费观看 | 黄色aa视频 | 午夜性色福利视频 | 非洲黑人三级全黄 | 伊人狼人综合 | 成年人免费看毛片 | 五月天一区二区 | 久久av中文字幕 | 又色又爽无遮挡免费视频男男 | 免费无码又爽又刺激软件下载直播 | 日韩国产欧美一区二区 | 欧美色图88 | 黄色片欧美| 日本少妇色视频 | 国产精品久久久 | 六月丁香婷婷色狠狠久久 | 日本黄色三级 | 美女二区 | 男女超爽视频免费播放 | 久在线播放 | 亚洲网站色 | 国产深夜福利在线 | 91视频99| 九一福利视频 | 精品一区二区三区蜜桃 | 嫩草在线视频 | 国产在线观看免费麻豆 | 国产三区在线视频 | 大又大粗又爽又黄少妇毛片 | 特级西西444www大精品视频免费看 | 3级黄色片| 喷水白丝蜜臀av久久av | 国产成人在线影院 | 久久久久国产精品www | 国产成人欧美综合在线影院 | 99视频导航 | 一边摸一边抽搐一进一出视频 | 中文字幕一二 | 中文在线最新版天堂8 | 久久99国产综合精品 | 国产性色的免费视频网站 | 国产午夜福利在线播放 | 国产香港明星裸体xxxx视频 | 婷婷国产天堂久久综合五月 | 精品国产乱码久久久久久虫虫 | 羞羞午夜福利免费视频 | 亚洲成a人片777777久久 | 草av| 亚洲精品一区二区三天美 | 色人阁婷婷 | 消息称老熟妇乱视频一区二区 | 国产精品男人天堂 | 日韩欧美成人免费观看 | 国产黄a三级三级三级老年人 | r级无码视频在线观看 | 国产又粗又猛又爽视频上高潮69 | 国产精品99久久久久久久女警 | 91亚洲精品国偷拍自产在线观看 | 深夜福利视频在线播放 | 日本三级韩国三级三级a级按摩 | 91免费看片| 久久久国产精品一区二区三区 | 女同久久另类69精品国产 | 少妇高潮喷水在线观看 | 国产女人叫床高潮大片免费 | 欧美怡红院 | av在线综合网 | 久久久亚洲一区二区三区 | 宅男噜噜噜66网站在线观看 | 日本一级二级三级aⅴ网站 日本一级二级三级久久久 日本一级二级视频 | 精品人妻伦九区久久aaa片 | 午夜视频日韩 | 成人性生交免费大片 | 播放灌醉水嫩大学生国内精品 | 国产精品久久久久野外 | 性视频播放免费视频 | 国产午夜麻豆影院在线观看 | 国产午夜精品理论片 | 天天添天天操 | 精品一卡二卡三卡 | 狠狠色综合7777久夜色撩人ⅰ | 无码av最新清无码专区吞精 | 啪啪av| 嫩草视频国产 | 97久久精品午夜一区二区 | 日韩艹逼视频 | 成人免费毛片足控 | 国产在线啪 | 在线成人av网站 | 少妇夜夜爽夜夜春夜夜高潮 | 日批的视频 | 大伊人狠狠躁夜夜躁av一区 | 色呦呦在线 | 成人性色生活片免费看l | 国产性―交―乱―色―情人 | 男女超碰 | 超碰97最新| 中国性猛交xxxx乱大交3 | 国产又粗又爽又猛又大的动漫片 | 中文字幕亚洲精品日韩 | 国产欧美日韩在线播放 | 久久人人爽人人爽人人片av | 91网站在线免费观看 | 人与嘼av免费 | 高清二区 | 激性欧美激情在线 | 国产精品sm调教免费专区 | 久久99精品久久久久久蜜芽 | 香港三级午夜理伦三级 | 日韩资源网 | 国产欧美精品一区二区三区-老狼 | 精品区一区二区 | 久久精品无码专区免费东京热 | 欧美成人精品三级在线观看播放 | 国内少妇偷人精品免费 | av免费观看大全 | 欧美中文字幕一区二区三区 | 色悠悠av| 国产精品一区二区视频 | 老太婆性杂交视频 | 久久久久久国产精品视频 | 麻豆av少妇aa喷水 | www.三级.com| 99综合色 | 亚洲午夜精品一区二区三区 | 国产午夜福利久久精品 | 日本边舌吻边做爽的视频 | 精品国产aⅴ一区二区三区 精品国产va久久久久久久 | 天天干天天操天天摸 | 女人被狂躁60分钟视频 | 欧美视频在线观看一区二区三区 | 成人国产午夜在线观看 | 红花成人网 | 青青久在线视频 | 成 人 黄 色 视频播放165 | 国产一区二区三四区 | 欧美日韩精品在线观看视频 | 国偷自产中文字幕亚洲手机在线 | 欧美黄色大片免费观看 | 九色蜜桃臀丨porny丨自拍 | 成人欧美亚洲 | 欧美亚洲一区 | 国产成人久久综合第一区 | 国产卡一卡二卡三无线 | 五月天婷婷激情网 | 三级黄色图片 | 成人精品毛片va一区二区三区 | 免费看黄色网 | 国产69精品一区二区亚洲孕妇 | 怡红院成人av | 国产一区二区内射最近更新 | 国产亚洲精品久久久久久久久动漫 | 91国产在线播放 | 精品国产va久久久久久久冰 | 香蕉视频在线免费播放 | 最近中文字幕无免费 | 一区二区三区四区中文字幕 | 欧美 日韩 国产 在线 | 久久久久欧美精品999 | 天堂国产一区二区三区 | 永无久网址在线码观看 | 久久久久免费 | 国产女女调教女同 | 欧美专区在线播放 | aaa黄色一级片 | 夜夜天天干 | 日韩欧美成 | 亚洲视频中文字幕在线观看 | 神马久久久久久久久久 | 91av免费在线观看 | 亚洲成av人片一区二区 | 天堂中文视频在线 | 久久精品一二三 | 又色又湿又黄又爽又免费视频 | 日韩午夜毛片 | 国产成人精品日本亚洲第一区 | 国产精品初高中害羞小美女文 | 亚洲不卡视频在线 | 97色吧| 国产无套精品一区二区 | 成人午夜亚洲精品无码网站 | 久久久夜色精品亚洲 | 91在线丨porny丨国产 | 日日插插| 玖玖玖视频| 99久久精品国产成人一区二区 | 农村少妇野战xxx视频 | 欧美激情久久久 | 噼里啪啦动漫高清在线观看 | 捆绑japanhdxxxxvideos| 国产精品jk白丝蜜臀av小说 | 在线观看福利网站 | 四虎成人精品在永久免费 | 老司机精品视频一区二区三区 | 99精品久久久 | 日本十大三级艳星 | 日韩乱码一二三 | 久久久999视频 | 日韩中文在线字幕 | 亚洲高清视频一区二区 | 天堂网视频在线 | 欧美天堂久久 | av片亚洲| 91私密视频| 中文字幕第7页 | 在线欧美中文字幕农村电影 | 婷婷五月六月激情综合色中文字幕 | 日韩免费无码人妻波多野 | 鲁一鲁一鲁一鲁一色 | 无码专区aaaaaa免费视频 | 精品欧美日韩 | 狠狠狠色 | 天天做天天爱夜夜爽 | 夜色精品| 亚洲国产不卡 | 久久久精品美女 | 欧美大肚乱孕交hd孕妇 | 国产一级一片免费播放 | 亚洲最大福利视频 | 色屁屁ts人妖系列二区 | 久久爱涩涩www | 韩国午夜理伦三级2020苹果 | 日韩av在线免费看 | 国产精品96久久久久久久 | 日本嫩草影院 | 玖玖在线免费视频 | 图片区小说区区国产明星 | 久草在线播放视频 | 国产亚洲精品久久久久秋霞 | 色亚洲影院 | 五月丁香六月综合缴情在线 | 影音先锋中文字幕资源 | 久久亚洲在线 | 天天躁夜夜躁狠狠眼泪 | 日本高清免费在线视频 | 亚洲日韩av无码 | 国产黑丝啪啪 | 色婷婷在线观看视频 | 色吊丝网站 | 亚洲精品久久久久 | 国产精品国产精品国产专区不卡 | 国产综合精品一区二区三区 | 91在线视频免费看 | 性欧美成人播放77777 | 亚洲欧美精品无码一区二区三区 | 成人高清视频在线观看 | 九九99精品| 成人免费黄色网址 | k8yy毛片| 亚洲最大的成人网 | 大尺度网站在线观看 | 国产极品福利 | 天堂在线成人 | 熟女人妻在线视频 | 富婆如狼似虎找黑人老外 | 欧洲熟妇色xxxxx欧美老妇伦 | 黄色一级在线视频 | 性猛交波兰xxxxx | 偷拍精偷拍精品欧洲亚洲网站 | 日韩精品乱码av一区二区 | 穿情趣内衣c到高潮av片 | 亚瑟av亚洲精品一区二区 | 日本特黄特色aaa大片免费 | 麻豆av在线看 | 国产亚洲精品久久久久四川人 | 欧美日韩一级在线观看 | 男女猛烈xx00免费视频试看 | 国产高清在线观看视频 | 国产精品美女久久久久久久久久久 | 日本猛少妇色xxxxx猛叫小说 | 中文字幕色站 | 亚洲成人精品一区 | 久久6精品 | 91操碰| 黄色网址你懂的 | 天天插日日插 | 少妇高潮一区二区三区99 | 啪啪影音| 妺妺窝人体色www看美女 | 青青国产精品 | 无码av专区丝袜专区 | 国产极品一区 | 久久和欧洲码一码二码三码 | 91日韩中文字幕 | juliaann战黑人 | 日韩女优在线视频 | 香蕉久久a毛片 | 亚洲一区二区小说 | 一级 黄 色 毛片 | 法国伦理少妇愉情 | 激情久久一区二区三区 | 成人免费大片在线观看 | 五月天精品视频在线观看 | 麻豆精品视频在线观看 | 欧美黄页在线观看 | 亚洲国产精品久久久久爰色欲 | 久久国产精品99精品国产 | 欧美jizzhd精品欧美性24 | a国产在线 | 日韩色av| 小明看平台日韩综合45页 | 欧美精品性生活 | 佐佐木明希av在线 | 国产一区二区三区 | 97精品国产97久久久久久粉红 | 日本韩国欧美 | 国产乱淫av | 中文字幕久久熟女人妻av免费 | 国产三级高清一区二区 | 国产jjizz女人多水 | 日韩精品一区二区三区视频 | 亚洲在线播放 | 丰满饥渴老女人hd69av | 乱中年女人伦av | 黄色激情网站 | 色一情一乱一伦麻豆 | 国产精品久久无码一区二区三区网 | 一区二区三区四区在线视频 | 波多野结衣av无码久久一区 | 亚洲国产婷婷香蕉久久久久久99 | 久久不射网站 | 国产啊v在线 | 黄av在线播放| 精品性高朝久久久久久久 | 黄色av影视 | 国产a国产片 | 欧美精品另类 | 麻豆tv入口在线看 | 亚洲国产精品久久久久久 | 国产口爆吞精在线视频2020版 | 9999国产精品欧美久久久久久 | 99re8在线精品视频免费播放 | 免看一级片 | 免费视频国产在线观看 | 成年人视频在线观看免费 | 亚洲成人av一区二区三区 | 99热免费在线 | 内射少妇一区27p | 国产在线视频资源 | 日韩av免费在线观看 | 欧美成年私人网站 | 欧性猛交ⅹxxx乱大交 | 无码人妻精品一区二区三 | 中文字幕 视频一区 | 伊人看片| 久久国产精品_国产精品 | 黑人狂躁日本妞videos在哪里 | 欧美在线不卡视频 | 91精品视频免费在线观看 | 日韩欧美一区二区三区黑寡妇 | 色综合另类小说图片区 | 四虎视频国产精品免费 | 精品一区二区三区免费毛片爱 | 久久久久青草大香综合精品 | 99久久精品日本一区二区免费 | 中文无码伦av中文字幕 | 国产精品va无码一区二区 | 99精品一区二区 | 久久久免费毛片 | 男人的天堂在线观看av | 成人精品久久日伦片大全免费 | 色吧在线视频 | 久热在线 | 日日噜噜噜夜夜爽爽狠狠 | tube少妇高潮 | 欧美 亚洲 另类 偷偷 自拍 | 国产三级国产精品 | 一本—道久久a久久精品蜜桃 | 少妇高潮一区二区三区 | 欧美亚洲伦理 | 大香伊在人线免97 | 91社区在线观看高清 | 久草综合网 | 18黄暴禁片在线观看 | 日本欧美在线观看视频 | 精品无码久久久久久久久水蜜桃 | 亚洲国产av无码精品无广告 | 已婚少妇美妙人妻系列 | 在线视频区 | 国产麻豆精品精东影业av网站 | av在线操| 美女一级片 | 国产95在线 | 亚洲 | 国产乱码在线 | 亚洲老妇交性506070 | 亚洲午夜小视频 | 欧美日韩视频一区二区三区 | 国产精品亚洲欧美日韩在线观看 | 国产欧美日韩成人 | 天海翼一区 | 亚洲国色天香卡2卡3卡4 | 一道本在线观看视频 | www激情网com| 成人小视频免费 | 人妻人人澡人人添人人爽 | 久久99精品久久久久久水蜜桃 | 国产色播| 国产一区二区三区a | 成人h免费观看视频 | 久久精品久久久久久噜噜老黄 | 精品人妻少妇一区二区三区在线 | 亚洲第一视频网 | 日本熟妇浓毛 | 香蕉成人啪国产精品视频综合网 | 日产一区三区三区高中清 | 日韩欧美亚洲 | 最新日韩中文字幕 | 亚洲国产精品久久久久秋霞蜜臀 | 他揉捏她两乳不停呻吟在线播放 | 久热国产精品视频一区二区三区 | 欧美123| 国产理论视频在线观看 | 在线成人黄色 | 欧美 日韩 人妻 高清 中文 | 男人天堂av网站 | 制服 丝袜 综合 日韩 欧美 | 国产在线不卡精品网站 | 久久久噜噜噜 | www在线观看视频 | 68日本xxxxxⅹxxx22| 日本久久综合 | 一级大黄色片 | 偷窥日本少妇撒尿chinese | 欧美色老头又长又大 | 大桥未久av片 | 中文字幕精品无码一区二区 | japanese一本色道久久 | 91久久精品日日躁夜夜躁国产 | 久久久www成人免费毛片 | www.三级.com| 18av视频 | 人妻丰满熟妇av无码区乱 | 日本高清中文 | 天海翼一区 | 最新日韩中文字幕 | 亚洲精品国产成人 | 少妇高潮尖叫黑人激情在线 | 免费人成再在线观看网站 | 亚洲午夜无码av毛片久久 | 久艹伊人 | 精品国产一区二区三区久久 | 大地资源中文第二页日本 | 日本理论片a级奶大 | 91久草视频 | 美日韩丰满少妇在线观看 | 青青免费在线视频 | 色吧久久 | 国产精品久久久91 | a毛片在线观看 | 久久久久久久久久国产精品 | 夜夜6699ww爽爽婷婷 | 精品久久久爽爽久久男人和男人 | 免费毛片在线 | 人人干人人玩 | 久久久精品人妻一区二区三区四 | 日日射视频 | 亚洲成av人片一区二区 | 伊人久久久久久久久久久 | 久久露脸国语精品国产91 | 免费的毛片| 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产成人无码av一区二区 | 神马久久久久久久久 | 国产精品久久久 | 九色视频自拍 | 玩弄少妇肉体到高潮动态图 | 国产国产精品久久久久 | 欧美国产精品一区二区三区 | 深夜福利视频免费观看 | 成人高清 | 懂色av中文一区二区三区天美 | 精品无码专区久久久水蜜桃 | 欧洲成人av | 亚洲综合a | 久久这里只有 | 爽爽av| 久久久www影院人成_免费 | 亚洲综合视频网站 | 久久www免费人成看片好看吗 | 国产免费看又黄又粗又硬 | 欧美激情自拍 | 色伊人亚洲综合网站 | 91大奶| 夜夜草天天干 | 亚洲欧美国产精品久久 | 成人一级片 | 中文字幕免费视频观看 | 久久精品一二三区 | 国产激情综合五月久久 | 亚洲综合色小说 | 国产aa| 亚洲精品肉丝少妇在线 | 邻居少妇张开双腿让我爽一夜图片 | 9·1·黄·色·视·频 | 国产主播在线观看 | 嫩草影院一区二区 | 激情视频一区二区三区 | 四十五十老熟妇乱孑视频 | frxxee欧美xxee麻豆 | 中国极品少妇xxxxⅹ喷水 | 污视频免费在线 | 国产精品久久久久久久久久妇女 | 天天躁夜夜躁天干天干2020 | 国内av在线 | 久久99日韩国产精品久久99 | 國产一二三内射在线看片 | 黄色成人免费视频 | 亚洲色丰满少妇高潮18p | 男女裸交免费无遮挡全过程 | 欧美,日韩,国产在线 | 亚洲免费色 | 懂色av中文在线 | 久久久国产一区二区三区四区 | 乱色欧美videos黑人69 | 国产精品久久久久久久久妇女 | 国产区女主播在线观看 | 深夜免费福利 | 日日拍夜夜拍 | 深爱五月激情五月 | 99久久无色码中文字幕人妻蜜柚 | 久久一级大片 | 337p人体粉嫩久久久红粉影视 | 亚欧激情| 国产精品久久久久久久久久精爆 | 久久久久无码国产精品不卡 | 天天色棕合合合合合合合 | 美女性感毛片 | 国产成人精品一区二区三区免费 | 亚洲欧美一区二区三区四区五区 | 亚洲特级黄色片 | 秋霞7777鲁丝伊人久久影院 | 超碰精品| 亚洲日本va中文字幕 | 性做久久久久久 | 97精品超碰一区二区三区 | 亚洲a级女人内射毛片 | 涩涩网址 | 91精品老司机久久一区啪 | 一区视频在线 | 巨大乳沟h晃动双性总受视频一区 | 色涩av | 九色视频网址 | 国产丝袜无码一区二区三区视频 | 国产精品a成v人在线播放 | 婷婷久久伊人 | 另类sb东北妇女av | 亚洲综合av一区二区三区 | 另类老妇奶性生bbwbbw | 国产又色又爽又黄的视频在线观看 | 青青操在线观看 | 欧美日韩中文在线观看 | 国产xxx69麻豆国语对白 | 一色桃子jul457中文字幕 | а√天堂ww天堂八 | 精品视频在线观看免费 | 日韩精品一区二区三区中文 | 成人羞羞国产免费软件小说 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品