精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

小程序不讓用 JS 解釋器?那我再杠一次鵝廠

開發(fā) 前端
為什么我們要將 JavaScript 編譯成字節(jié)碼呢?我們的目的是為了繞過微信小程序的代碼審核限制,所以我們要想盡辦法隱藏兩樣?xùn)|西。

前言

6月23號(hào)的時(shí)候,微信團(tuán)隊(duì)發(fā)了如下通知將禁止小程序使用 JavaScript 解釋來動(dòng)態(tài)更新代碼。消息一出,小程序開發(fā)者們哀嚎哀嚎遍野,更有人聲稱要開始加班改代碼了。

自 2018年1月,我寫下 「brambles:微信小程序也要強(qiáng)行熱更代碼」 (https://zhuanlan.zhihu.com/p/34191831) 這篇文章開始,就帶起來在小程序里面用 JavaScript 解釋器的潮流。然而四年過去了,微信小程序終于明文規(guī)定不在讓用 JavaScript 解釋器了,那小程序熱更的時(shí)代是不是就過去了?

圖片

當(dāng)然不是,如果就這樣過去了也就沒我這篇文章了,其實(shí)早在四年前寫前一篇文章的時(shí)候我就已經(jīng)想好解決方案,只是我是沒想到的一年以后微信小程序才開始封 JavaScript 解釋器讓我之前設(shè)想的方案一直拖到四年后的今天。n那么今天我們這篇文章主要就討論兩個(gè)點(diǎn):

如何突破微信小程序限制 JavaScript 解釋器使用進(jìn)行熱更代碼。

為什么從理論上無法從根本上禁止小程序代碼的熱更。

基本步驟 & 最終效果

示例代碼 Github 倉(cāng)庫(kù):https://github.com/bramblex/jsjs-vm-demo

我們首先要寫一個(gè) JavaScript 的編譯器,將 JavaScript 代碼編譯成二進(jìn)制的字節(jié)碼。

找一張圖片,將字節(jié)碼編碼并隱藏進(jìn)圖片中。

在小程序中引入藏有 JavaScript 字節(jié)碼的圖片,并且解碼出字節(jié)碼。

寫一個(gè)對(duì)應(yīng)的字節(jié)碼虛擬機(jī),并且執(zhí)行從圖片中解出的字節(jié)碼。

圖片

實(shí)現(xiàn)一個(gè)字節(jié)碼虛擬機(jī)

為什么我們要將 JavaScript 編譯成字節(jié)碼呢?我們的目的是為了繞過微信小程序的代碼審核限制,所以我們要想盡辦法隱藏兩樣?xùn)|西。第一個(gè)是要想辦法隱藏解釋器,因?yàn)橐粋€(gè)完整的 JavaScript 解釋器代碼量非常龐大,并且往往都需要引入別人寫的庫(kù)沒辦法自己維護(hù),這樣的解釋往都不需要用什么高深的技術(shù)手段,字符串一匹配就能查出來個(gè)七七八八。

比如在小程序一個(gè)完整可用的 JavaScript 解釋器引入代碼,起碼需要引入一個(gè)至少 100k 以上的代碼,這個(gè)目標(biāo)實(shí)在是太大了,幾乎很難隱藏。但是在小程序里面引入一個(gè)可以執(zhí)行字節(jié)碼的虛擬機(jī)實(shí)現(xiàn),可以做到只引入 10k 左右,壓縮前總代碼量不超過千行的代碼,這樣就更容易隱藏動(dòng)態(tài)代碼的實(shí)現(xiàn)。比如我目前實(shí)現(xiàn)的字節(jié)碼虛擬機(jī),除了 try-catch 和 with 以外,能實(shí)現(xiàn) ES5 所有能力的虛擬機(jī)總共才 7k 大小,就這都是還可以再壓縮的。

第二點(diǎn)是我們需要隱藏?zé)岣?JavaScript 代碼不被微信發(fā)現(xiàn),比如你把熱更的大量 JavaScript 代碼通過接口明文傳輸,只要微信稍微攔截一下你的網(wǎng)絡(luò),這不就全露餡了嗎?所以將代碼編譯成了二進(jìn)制的字節(jié)碼以后,微信就沒有辦法通過簡(jiǎn)單的攔截你的接口請(qǐng)求來確定里面有沒有 JavaScript 代碼來判斷你是是否熱更代碼了。二進(jìn)制的文件在你能夠明確清楚它的個(gè)格式之前是沒辦法準(zhǔn)確接出來他到底是個(gè)什么東西的1,更何況二進(jìn)制的加密混淆的算法滿大街都是,而且還都沒有幾行……下面是我實(shí)現(xiàn)字節(jié)碼的指令集,總共只有 50 多個(gè)指令:

export enum OpCode {
NOP = 0x00,
UNDEF = 0x01, NULL = 0x02, OBJ = 0x03, ARR = 0x04, TRUE = 0x05,
FALSE = 0x06, NUM = 0x07, ADDR = 0x08, STR = 0x09, POP = 0x0A,
TOP = 0x0D, TOP2 = 0x0E, VAR = 0x10, LOAD = 0x11, OUT = 0x12,
JUMP = 0x20, JUMPIF = 0x21, JUMPNOT = 0x22, FUNC = 0x30, CALL = 0x31,
NEW = 0x32, RET = 0x33, GET = 0x40, SET = 0x41, IN = 0x43,
DELETE = 0x44, EQ = 0x50, NEQ = 0x51, SEQ = 0x52, SNEQ = 0x53,
LT = 0x54, LTE = 0x55, GT = 0x56, GTE = 0x57, ADD = 0x60,
SUB = 0x61, MUL = 0x62, EXP = 0x63, DIV = 0x64, MOD = 0x65,
BNOT = 0x70, BOR = 0x71, BXOR = 0x72, BAND = 0x73, LSHIFT = 0x73,
RSHIFT = 0x75, URSHIFT = 0x76, OR = 0x80, AND = 0x81, NOT = 0x82,
INSOF = 0x90, TYPEOF = 0x91,
}

以下是將一段示例代碼以及其編譯后的字節(jié)碼:

圖片

JavaScript 代碼與編譯后的字節(jié)碼,這個(gè)字節(jié)碼中還能看到 wx showModal 等字樣

上面字節(jié)碼是以下指令(節(jié)選)的二進(jìn)制表示:

.main_1:
STR(09)
"wx" (00 77 00 78 00 00)
LOAD(11)
TOP(0d)
STR(09)
"showModal" (00 73 00 68 00 6f 00 77 00 4d 00 6f 00 64 00 61 00 6c 00 00)
GET(40)
ARR(04)
TOP(0d)
NUM(07)
0 (00 00 00 00 00 00 00 00)
OBJ(03)
TOP(0d)
STR(09)
"title" (00 74 00 69 00 74 00 6c 00 65 00 00)
STR(09)
"這是一段隱藏在圖片中的代碼" (8f d9 66 2f 4e 00 6b b5 96 90 85 cf 57 28 56 fe 72 47 4e 2d 76 84 4e e3 78 01 00 00)
SET(41)
POP(0a)
TOP(0d)
STR(09)
"content" (00 63 00 6f 00 6e 00 74 00 65 00 6e 00 74 00 00)
STR(09)
"這是一段隱藏在圖片中的代碼" (8f d9 66 2f 4e 00 6b b5 96 90 85 cf 57 28 56 fe 72 47 4e 2d 76 84 4e e3 78 01 00 00)
SET(41)
POP(0a)
TOP(0d)
STR(09)
"success" (00 73 00 75 00 63 00 63 00 65 00 73 00 73 00 00)
NULL(02)
NUM(07)
1 (3f f0 00 00 00 00 00 00)
ADDR(08)
.anonymous_2
FUNC(30)
SET(41)
POP(0a)
SET(41)
POP(0a)
CALL(31)
POP(0a)
RET(33)

畢竟是做個(gè) Demo,如果真的需要實(shí)用的話,還有大量的優(yōu)化空間。比如字節(jié)碼字面量現(xiàn)在都是非常簡(jiǎn)單粗暴直接內(nèi)聯(lián),如果將數(shù)據(jù)和代碼部分區(qū)分可以得到一個(gè)更好的性能。比如字符串的編碼使用的是 utf16 編碼,如果轉(zhuǎn)換成 utf8 編碼可以節(jié)省空間占用等等,這些以后有心情再做。

將字節(jié)碼藏在圖片里

我們說需要隱藏虛擬機(jī)和熱更的代碼,但是我們思考一下,一個(gè)普通的小程序整天需要加在二進(jìn)制文件,這一個(gè)行為是不是非常的怪異?沒錯(cuò),這件事情非常非常的奇怪,因?yàn)橐粋€(gè)正常小程序根本沒有什么讀寫二進(jìn)制文件的需求。但是如果我告訴一個(gè)小程序,需要做一張有小程序二維碼的分享圖給用戶保存,而且這張分享圖還經(jīng)常需要更新,這不是就非常符合邏輯了?所以我們要將熱更的字節(jié)碼藏在圖片里面,偽裝成一個(gè)正常小程序的行為,并且要保證這場(chǎng)圖片看起來也是正常的。以下就是我們開頭示例中圖片,左圖是原圖片,而右圖是藏了我們上面示例代碼的圖,只有非常仔細(xì)看才能看到細(xì)微的差別。

圖片

仔細(xì)看隱藏了字節(jié)碼的區(qū)域,跟原圖片有細(xì)微的差別

圖片一個(gè)像素點(diǎn)有 RGBA 一共四個(gè) byte,為了最少影響圖片看上去的效果,我們選擇只將字節(jié)碼編碼隱藏在圖片的 Alpha 通道,這里用了最簡(jiǎn)單的編碼方式,將 RGBA 中的 A 當(dāng)成一個(gè) bit 來進(jìn)行編碼。A 高于 0xF8 則為 1,否則則為 0。編碼和解碼算法如下:

圖片

在編譯器中的編碼算法(左)在小程序中執(zhí)行的解碼算法(右)

在小程序中只需要把圖片畫在 Canvas 上面,并且逐個(gè)讀取 Alpha 通道上的數(shù)據(jù)就能隱藏在圖片中的字節(jié)碼接解碼出來。最后通過我們上一小節(jié)實(shí)現(xiàn)的字節(jié)碼虛擬機(jī),就能執(zhí)行我們想要熱更的代碼了。

為什么無法從根本上禁止小程序代碼的熱更

先說結(jié)論,只要滿足以下兩個(gè)條件,那么從根本上禁止熱更都是無稽之談:

  • 宿主語言圖靈完備
  • 允許通過網(wǎng)絡(luò)讀取數(shù)據(jù)

第一,宿主語言如果圖靈完備的話,那么宿主語言就可以實(shí)現(xiàn)任何其他圖靈完備的編程語言。比如 JavaScript 圖靈完備,那么你就能用 JavaScript 實(shí)現(xiàn) JavaScript 解釋器、Python 解釋器、PHP 解釋器等等只要你能想得到的編程語言解釋器,甚至你還可以設(shè)計(jì)一個(gè)自己的比如本文的字節(jié)碼虛擬機(jī)。所以當(dāng)公告一出來的時(shí)候,樓底下第一個(gè)回復(fù)的朋友就一語道破封 JavaScript 解釋器是一件多么可笑的事情。

圖片

公告發(fā)出來的第一天,就有朋友在評(píng)論區(qū)中抖機(jī)靈

第二,你可以把一切能夠從得到不同輸入,并且產(chǎn)生不同結(jié)果的程序都稱之為解釋器,無非就是它表達(dá)能力的強(qiáng)與弱、是通用的還是專用的區(qū)別而已,所以這個(gè)界限是非常模糊的。比如我們業(yè)務(wù)中,可能需要程序去服務(wù)器上拉一份配置,這份配置可能是某些功能的開關(guān)顯示與否等等,那么這時(shí)候我拉的一份配置文件和拉了一份 JavaScript 代碼動(dòng)態(tài)執(zhí)行有本質(zhì)上的區(qū)別嗎?其實(shí)你也可以理解代碼不過是一份解釋器/編譯器的配置文件而已,沒有那么特殊,唯一的區(qū)別僅僅是代碼設(shè)計(jì)通用且復(fù)雜。所以才有那么一句話,代碼既數(shù)據(jù),數(shù)據(jù)既代碼。

寫在最后

在文章的最后,要向兩位科學(xué)家致敬。第一位是艾倫·圖靈,提出了圖靈機(jī)奠定了計(jì)算理論的基礎(chǔ)。第二位是香農(nóng),奠定了現(xiàn)代信息論的基礎(chǔ)。感謝巨人們給我們提供的肩膀。

圖片

艾倫·圖靈(左) 克勞德·香農(nóng)(右)

責(zé)任編輯:武曉燕 來源: Tecvan
相關(guān)推薦

2020-01-08 15:11:28

Python編輯器程序

2020-11-17 06:57:15

存儲(chǔ)互聯(lián)網(wǎng)用戶

2016-11-28 15:52:09

微信小程序開發(fā)

2018-12-04 13:30:28

Javascript編譯原理前端

2021-03-10 08:05:10

Nginx面試并發(fā)

2012-02-01 16:48:54

后門Putty

2018-09-06 08:46:15

騰訊秋招跳槽

2020-12-11 08:42:06

Kona 開源JDK

2025-02-28 09:00:00

DeepSeek人工智能AI

2022-07-28 10:39:50

OpenApiSwaggerSpringDoc

2024-03-27 10:21:47

字符串棧內(nèi)存V8

2011-06-28 10:41:50

DBA

2010-04-28 17:14:52

Google服務(wù)器

2020-10-24 13:50:59

Python庫(kù)編程語言

2021-12-27 10:08:16

Python編程語言庫(kù)

2020-11-02 11:23:14

騰訊跳槽百度

2024-07-09 10:20:05

VueJSX函數(shù)

2018-03-02 10:42:44

服務(wù)器數(shù)據(jù)備份
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美一区二区三区久久久| 精品一区二区三区四区五区六区| 亚洲s色大片| 国产综合久久久久久久久久久久| 美女黄色丝袜一区| 久久人人妻人人人人妻性色av| 天天综合网天天| 亚洲欧美中日韩| 激情小说综合区| 中文字幕在线播放日韩| 亚洲视频精品| 一区二区三区精品99久久| 亚洲热在线视频| 中文不卡1区2区3区| 亚洲男人的天堂在线aⅴ视频| 精品毛片久久久久久| 亚洲自拍第二页| 亚洲久久一区| 日韩在线观看免费高清完整版| 国产艳妇疯狂做爰视频 | 亚洲天堂aaa| 亚洲国产一区二区精品专区| 日韩三级影视基地| 国产偷人妻精品一区| 欧美经典一区| 欧美日韩综合在线免费观看| 国产成人无码精品久久久性色| av在线免费观看网站| 91蜜桃免费观看视频| 91中文字幕在线观看| 中文字幕第31页| 久久久亚洲一区| 久久久久久久色| 91成人福利视频| 日韩在线高清| 一区二区三区四区视频| 成人精品在线观看视频| 国产精品对白| 精品久久久久香蕉网| 超碰在线资源站| 欧美亚洲人成在线| 欧美专区亚洲专区| 已婚少妇美妙人妻系列| 天堂资源在线| 欧美视频免费在线| av免费观看大全| 国产蜜臀av在线播放| 伊人性伊人情综合网| 中文字幕日韩一区二区三区不卡 | 91蜜桃传媒精品久久久一区二区| 国产经典一区二区三区| 国产综合在线播放| 国产凹凸在线观看一区二区 | 午夜精品福利影院| 日韩av在线导航| 国产精品一级黄片| 亚洲人和日本人hd| 亚洲网站在线看| 亚洲一级片在线播放| 清纯唯美综合亚洲| 日韩中文在线视频| 91视频免费在线看| 国产一区日韩欧美| 91黄色8090| www日韩精品| 亚洲专区在线| 欧美性视频网站| 日日夜夜操视频| 日本在线不卡视频| 国产日韩在线视频| 国产福利小视频| eeuss国产一区二区三区| 久久99精品国产99久久| 日韩在线无毛| 国产精品乱码人人做人人爱| 四虎免费在线观看视频| av人人综合网| 91精品办公室少妇高潮对白| 中文字幕亚洲乱码| 视频二区欧美| 亚洲美女喷白浆| 在线观看免费黄色网址| 欧美激情1区2区| 欧美性做爰毛片| 一区二区小视频| 国产成人亚洲综合a∨猫咪| 国精产品99永久一区一区| 国产免费a∨片在线观看不卡| 中文字幕在线观看不卡视频| 超碰10000| 国偷自产一区二区免费视频| 欧美男人的天堂一二区| 亚洲自拍偷拍精品| 清纯唯美日韩| 久久人人爽人人| 中文字幕在线视频免费| 成人毛片视频在线观看| 亚洲日本一区二区三区在线不卡| 欧美另类tv| 欧美在线观看视频在线| 美女日批在线观看| 精品国产不卡| 久久久久久久久久久国产| 免费看av在线| 成人av在线影院| 伊人婷婷久久| 亚洲三级欧美| 日韩亚洲欧美在线| www久久久久久久| 亚洲美女少妇无套啪啪呻吟| 成人中文字幕在线观看| 免费理论片在线观看播放老| 亚洲黄色免费网站| 天天操天天爱天天爽| 久久激情av| 欧美xxxx18国产| 欧美激情一区二区三区免费观看 | 国产精品扒开腿做爽爽| 国产一区清纯| 91精品中国老女人| www.亚洲资源| 欧美性猛交xxxx乱大交蜜桃| 国产成人精品一区二区三区在线观看| 欧美亚洲国产激情| 热久久这里只有| 日本波多野结衣在线| 自拍偷拍欧美激情| 国产福利在线免费| 精品国产午夜| 日本精品中文字幕| 熟妇人妻系列aⅴ无码专区友真希| 亚洲人被黑人高潮完整版| 50路60路老熟妇啪啪| 国产精东传媒成人av电影| 久久夜精品va视频免费观看| 中文字幕在线视频免费| 国产精品你懂的在线欣赏| 日韩精品无码一区二区三区免费| 欧美亚洲国产日韩| 97国产成人精品视频| 亚洲国产中文字幕在线| 亚洲黄色av一区| 日韩av福利在线观看| 香蕉久久网站| 91情侣偷在线精品国产| 黄av在线播放| 91.成人天堂一区| 中国毛片直接看| 韩日欧美一区二区三区| 国产人妻互换一区二区| 国产aa精品| 精品少妇v888av| 亚洲精品成av人片天堂无码| 一区二区三区美女视频| 亚洲欧洲日韩综合| 18成人免费观看视频| 国产亚洲一区二区三区在线播放| av老司机在线观看| 亚洲精品一区二区三区不| www.com国产| 国产欧美一区二区精品忘忧草 | 在线观看精品| 色噜噜狠狠狠综合曰曰曰| 91久久精品无码一区二区| 日韩美女视频一区二区| 永久av免费在线观看| 亚洲调教视频在线观看| 久草精品电影| 亚洲精品555| 久久色在线播放| 亚洲精品视频专区| 天天射综合影视| 欧美特级黄色录像| 拔插拔插海外华人免费| 香蕉久久夜色精品国产更新时间| 国产精品91久久久| 欧美边添边摸边做边爱免费| 日韩一区二区三区免费看| 免费观看一级视频| 国产婷婷色一区二区三区四区| 亚洲 欧美 日韩系列| 香蕉国产精品| 鲁丝片一区二区三区| 影音成人av| 久久国产精品久久国产精品| 日韩中文字幕免费观看| 色欧美日韩亚洲| 老熟妻内射精品一区| 9人人澡人人爽人人精品| 国产免费视频传媒| 欧美91福利在线观看| 久久国产精品-国产精品| 999国产精品亚洲77777| 欧美激情中文字幕乱码免费| 国产一级免费在线观看| 91精品国产综合久久福利软件| 久久高清免费视频| 国产精品久久久久久久午夜片| 亚洲少妇一区二区| 丝袜美腿成人在线| 91免费国产精品| 九色成人国产蝌蚪91| 亚洲最大的网站| 欧美xo影院| 色综合久久中文字幕综合网小说| 欧美亚洲日本| 日韩一区二区免费电影| 一级黄色在线视频| 亚洲综合免费观看高清完整版在线| 美女被到爽高潮视频| 国产精品77777| 无码少妇一区二区三区芒果| 欧美一区综合| 亚洲国产一区在线| 综合综合综合综合综合网| y111111国产精品久久婷婷| 久久99久久99精品免观看软件| 久久久亚洲精品视频| 在线观看麻豆| 国产亚洲精品91在线| 女人18毛片水真多18精品| 91精品国产综合久久久久久久久久 | 啪啪激情综合网| 69堂成人精品视频免费| 成人在线黄色| 欧美壮男野外gaytube| 精品精品导航| 久久av红桃一区二区小说| 东热在线免费视频| 日韩激情第一页| 农村少妇久久久久久久| 精品美女一区二区| 99国产精品99| 欧美日韩一级视频| 波多野结衣一区二区三区在线| 婷婷国产在线综合| 日本少妇全体裸体洗澡| 亚洲一区视频在线观看视频| 成年人二级毛片| 自拍偷拍欧美精品| 国产喷水在线观看| 亚洲欧洲精品一区二区三区不卡| 超薄肉色丝袜一二三| 久久精品视频一区二区三区| 国产男女猛烈无遮挡a片漫画| 成年人网站91| 东京热av一区| 成人高清免费观看| 久久久午夜精品福利内容| 成人午夜伦理影院| av av在线| www.视频一区| av网站有哪些| 久久久蜜臀国产一区二区| www.久久av| 欧美国产激情一区二区三区蜜月| 亚洲久久久久久久| 国产日韩精品一区二区三区| 日本理论中文字幕| 国产精品久久久久久妇女6080| 国产极品视频在线观看| 中文字幕一区二区三区在线不卡 | 欧美成人精品一区二区三区在线看| 五月天亚洲综合情| 欧美韩日一区| 欧美美女黄色网| 亚洲黄色免费| 人妻有码中文字幕| 日韩精品亚洲一区二区三区免费| 国产精品视频黄色| 国内国产精品久久| 久久久久亚洲av成人网人人软件| 99久久久免费精品国产一区二区 | 国产丰满美女做爰| 亚洲福利在线视频| 蝌蚪视频在线播放| 日韩在线播放视频| 国产蜜臀在线| 国产精品久久久久久久久久免费 | 春色成人在线视频| 日本午夜精品| 亚洲 日韩 国产第一区| 综合久久十次| 成人综合视频在线| 久久精品国产99国产精品| 韩国一区二区三区四区| 久久久精品tv| 男人与禽猛交狂配| 欧美日韩亚洲天堂| 国产又黄又粗又硬| 日韩电影免费观看中文字幕| www日韩tube| 国内精品模特av私拍在线观看| 色综合天天色| 丁香婷婷久久久综合精品国产| 夜夜春成人影院| 色哟哟免费网站| 天堂成人免费av电影一区| 一本之道在线视频| 91香蕉国产在线观看软件| 美女网站视频色| 午夜av一区二区三区| 中文字幕一区二区三区免费看| 日韩午夜在线影院| 国产三级视频在线看| 久久久久久国产精品| 中韩乱幕日产无线码一区| 国产福利一区二区三区在线观看| 欧洲激情综合| www在线观看免费| 国产最新精品免费| 亚洲色成人网站www永久四虎| 亚洲在线视频一区| 一区二区三区黄| 亚洲老头老太hd| 国模私拍视频在线播放| 成人黄色网免费| 欧美日韩国产传媒| 国产极品在线视频| 国产传媒欧美日韩成人| 91无套直看片红桃在线观看| 高跟丝袜一区二区三区| 国产成人精品毛片| 日韩一级裸体免费视频| 日本精品不卡| 精品乱码一区| 亚洲激情成人| 涩视频在线观看| 亚洲视频一区在线| 一级黄色片免费| 一区二区亚洲精品国产| 日日av拍夜夜添久久免费| 美女被啪啪一区二区| 日韩视频在线一区二区三区| 99国产精品免费视频| 椎名由奈av一区二区三区| 在线不卡免费视频| 中文字幕日韩视频| 成人国产在线| 亚洲国产精品www| 丝袜美腿亚洲一区| av黄色在线免费观看| 91成人国产精品| 国产高清在线观看| 国产成人一区二区| 精品黄色一级片| 高清一区二区视频| 国产精品网站在线观看| 亚洲精品毛片一区二区三区| 亚洲一区999| 91在线亚洲| 爱爱爱视频网站| 国产精一品亚洲二区在线视频| 五月激情四射婷婷| 欧美日韩黄色一区二区| 香蕉视频国产在线观看| 国产日韩在线亚洲字幕中文| 亚洲精品小说| 国产乱国产乱老熟300部视频| 亚洲国产视频网站| 五月婷婷六月色| 秋霞成人午夜鲁丝一区二区三区| 久久99高清| 嫩草视频免费在线观看| 亚洲美女一区二区三区| 丰满肉肉bbwwbbww| 欧美一区二区影院| 欧美少妇性xxxx| 青青草原播放器| 午夜影视日本亚洲欧洲精品| 青梅竹马是消防员在线| 国产精品美女呻吟| 欧美成人亚洲| 狠狠人妻久久久久久综合蜜桃| 欧洲生活片亚洲生活在线观看| 黄色网页在线播放| 国产精品免费在线| 日韩高清国产一区在线| 来吧亚洲综合网| 精品999在线播放| 深夜成人福利| 浴室偷拍美女洗澡456在线| 成人永久看片免费视频天堂| caoporn国产| 久久天天躁狠狠躁夜夜躁| 九九热hot精品视频在线播放| 999精品网站| 一区二区三区小说| 久久久久久久影视| 亚洲一区二区三区sesese| 国产精品久久久久9999高清| 国产99在线 | 亚洲| 精品盗摄一区二区三区| 精品裸体bbb| 日本十八禁视频无遮挡| 国产精品国产自产拍在线| 欧美性受xxxx狂喷水| 国产日韩av高清| 中文精品在线| 国产极品国产极品|