久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

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

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

第27讲:令人抓狂的 JavaScript 混淆技术

發(fā)布時(shí)間:2024/4/11 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第27讲:令人抓狂的 JavaScript 混淆技术 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們?cè)谂廊【W(wǎng)站的時(shí)候,經(jīng)常會(huì)遇到各種各樣類似加密的情形,比如:

  • 某個(gè)網(wǎng)站的 URL 帶有一些看不懂的長(zhǎng)串加密參數(shù),想要抓取就必須要懂得這些參數(shù)是怎么構(gòu)造的,否則我們連完整的 URL 都構(gòu)造不出來(lái),更不用說(shuō)爬取了。
  • 分析某個(gè)網(wǎng)站的 Ajax 接口的時(shí)候,可以看到接口的一些參數(shù)也是加密的,或者 Request Headers 里面也可能帶有一些加密參數(shù),如果不知道這些參數(shù)的具體構(gòu)造邏輯就無(wú)法直接用程序來(lái)模擬這些 Ajax 請(qǐng)求。
  • 翻看網(wǎng)站的 JavaScript 源代碼,可以發(fā)現(xiàn)很多壓縮了或者看不太懂的字符,比如 JavaScript 文件名被編碼,JavaScript 的文件內(nèi)容被壓縮成幾行,JavaScript 變量也被修改成單個(gè)字符或者一些十六進(jìn)制的字符,導(dǎo)致我們不好輕易根據(jù) JavaScript 找出某些接口的加密邏輯。

這些情況,基本上都是網(wǎng)站為了保護(hù)其本身的一些數(shù)據(jù)不被輕易抓取而采取的一些措施,我們可以把它歸為兩大類:

  • 接口加密技術(shù);
  • JavaScript 壓縮、混淆和加密技術(shù)。

本課時(shí)我們就來(lái)了解下這兩類技術(shù)的實(shí)現(xiàn)原理。

1.數(shù)據(jù)保護(hù)

當(dāng)今大數(shù)據(jù)時(shí)代,數(shù)據(jù)已經(jīng)變得越來(lái)越重要,網(wǎng)頁(yè)和 App 現(xiàn)在是主流的數(shù)據(jù)載體,如果其數(shù)據(jù)的接口沒(méi)有設(shè)置任何保護(hù)措施,在爬蟲工程師解決了一些基本的反爬如封 IP、驗(yàn)證碼的問(wèn)題之后,那么數(shù)據(jù)還是可以被輕松抓取到。

那么,有沒(méi)有可能在接口或 JavaScript 層面也加上一層防護(hù)呢?答案是可以的。

2.接口加密技術(shù)

網(wǎng)站運(yùn)營(yíng)商首先想到防護(hù)措施可能是對(duì)某些數(shù)據(jù)接口進(jìn)行加密,比如說(shuō)對(duì)某些 URL 的一些參數(shù)加上校驗(yàn)碼或者把一些 ID 信息進(jìn)行編碼,使其變得難以閱讀或構(gòu)造;或者對(duì)某些接口請(qǐng)求加上一些 token、sign 等簽名,這樣這些請(qǐng)求發(fā)送到服務(wù)器時(shí),服務(wù)器會(huì)通過(guò)客戶端發(fā)來(lái)的一些請(qǐng)求信息以及雙方約定好的秘鑰等來(lái)對(duì)當(dāng)前的請(qǐng)求進(jìn)行校驗(yàn),如果校驗(yàn)通過(guò),才返回對(duì)應(yīng)數(shù)據(jù)結(jié)果。

比如說(shuō)客戶端和服務(wù)端約定一種接口校驗(yàn)邏輯,客戶端在每次請(qǐng)求服務(wù)端接口的時(shí)候都會(huì)附帶一個(gè) sign 參數(shù),這個(gè) sign 參數(shù)可能是由當(dāng)前時(shí)間信息、請(qǐng)求的 URL、請(qǐng)求的數(shù)據(jù)、設(shè)備的 ID、雙方約定好的秘鑰經(jīng)過(guò)一些加密算法構(gòu)造而成的,客戶端會(huì)實(shí)現(xiàn)這個(gè)加密算法構(gòu)造 sign,然后每次請(qǐng)求服務(wù)器的時(shí)候附帶上這個(gè)參數(shù)。服務(wù)端會(huì)根據(jù)約定好的算法和請(qǐng)求的數(shù)據(jù)對(duì) sign 進(jìn)行校驗(yàn),如果校驗(yàn)通過(guò),才返回對(duì)應(yīng)的數(shù)據(jù),否則拒絕響應(yīng)。

3.JavaScript 壓縮、混淆和加密技術(shù)

接口加密技術(shù)看起來(lái)的確是一個(gè)不錯(cuò)的解決方案,但單純依靠它并不能很好地解決問(wèn)題。為什么呢?

對(duì)于網(wǎng)頁(yè)來(lái)說(shuō),其邏輯是依賴于 JavaScript 來(lái)實(shí)現(xiàn)的,JavaScript 有如下特點(diǎn):

  • JavaScript 代碼運(yùn)行于客戶端,也就是它必須要在用戶瀏覽器端加載并運(yùn)行。
  • JavaScript 代碼是公開透明的,也就是說(shuō)瀏覽器可以直接獲取到正在運(yùn)行的 JavaScript 的源碼。

由于這兩個(gè)原因,導(dǎo)致 JavaScript 代碼是不安全的,任何人都可以讀、分析、復(fù)制、盜用,甚至篡改。

所以說(shuō),對(duì)于上述情形,客戶端 JavaScript 對(duì)于某些加密的實(shí)現(xiàn)是很容易被找到或模擬的,了解了加密邏輯后,模擬參數(shù)的構(gòu)造和請(qǐng)求也就是輕而易舉了,所以如果 JavaScript 沒(méi)有做任何層面的保護(hù)的話,接口加密技術(shù)基本上對(duì)數(shù)據(jù)起不到什么防護(hù)作用。

如果你不想讓自己的數(shù)據(jù)被輕易獲取,不想他人了解 JavaScript 邏輯的實(shí)現(xiàn),或者想降低被不懷好意的人甚至是黑客攻擊。那么你就需要用到 JavaScript 壓縮、混淆和加密技術(shù)了。

這里壓縮、混淆、加密技術(shù)簡(jiǎn)述如下。

  • 代碼壓縮:即去除 JavaScript 代碼中的不必要的空格、換行等內(nèi)容,使源碼都?jí)嚎s為幾行內(nèi)容,降低代碼可讀性,當(dāng)然同時(shí)也能提高網(wǎng)站的加載速度。
  • 代碼混淆:使用變量替換、字符串陣列化、控制流平坦化、多態(tài)變異、僵尸函數(shù)、調(diào)試保護(hù)等手段,使代碼變得難以閱讀和分析,達(dá)到最終保護(hù)的目的。但這不影響代碼原有功能。是理想、實(shí)用的 JavaScript 保護(hù)方案。
  • 代碼加密:可以通過(guò)某種手段將 JavaScript 代碼進(jìn)行加密,轉(zhuǎn)成人無(wú)法閱讀或者解析的代碼,如將代碼完全抽象化加密,如 eval 加密。另外還有更強(qiáng)大的加密技術(shù),可以直接將 JavaScript 代碼用 C/C++ 實(shí)現(xiàn),JavaScript 調(diào)用其編譯后形成的文件來(lái)執(zhí)行相應(yīng)的功能,如 Emscripten 還有 WebAssembly。

下面我們對(duì)上面的技術(shù)分別予以介紹。

4.接口加密技術(shù)

數(shù)據(jù)一般都是通過(guò)服務(wù)器提供的接口來(lái)獲取的,網(wǎng)站或 App 可以請(qǐng)求某個(gè)數(shù)據(jù)接口獲取到對(duì)應(yīng)的數(shù)據(jù),然后再把獲取的數(shù)據(jù)展示出來(lái)。

但有些數(shù)據(jù)是比較寶貴或私密的,這些數(shù)據(jù)肯定是需要一定層面上的保護(hù)。所以不同接口的實(shí)現(xiàn)也就對(duì)應(yīng)著不同的安全防護(hù)級(jí)別,我們這里來(lái)總結(jié)下。

4.1完全開放的接口

有些接口是沒(méi)有設(shè)置任何防護(hù)的,誰(shuí)都可以調(diào)用和訪問(wèn),而且沒(méi)有任何時(shí)空限制和頻率限制。任何人只要知道了接口的調(diào)用方式就能無(wú)限制地調(diào)用。

這種接口的安全性是非常非常低的,如果接口的調(diào)用方式一旦泄露或被抓包獲取到,任何人都可以無(wú)限制地對(duì)數(shù)據(jù)進(jìn)行操作或訪問(wèn)。此時(shí)如果接口里面包含一些重要的數(shù)據(jù)或隱私數(shù)據(jù),就能輕易被篡改或竊取了。

4.2接口參數(shù)加密

為了提升接口的安全性,客戶端會(huì)和服務(wù)端約定一種接口校驗(yàn)方式,一般來(lái)說(shuō)會(huì)使用到各種加密和編碼算法,如 Base64、Hex 編碼,MD5、AES、DES、RSA 等加密。

比如客戶端和服務(wù)器雙方約定一個(gè) sign 用作接口的簽名校驗(yàn),其生成邏輯是客戶端將 URL Path 進(jìn)行 MD5 加密然后拼接上 URL 的某個(gè)參數(shù)再進(jìn)行 Base64 編碼,最后得到一個(gè)字符串 sign,這個(gè) sign 會(huì)通過(guò) Request URL 的某個(gè)參數(shù)或 Request Headers 發(fā)送給服務(wù)器。服務(wù)器接收到請(qǐng)求后,對(duì) URL Path 同樣進(jìn)行 MD5 加密,然后拼接上 URL 的某個(gè)參數(shù),也進(jìn)行 Base64 編碼得到了一個(gè) sign,然后比對(duì)生成的 sign 和客戶端發(fā)來(lái)的 sign 是否是一致的,如果是一致的,那就返回正確的結(jié)果,否則拒絕響應(yīng)。這就是一個(gè)比較簡(jiǎn)單的接口參數(shù)加密的實(shí)現(xiàn)。如果有人想要調(diào)用這個(gè)接口的話,必須要定義好 sign 的生成邏輯,否則是無(wú)法正常調(diào)用接口的。

以上就是一個(gè)基本的接口參數(shù)加密邏輯的實(shí)現(xiàn)。

當(dāng)然上面的這個(gè)實(shí)現(xiàn)思路比較簡(jiǎn)單,這里還可以增加一些時(shí)間戳信息增加時(shí)效性判斷,或增加一些非對(duì)稱加密進(jìn)一步提高加密的復(fù)雜程度。但不管怎樣,只要客戶端和服務(wù)器約定好了加密和校驗(yàn)邏輯,任何形式加密算法都是可以的。

這里要實(shí)現(xiàn)接口參數(shù)加密就需要用到一些加密算法,客戶端和服務(wù)器肯定也都有對(duì)應(yīng)的 SDK 實(shí)現(xiàn)這些加密算法,如 JavaScript 的 crypto-js,Python 的 hashlib、Crypto 等等。

但還是如上文所說(shuō),如果是網(wǎng)頁(yè)的話,客戶端實(shí)現(xiàn)加密邏輯如果是用 JavaScript 來(lái)實(shí)現(xiàn),其源代碼對(duì)用戶是完全可見(jiàn)的,如果沒(méi)有對(duì) JavaScript 做任何保護(hù)的話,是很容易弄清楚客戶端加密的流程的。

因此,我們需要對(duì) JavaScript 利用壓縮、混淆、加密的方式來(lái)對(duì)客戶端的邏輯進(jìn)行一定程度上的保護(hù)。

5.JavaScript 壓縮、混淆、加密

下面我們?cè)賮?lái)介紹下 JavaScript 的壓縮、混淆和加密技術(shù)。

5.1JavaScript 壓縮

這個(gè)非常簡(jiǎn)單,JavaScript 壓縮即去除 JavaScript 代碼中的不必要的空格、換行等內(nèi)容或者把一些可能公用的代碼進(jìn)行處理實(shí)現(xiàn)共享,最后輸出的結(jié)果都被壓縮為幾行內(nèi)容,代碼可讀性變得很差,同時(shí)也能提高網(wǎng)站加載速度。

如果僅僅是去除空格換行這樣的壓縮方式,其實(shí)幾乎是沒(méi)有任何防護(hù)作用的,因?yàn)檫@種壓縮方式僅僅是降低了代碼的直接可讀性。如果我們有一些格式化工具可以輕松將 JavaScript 代碼變得易讀,比如利用 IDE、在線工具或 Chrome 瀏覽器都能還原格式化的代碼。

目前主流的前端開發(fā)技術(shù)大多都會(huì)利用 Webpack 進(jìn)行打包,Webpack 會(huì)對(duì)源代碼進(jìn)行編譯和壓縮,輸出幾個(gè)打包好的 JavaScript 文件,其中我們可以看到輸出的 JavaScript 文件名帶有一些不規(guī)則字符串,同時(shí)文件內(nèi)容可能只有幾行內(nèi)容,變量名都是一些簡(jiǎn)單字母表示。這其中就包含 JavaScript 壓縮技術(shù),比如一些公共的庫(kù)輸出成 bundle 文件,一些調(diào)用邏輯壓縮和轉(zhuǎn)義成幾行代碼,這些都屬于 JavaScript 壓縮。另外其中也包含了一些很基礎(chǔ)的 JavaScript 混淆技術(shù),比如把變量名、方法名替換成一些簡(jiǎn)單字符,降低代碼可讀性。
但整體來(lái)說(shuō),JavaScript 壓縮技術(shù)只能在很小的程度上起到防護(hù)作用,要想真正提高防護(hù)效果還得依靠 JavaScript 混淆和加密技術(shù)。

5.2JavaScript 混淆

JavaScript 混淆完全是在 JavaScript 上面進(jìn)行的處理,它的目的就是使得 JavaScript 變得難以閱讀和分析,大大降低代碼可讀性,是一種很實(shí)用的 JavaScript 保護(hù)方案。

JavaScript 混淆技術(shù)主要有以下幾種:

  • 變量混淆

將帶有含意的變量名、方法名、常量名隨機(jī)變?yōu)闊o(wú)意義的類亂碼字符串,降低代碼可讀性,如轉(zhuǎn)成單個(gè)字符或十六進(jìn)制字符串。

  • 字符串混淆

將字符串陣列化集中放置、并可進(jìn)行 MD5 或 Base64 加密存儲(chǔ),使代碼中不出現(xiàn)明文字符串,這樣可以避免使用全局搜索字符串的方式定位到入口點(diǎn)。

  • 屬性加密

針對(duì) JavaScript 對(duì)象的屬性進(jìn)行加密轉(zhuǎn)化,隱藏代碼之間的調(diào)用關(guān)系。

  • 控制流平坦化

打亂函數(shù)原有代碼執(zhí)行流程及函數(shù)調(diào)用關(guān)系,使代碼邏變得混亂無(wú)序。

  • 僵尸代碼

隨機(jī)在代碼中插入無(wú)用的僵尸代碼、僵尸函數(shù),進(jìn)一步使代碼混亂。

  • 調(diào)試保護(hù)

基于調(diào)試器特性,對(duì)當(dāng)前運(yùn)行環(huán)境進(jìn)行檢驗(yàn),加入一些強(qiáng)制調(diào)試 debugger 語(yǔ)句,使其在調(diào)試模式下難以順利執(zhí)行 JavaScript 代碼。

  • 多態(tài)變異

使 JavaScript 代碼每次被調(diào)用時(shí),將代碼自身即立刻自動(dòng)發(fā)生變異,變化為與之前完全不同的代碼,即功能完全不變,只是代碼形式變異,以此杜絕代碼被動(dòng)態(tài)分析調(diào)試。

  • 鎖定域名

使 JavaScript 代碼只能在指定域名下執(zhí)行。

  • 反格式化

如果對(duì) JavaScript 代碼進(jìn)行格式化,則無(wú)法執(zhí)行,導(dǎo)致瀏覽器假死。

  • 特殊編碼

將 JavaScript 完全編碼為人不可讀的代碼,如表情符號(hào)、特殊表示內(nèi)容等等。

總之,以上方案都是 JavaScript 混淆的實(shí)現(xiàn)方式,可以在不同程度上保護(hù) JavaScript 代碼。

在前端開發(fā)中,現(xiàn)在 JavaScript 混淆主流的實(shí)現(xiàn)是 javascript-obfuscator 這個(gè)庫(kù),利用它我們可以非常方便地實(shí)現(xiàn)頁(yè)面的混淆,它與 Webpack 結(jié)合起來(lái),最終可以輸出壓縮和混淆后的 JavaScript 代碼,使得可讀性大大降低,難以逆向。

下面我們會(huì)介紹下 javascript-obfuscator 對(duì)代碼混淆的實(shí)現(xiàn),了解了實(shí)現(xiàn),那么自然我們就對(duì)混淆的機(jī)理有了更加深刻的認(rèn)識(shí)。

javascript-obfuscator 的官網(wǎng)地址為:https://obfuscator.io/,其官方介紹內(nèi)容如下: A free
and efficient obfuscator for JavaScript (including ES2017). Make your
code harder to copy and prevent people from stealing your work.

它是支持 ES8 的免費(fèi)、高效的 JavaScript 混淆庫(kù),它可以使得你的 JavaScript 代碼經(jīng)過(guò)混淆后難以被復(fù)制、盜用,混淆后的代碼具有和原來(lái)的代碼一模一樣的功能。

怎么使用呢?首先,我們需要安裝好 Node.js,可以使用 npm 命令。

然后新建一個(gè)文件夾,比如 js-obfuscate,隨后進(jìn)入該文件夾,初始化工作空間:

npm init

這里會(huì)提示我們輸入一些信息,創(chuàng)建一個(gè) package.json 文件,這就完成了項(xiàng)目初始化了。

接下來(lái)我們來(lái)安裝 javascript-obfuscator 這個(gè)庫(kù):

npm install --save-dev javascript-obfuscator

接下來(lái)我們就可以編寫代碼來(lái)實(shí)現(xiàn)混淆了,如新建一個(gè) main.js 文件,內(nèi)容如下:

const code = ` let x = '1' + 1 console.log('x', x) `const options = {compact: false,controlFlowFlattening: true}const obfuscator = require('javascript-obfuscator') function obfuscate(code, options) {return obfuscator.obfuscate(code, options).getObfuscatedCode() } console.log(obfuscate(code, options))

在這里我們定義了兩個(gè)變量,一個(gè)是 code,即需要被混淆的代碼,另一個(gè)是混淆選項(xiàng),是一個(gè) Object。接下來(lái)我們引入了 javascript-obfuscator 庫(kù),然后定義了一個(gè)方法,傳入 code 和 options,來(lái)獲取混淆后的代碼,最后控制臺(tái)輸出混淆后的代碼。

代碼邏輯比較簡(jiǎn)單,我們來(lái)執(zhí)行一下代碼:

node main.js

輸出結(jié)果如下:

var _0x53bf = ['log']; (function (_0x1d84fe, _0x3aeda0) {var _0x10a5a = function (_0x2f0a52) {while (--_0x2f0a52) {_0x1d84fe['push'](_0x1d84fe['shift']());}};_0x10a5a(++_0x3aeda0); }(_0x53bf, 0x172)); var _0x480a = function (_0x4341e5, _0x5923b4) {_0x4341e5 = _0x4341e5 - 0x0;var _0xb3622e = _0x53bf[_0x4341e5];return _0xb3622e; }; let x = '1' + 0x1; console[_0x480a('0x0')]('x', x);

看到了吧,這么簡(jiǎn)單的兩行代碼,被我們混淆成了這個(gè)樣子,其實(shí)這里我們就是設(shè)定了一個(gè)“控制流扁平化”的選項(xiàng)。

整體看來(lái),代碼的可讀性大大降低,也大大加大了 JavaScript 調(diào)試的難度。

好,接下來(lái)我們來(lái)跟著 javascript-obfuscator 走一遍,就能具體知道 JavaScript 混淆到底有多少方法了。

代碼壓縮

這里 javascript-obfuscator 也提供了代碼壓縮的功能,使用其參數(shù) compact 即可完成 JavaScript 代碼的壓縮,輸出為一行內(nèi)容。默認(rèn)是 true,如果定義為 false,則混淆后的代碼會(huì)分行顯示。

示例如下:

const code = ` let x = '1' + 1 console.log('x', x) ` const options = {compact: false }

這里我們先把代碼壓縮 compact 選項(xiàng)設(shè)置為 false,運(yùn)行結(jié)果如下:

let x = '1' + 0x1; console['log']('x', x);

如果不設(shè)置 compact 或把 compact 設(shè)置為 true,結(jié)果如下:

var _0x151c=['log'];(function(_0x1ce384,_0x20a7c7){var _0x25fc92=function(_0x188aec){while(--_0x188aec){_0x1ce384['push'](_0x1ce384['shift']());}};_0x25fc92(++_0x20a7c7);}(_0x151c,0x1b7));var _0x553e=function(_0x259219,_0x241445){_0x259219=_0x259219-0x0;var _0x56d72d=_0x151c[_0x259219];return _0x56d72d;};let x='1'+0x1;console[_0x553e('0x0')]('x',x);

可以看到單行顯示的時(shí)候,對(duì)變量名進(jìn)行了進(jìn)一步的混淆和控制流扁平化操作。

變量名混淆

變量名混淆可以通過(guò)配置 identifierNamesGenerator 參數(shù)實(shí)現(xiàn),我們通過(guò)這個(gè)參數(shù)可以控制變量名混淆的方式,如 hexadecimal 則會(huì)替換為 16 進(jìn)制形式的字符串,在這里我們可以設(shè)定如下值:

  • hexadecimal:將變量名替換為 16 進(jìn)制形式的字符串,如 0xabc123。
  • mangled:將變量名替換為普通的簡(jiǎn)寫字符,如 a、b、c 等。

該參數(shù)默認(rèn)為 hexadecimal。

我們將該參數(shù)修改為 mangled 來(lái)試一下:

const code = ` let hello = '1' + 1 console.log('hello', hello) ` const options = {compact: true,identifierNamesGenerator: 'mangled' }

運(yùn)行結(jié)果如下:

var a=['hello'];(function(c,d){var e=function(f){while(--f){c['push'](c['shift']());}};e(++d);}(a,0x9b));var b=function(c,d){c=c-0x0;var e=a[c];return e;};let hello='1'+0x1;console['log'](b('0x0'),hello);

可以看到這里的變量命名都變成了 a、b 等形式。

如果我們將 identifierNamesGenerator 修改為 hexadecimal 或者不設(shè)置,運(yùn)行結(jié)果如下:

var _0x4e98=['log','hello'];(function(_0x4464de,_0x39de6c){var _0xdffdda=function(_0x6a95d5){while(--_0x6a95d5){_0x4464de['push'](_0x4464de['shift']());}};_0xdffdda(++_0x39de6c);}(_0x4e98,0xc8));var _0x53cb=function(_0x393bda,_0x8504e7){_0x393bda=_0x393bda-0x0;var _0x46ab80=_0x4e98[_0x393bda];return _0x46ab80;};let hello='1'+0x1;console[_0x53cb('0x0')](_0x53cb('0x1'),hello);

可以看到選用了 mangled,其代碼體積會(huì)更小,但 hexadecimal 其可讀性會(huì)更低。

另外我們還可以通過(guò)設(shè)置 identifiersPrefix 參數(shù)來(lái)控制混淆后的變量前綴,示例如下:

const code = ` let hello = '1' + 1 console.log('hello', hello) ` const options = {identifiersPrefix: 'germey' }

運(yùn)行結(jié)果:

var germey_0x3dea=['log','hello'];(function(_0x348ff3,_0x5330e8){var _0x1568b1=function(_0x4740d8){while(--_0x4740d8){_0x348ff3['push'](_0x348ff3['shift']());}};_0x1568b1(++_0x5330e8);}(germey_0x3dea,0x94));var germey_0x30e4=function(_0x2e8f7c,_0x1066a8){_0x2e8f7c=_0x2e8f7c-0x0;var _0x5166ba=germey_0x3dea[_0x2e8f7c];return _0x5166ba;};let hello='1'+0x1;console[germey_0x30e4('0x0')](germey_0x30e4('0x1'),hello);

可以看到混淆后的變量前綴加上了我們自定義的字符串 germey。

另外 renameGlobals 這個(gè)參數(shù)還可以指定是否混淆全局變量和函數(shù)名稱,默認(rèn)為 false。示例如下:

const code = ` var $ = function(id) {return document.getElementById(id); }; ` const options = {renameGlobals: true }

運(yùn)行結(jié)果如下:

var _0x4864b0=function(_0x5763be){return document['getElementById'](_0x5763be);};

可以看到這里我們聲明了一個(gè)全局變量 ,在renameGlobals設(shè)置為true之后,,在 renameGlobals 設(shè)置為 true 之后,renameGlobals設(shè)true 這個(gè)變量也被替換了。如果后文用到了這個(gè) $ 對(duì)象,可能就會(huì)有找不到定義的錯(cuò)誤,因此這個(gè)參數(shù)可能導(dǎo)致代碼執(zhí)行不通。

如果我們不設(shè)置 renameGlobals 或者設(shè)置為 false,結(jié)果如下:

var _0x239a=['getElementById'];(function(_0x3f45a3,_0x583dfa){var _0x2cade2=function(_0x28479a){while(--_0x28479a){_0x3f45a3['push'](_0x3f45a3['shift']());}};_0x2cade2(++_0x583dfa);}(_0x239a,0xe1));var _0x3758=function(_0x18659d,_0x50c21d){_0x18659d=_0x18659d-0x0;var _0x531b8d=_0x239a[_0x18659d];return _0x531b8d;};var $=function(_0x3d8723){return document[_0x3758('0x0')](_0x3d8723);};

可以看到,最后還是有 $ 的聲明,其全局名稱沒(méi)有被改變。

字符串混淆

字符串混淆,即將一個(gè)字符串聲明放到一個(gè)數(shù)組里面,使之無(wú)法被直接搜索到。我們可以通過(guò)控制 stringArray 參數(shù)來(lái)控制,默認(rèn)為 true。

我們還可以通過(guò) rotateStringArray 參數(shù)來(lái)控制數(shù)組化后結(jié)果的元素順序,默認(rèn)為 true。
還可以通過(guò) stringArrayEncoding 參數(shù)來(lái)控制數(shù)組的編碼形式,默認(rèn)不開啟編碼,如果設(shè)置為 true 或 base64,則會(huì)使用 Base64 編碼,如果設(shè)置為 rc4,則使用 RC4 編碼。
還可以通過(guò) stringArrayThreshold 來(lái)控制啟用編碼的概率,范圍 0 到 1,默認(rèn) 0.8。

示例如下:

const code = ` var a = 'hello world' ` const options = {stringArray: true,rotateStringArray: true,stringArrayEncoding: true, // 'base64' or 'rc4' or falsestringArrayThreshold: 1, }

運(yùn)行結(jié)果如下:

var _0x4215=['aGVsbG8gd29ybGQ='];(function(_0x42bf17,_0x4c348f){var _0x328832=function(_0x355be1){while(--_0x355be1){_0x42bf17['push'](_0x42bf17['shift']());}};_0x328832(++_0x4c348f);}(_0x4215,0x1da));var _0x5191=function(_0x3cf2ba,_0x1917d8){_0x3cf2ba=_0x3cf2ba-0x0;var _0x1f93f0=_0x4215[_0x3cf2ba];if(_0x5191['LqbVDH']===undefined){(function(){var _0x5096b2;try{var _0x282db1=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');');_0x5096b2=_0x282db1();}catch(_0x2acb9c){_0x5096b2=window;}var _0x388c14='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0x5096b2['atob']||(_0x5096b2['atob']=function(_0x4cc27c){var _0x2af4ae=String(_0x4cc27c)['replace'](/=+$/,'');for(var _0x21400b=0x0,_0x3f4e2e,_0x5b193b,_0x233381=0x0,_0x3dccf7='';_0x5b193b=_0x2af4ae['charAt'](_0x233381++);~_0x5b193b&&(_0x3f4e2e=_0x21400b%0x4?_0x3f4e2e*0x40+_0x5b193b:_0x5b193b,_0x21400b++%0x4)?_0x3dccf7+=String['fromCharCode'](0xff&_0x3f4e2e>>(-0x2*_0x21400b&0x6)):0x0){_0x5b193b=_0x388c14['indexOf'](_0x5b193b);}return _0x3dccf7;});}());_0x5191['DuIurT']=function(_0x51888e){var _0x29801f=atob(_0x51888e);var _0x561e62=[];for(var _0x5dd788=0x0,_0x1a8b73=_0x29801f['length'];_0x5dd788<_0x1a8b73;_0x5dd788++){_0x561e62+='%'+('00'+_0x29801f['charCodeAt'](_0x5dd788)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x561e62);};_0x5191['mgoBRd']={};_0x5191['LqbVDH']=![外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-DLiWlT8j-1594122582185)(_0x1f93f0)];_0x5191['mgoBRd'][_0x3cf2ba]=_0x1f93f0;}else{_0x1f93f0=_0x1741f0;}return _0x1f93f0;};var a=_0x5191('0x0');

可以看到這里就把字符串進(jìn)行了 Base64 編碼,我們?cè)僖矡o(wú)法通過(guò)查找的方式找到字符串的位置了。

如果將 stringArray 設(shè)置為 false 的話,輸出就是這樣:

var a='hello\x20world';

字符串就仍然是明文顯示的,沒(méi)有被編碼。

另外我們還可以使用 unicodeEscapeSequence 這個(gè)參數(shù)對(duì)字符串進(jìn)行 Unicode 轉(zhuǎn)碼,使之更加難以辨認(rèn),示例如下:

const code = ` var a = 'hello world' ` const options = {compact: false,unicodeEscapeSequence: true }

運(yùn)行結(jié)果如下:

var _0x5c0d = ['\x68\x65\x6c\x6c\x6f\x20\x77\x6f\x72\x6c\x64']; (function (_0x54cc9c, _0x57a3b2) {var _0xf833cf = function (_0x3cd8c6) {while (--_0x3cd8c6) {_0x54cc9c['push'](_0x54cc9c['shift']());} }; _0xf833cf(++_0x57a3b2); }(_0x5c0d, 0x17d)); var _0x28e8 = function (_0x3fd645, _0x2cf5e7) {_0x3fd645 = _0x3fd645 - 0x0;var _0x298a20 = _0x5c0d[_0x3fd645];return _0x298a20; }; var a = _0x28e8('0x0');

可以看到,這里字符串被數(shù)字化和 Unicode 化,非常難以辨認(rèn)。

在很多 JavaScript 逆向的過(guò)程中,一些關(guān)鍵的字符串可能會(huì)作為切入點(diǎn)來(lái)查找加密入口。用了這種混淆之后,如果有人想通過(guò)全局搜索的方式搜索 hello 這樣的字符串找加密入口,也沒(méi)法搜到了。

代碼自我保護(hù)

我們可以通過(guò)設(shè)置 selfDefending 參數(shù)來(lái)開啟代碼自我保護(hù)功能。開啟之后,混淆后的 JavaScript 會(huì)強(qiáng)制以一行形式顯示,如果我們將混淆后的代碼進(jìn)行格式化(美化)或者重命名,該段代碼將無(wú)法執(zhí)行。

例如:

const code = ` console.log('hello world') ` const options = {selfDefending: true }

運(yùn)行結(jié)果如下:

var _0x26da=['log','hello\x20world'];(function(_0x190327,_0x57c2c0){var _0x577762=function(_0xc9dabb){while(--_0xc9dabb){_0x190327['push'](_0x190327['shift']());}};var _0x35976e=function(){var _0x16b3fe={'data':{'key':'cookie','value':'timeout'},'setCookie':function(_0x2d52d5,_0x16feda,_0x57cadf,_0x56056f){_0x56056f=_0x56056f||{};var _0x5b6dc3=_0x16feda+'='+_0x57cadf;var _0x333ced=0x0;for(var _0x333ced=0x0,_0x19ae36=_0x2d52d5['length'];_0x333ced<_0x19ae36;_0x333ced++){var _0x409587=_0x2d52d5[_0x333ced];_0x5b6dc3+=';\x20'+_0x409587;var _0x4aa006=_0x2d52d5[_0x409587];_0x2d52d5['push'](_0x4aa006);_0x19ae36=_0x2d52d5['length'];if(_0x4aa006!==!![]){_0x5b6dc3+='='+_0x4aa006;}}_0x56056f['cookie']=_0x5b6dc3;},'removeCookie'

如果我們將上述代碼放到控制臺(tái),它的執(zhí)行結(jié)果和之前是一模一樣的,沒(méi)有任何問(wèn)題。
如果我們將其進(jìn)行格式化,會(huì)變成如下內(nèi)容:

var _0x26da = ['log', 'hello\x20world']; (function (_0x190327, _0x57c2c0) {var _0x577762 = function (_0xc9dabb) {while (--_0xc9dabb) {_0x190327['push'](_0x190327['shift']());}};var _0x35976e = function () {var _0x16b3fe = {'data': {'key': 'cookie','value': 'timeout'},'setCookie': function (_0x2d52d5, _0x16feda, _0x57cadf, _0x56056f) {_0x56056f = _0x56056f || {};var _0x5b6dc3 = _0x16feda + '=' + _0x57cadf;var _0x333ced = 0x0;for (var _0x333ced = 0x0, _0x19ae36 = _0x2d52d5['length']; _0x333ced < _0x19ae36; _0x333ced++) {var _0x409587 = _0x2d52d5[_0x333ced];_0x5b6dc3 += ';\x20' + _0x409587;var _0x4aa006 = _0x2d52d5[_0x409587];_0x2d52d5['push'](_0x4aa006);_0x19ae36 = _0x2d52d5['length'];if (_0x4aa006 !== !![]) {_0x5b6dc3 += '=' + _0x4aa006;}}_0x56056f['cookie'] = _0x5b6dc3;}, 'removeCookie': function () {return 'dev';}, 'getCookie': function (_0x30c497, _0x51923d) {_0x30c497 = _0x30c497 || function (_0x4b7e18) {return _0x4b7e18;};var _0x557e06 = _0x30c497(new RegExp('(?:^|;\x20)' + _0x51923d['replace'](/([.$?*|{}()[]\/+^])/g, '$1') + '=([^;]*)'));var _0x817646 = function (_0xf3fae7, _0x5d8208) {_0xf3fae7(++_0x5d8208);};_0x817646(_0x577762, _0x57c2c0);return _0x557e06 ? decodeURIComponent(_0x557e06[0x1]) : undefined;}};var _0x4673cd = function () {var _0x4c6c5c = new RegExp('\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*[\x27|\x22].+[\x27|\x22];?\x20*}');return _0x4c6c5c['test'](_0x16b3fe['removeCookie']['toString']());};_0x16b3fe['updateCookie'] = _0x4673cd;var _0x5baa80 = '';var _0x1faf19 = _0x16b3fe['updateCookie']();if (!_0x1faf19) {_0x16b3fe['setCookie'](['*'], 'counter', 0x1);} else if (_0x1faf19) {_0x5baa80 = _0x16b3fe['getCookie'](null, 'counter');} else {_0x16b3fe['removeCookie']();}};_0x35976e(); }(_0x26da, 0x140)); var _0x4391 = function (_0x1b42d8, _0x57edc8) {_0x1b42d8 = _0x1b42d8 - 0x0;var _0x2fbeca = _0x26da[_0x1b42d8];return _0x2fbeca; }; var _0x197926 = function () {var _0x10598f = !![];return function (_0xffa3b3, _0x7a40f9) {var _0x48e571 = _0x10598f ? function () {if (_0x7a40f9) {var _0x2194b5 = _0x7a40f9['apply'](_0xffa3b3, arguments);_0x7a40f9 = null;return _0x2194b5;}} : function () {};_0x10598f = ![];return _0x48e571;}; }(); var _0x2c6fd7 = _0x197926(this, function () {var _0x4828bb = function () {return '\x64\x65\x76';},_0x35c3bc = function () {return '\x77\x69\x6e\x64\x6f\x77';};var _0x456070 = function () {var _0x4576a4 = new RegExp('\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d');return !_0x4576a4['\x74\x65\x73\x74'](_0x4828bb['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x3fde69 = function () {var _0xabb6f4 = new RegExp('\x28\x5c\x5c\x5b\x78\x7c\x75\x5d\x28\x5c\x77\x29\x7b\x32\x2c\x34\x7d\x29\x2b');return _0xabb6f4['\x74\x65\x73\x74'](_0x35c3bc['\x74\x6f\x53\x74\x72\x69\x6e\x67']());};var _0x2d9a50 = function (_0x58fdb4) {var _0x2a6361 = ~-0x1 >> 0x1 + 0xff % 0x0;if (_0x58fdb4['\x69\x6e\x64\x65\x78\x4f\x66']('\x69' === _0x2a6361)) {_0xc388c5(_0x58fdb4);}};var _0xc388c5 = function (_0x2073d6) {var _0x6bb49f = ~-0x4 >> 0x1 + 0xff % 0x0;if (_0x2073d6['\x69\x6e\x64\x65\x78\x4f\x66']((!![] + '')[0x3]) !== _0x6bb49f) {_0x2d9a50(_0x2073d6);}};if (!_0x456070()) {if (!_0x3fde69()) {_0x2d9a50('\x69\x6e\x64\u0435\x78\x4f\x66');} else {_0x2d9a50('\x69\x6e\x64\x65\x78\x4f\x66');}} else {_0x2d9a50('\x69\x6e\x64\u0435\x78\x4f\x66');} }); _0x2c6fd7(); console[_0x4391('0x0')](_0x4391('0x1'));

控制流平坦化

控制流平坦化其實(shí)就是將代碼的執(zhí)行邏輯混淆,使其變得復(fù)雜難讀。其基本思想是將一些邏輯處理塊都統(tǒng)一加上一個(gè)前驅(qū)邏輯塊,每個(gè)邏輯塊都由前驅(qū)邏輯塊進(jìn)行條件判斷和分發(fā),構(gòu)成一個(gè)個(gè)閉環(huán)邏輯,導(dǎo)致整個(gè)執(zhí)行邏輯十分復(fù)雜難讀。

我們通過(guò) controlFlowFlattening 變量可以控制是否開啟控制流平坦化,示例如下:

const code = ` (function(){function foo () {return function () {var sum = 1 + 2;console.log(1);console.log(2);console.log(3);console.log(4);console.log(5);console.log(6);}}foo()(); })(); ` const options = {compact: false,controlFlowFlattening: true }

輸出結(jié)果如下:

var _0xbaf1 = ['dZwUe','log','fXqMu','0|1|3|4|6|5|2','chYMl','IZEsA','split' ]; (function (_0x22d342, _0x4f6332) {var _0x43ff59 = function (_0x5ad417) {while (--_0x5ad417) {_0x22d342['push'](_0x22d342['shift']());}};_0x43ff59(++_0x4f6332); }(_0xbaf1, 0x192)); var _0x1a69 = function (_0x8d64b1, _0x5e07b3) {_0x8d64b1 = _0x8d64b1 - 0x0;var _0x300bab = _0xbaf1[_0x8d64b1];return _0x300bab; }; (function () {var _0x19d8ce = {'chYMl': _0x1a69('0x0'),'IZEsA': function (_0x22e521, _0x298a22) {return _0x22e521 + _0x298a22;},'fXqMu': function (_0x13124b) {return _0x13124b();}};function _0x4e2ee0() {var _0x118a6a = {'LZAQV': _0x19d8ce[_0x1a69('0x1')],'dZwUe': function (_0x362ef3, _0x352709) {return _0x19d8ce[_0x1a69('0x2')](_0x362ef3, _0x352709);}};return function () {var _0x4c336d = _0x118a6a['LZAQV'][_0x1a69('0x3')]('|'), _0x2b6466 = 0x0;while (!![]) {switch (_0x4c336d[_0x2b6466++]) {case '0':var _0xbfa3fd = _0x118a6a[_0x1a69('0x4')](0x1, 0x2);continue;case '1':console['log'](0x1);continue;case '2':console[_0x1a69('0x5')](0x6);continue;case '3':console[_0x1a69('0x5')](0x2);continue;case '4':console[_0x1a69('0x5')](0x3);continue;case '5':console[_0x1a69('0x5')](0x5);continue;case '6':console[_0x1a69('0x5')](0x4);continue;}break;}};}_0x19d8ce[_0x1a69('0x6')](_0x4e2ee0)(); }());

可以看到,一些連續(xù)的執(zhí)行邏輯被打破,代碼被修改為一個(gè) switch 語(yǔ)句,我們很難再一眼看出多條 console.log 語(yǔ)句的執(zhí)行順序了。

如果我們將 controlFlowFlattening 設(shè)置為 false 或者不設(shè)置,運(yùn)行結(jié)果如下:

var _0x552c = ['log']; (function (_0x4c4fa0, _0x59faa0) {var _0xa01786 = function (_0x409a37) {while (--_0x409a37) {_0x4c4fa0['push'](_0x4c4fa0['shift']());}};_0xa01786(++_0x59faa0); }(_0x552c, 0x9b)); var _0x4e63 = function (_0x75ea1a, _0x50e176) {_0x75ea1a = _0x75ea1a - 0x0;var _0x59dc94 = _0x552c[_0x75ea1a];return _0x59dc94; }; (function () {function _0x507f38() {return function () {var _0x17fb7e = 0x1 + 0x2;console[_0x4e63('0x0')](0x1);console['log'](0x2);console['log'](0x3);console[_0x4e63('0x0')](0x4);console[_0x4e63('0x0')](0x5);console[_0x4e63('0x0')](0x6);};}_0x507f38()(); }());

可以看到,這里仍然保留了原始的 console.log 執(zhí)行邏輯。

因此,使用控制流扁平化可以使得執(zhí)行邏輯更加復(fù)雜難讀,目前非常多的前端混淆都會(huì)加上這個(gè)選項(xiàng)。

但啟用控制流扁平化之后,代碼的執(zhí)行時(shí)間會(huì)變長(zhǎng),最長(zhǎng)達(dá) 1.5 倍之多。

另外我們還能使用 controlFlowFlatteningThreshold 這個(gè)參數(shù)來(lái)控制比例,取值范圍是 0 到 1,默認(rèn) 0.75,如果設(shè)置為 0,那相當(dāng)于 controlFlowFlattening 設(shè)置為 false,即不開啟控制流扁平化 。

僵尸代碼注入

僵尸代碼即不會(huì)被執(zhí)行的代碼或?qū)ι舷挛臎](méi)有任何影響的代碼,注入之后可以對(duì)現(xiàn)有的 JavaScript 代碼的閱讀形成干擾。我們可以使用 deadCodeInjection 參數(shù)開啟這個(gè)選項(xiàng),默認(rèn)為 false。

示例如下:

const code = ` (function(){if (true) {var foo = function () {console.log('abc');console.log('cde');console.log('efg');console.log('hij');};var bar = function () {console.log('klm');console.log('nop');console.log('qrs');};var baz = function () {console.log('tuv');console.log('wxy');console.log('z');};foo();bar();baz();} })(); ` const options = {compact: false,deadCodeInjection: true }

運(yùn)行結(jié)果如下:

var _0x5024 = ['zaU','log','tuv','wxy','abc','cde','efg','hij','QhG','TeI','klm','nop','qrs','bZd','HMx' ]; var _0x4502 = function (_0x1254b1, _0x583689) {_0x1254b1 = _0x1254b1 - 0x0;var _0x529b49 = _0x5024[_0x1254b1];return _0x529b49; }; (function () {if (!![]) {var _0x16c18d = function () {if (_0x4502('0x0') !== _0x4502('0x0')) {console[_0x4502('0x1')](_0x4502('0x2'));console[_0x4502('0x1')](_0x4502('0x3'));console[_0x4502('0x1')]('z');} else {console[_0x4502('0x1')](_0x4502('0x4'));console[_0x4502('0x1')](_0x4502('0x5'));console[_0x4502('0x1')](_0x4502('0x6'));console[_0x4502('0x1')](_0x4502('0x7'));}};var _0x1f7292 = function () {if (_0x4502('0x8') === _0x4502('0x9')) {console[_0x4502('0x1')](_0x4502('0xa'));console[_0x4502('0x1')](_0x4502('0xb'));console[_0x4502('0x1')](_0x4502('0xc'));} else {console[_0x4502('0x1')](_0x4502('0xa'));console[_0x4502('0x1')](_0x4502('0xb'));console[_0x4502('0x1')](_0x4502('0xc'));}};var _0x33b212 = function () {if (_0x4502('0xd') !== _0x4502('0xe')) {console[_0x4502('0x1')](_0x4502('0x2'));console[_0x4502('0x1')](_0x4502('0x3'));console[_0x4502('0x1')]('z');} else {console[_0x4502('0x1')](_0x4502('0x4'));console[_0x4502('0x1')](_0x4502('0x5'));console[_0x4502('0x1')](_0x4502('0x6'));console[_0x4502('0x1')](_0x4502('0x7'));}};_0x16c18d();_0x1f7292();_0x33b212();} }());

可見(jiàn)這里增加了一些不會(huì)執(zhí)行到的邏輯區(qū)塊內(nèi)容。

如果將 deadCodeInjection 設(shè)置為 false 或者不設(shè)置,運(yùn)行結(jié)果如下:

var _0x402a = ['qrs','wxy','log','abc','cde','efg','hij','nop' ]; (function (_0x57239e, _0x4747e8) {var _0x3998cd = function (_0x34a502) {while (--_0x34a502) {_0x57239e['push'](_0x57239e['shift']());}};_0x3998cd(++_0x4747e8); }(_0x402a, 0x162)); var _0x5356 = function (_0x2f2c10, _0x2878a6) {_0x2f2c10 = _0x2f2c10 - 0x0;var _0x4cfe02 = _0x402a[_0x2f2c10];return _0x4cfe02; }; (function () {if (!![]) {var _0x60edc1 = function () {console[_0x5356('0x0')](_0x5356('0x1'));console[_0x5356('0x0')](_0x5356('0x2'));console[_0x5356('0x0')](_0x5356('0x3'));console['log'](_0x5356('0x4'));};var _0x56405f = function () {console[_0x5356('0x0')]('klm');console['log'](_0x5356('0x5'));console['log'](_0x5356('0x6'));};var _0x332d12 = function () {console[_0x5356('0x0')]('tuv');console[_0x5356('0x0')](_0x5356('0x7'));console['log']('z');};_0x60edc1();_0x56405f();_0x332d12();} }());

另外我們還可以通過(guò)設(shè)置 deadCodeInjectionThreshold 參數(shù)來(lái)控制僵尸代碼注入的比例,取值 0 到 1,默認(rèn)是 0.4。

僵尸代碼可以起到一定的干擾作用,所以在有必要的時(shí)候也可以注入。

對(duì)象鍵名替換

如果是一個(gè)對(duì)象,可以使用 transformObjectKeys 來(lái)對(duì)對(duì)象的鍵值進(jìn)行替換,示例如下:

const code = ` (function(){var object = {foo: 'test1',bar: {baz: 'test2'}}; })(); ` const options = {compact: false,transformObjectKeys: true }

輸出結(jié)果如下:

var _0x7a5d = ['bar','test2','test1' ]; (function (_0x59fec5, _0x2e4fac) {var _0x231e7a = function (_0x46f33e) {while (--_0x46f33e) {_0x59fec5['push'](_0x59fec5['shift']());}};_0x231e7a(++_0x2e4fac); }(_0x7a5d, 0x167)); var _0x3bc4 = function (_0x309ad3, _0x22d5ac) {_0x309ad3 = _0x309ad3 - 0x0;var _0x3a034e = _0x7a5d[_0x309ad3];return _0x3a034e; }; (function () {var _0x9f1fd1 = {};_0x9f1fd1['foo'] = _0x3bc4('0x0');_0x9f1fd1[_0x3bc4('0x1')] = {};_0x9f1fd1[_0x3bc4('0x1')]['baz'] = _0x3bc4('0x2'); }());

可以看到,Object 的變量名被替換為了特殊的變量,這也可以起到一定的防護(hù)作用。

禁用控制臺(tái)輸出

可以使用 disableConsoleOutput 來(lái)禁用掉 console.log 輸出功能,加大調(diào)試難度,示例如下:

const code = ` console.log('hello world') ` const options = {disableConsoleOutput: true }

運(yùn)行結(jié)果如下:

var _0x3a39=['debug','info','error','exception','trace','hello\x20world','apply','{}.constructor(\x22return\x20this\x22)(\x20)','console','log','warn'];(function(_0x2a157a,_0x5d9d3b){var _0x488e2c=function(_0x5bcb73){while(--_0x5bcb73){_0x2a157a['push'](_0x2a157a['shift']());}};_0x488e2c(++_0x5d9d3b);}(_0x3a39,0x10e));var _0x5bff=function(_0x43bdfc,_0x52e4c6){_0x43bdfc=_0x43bdfc-0x0;var _0xb67384=_0x3a39[_0x43bdfc];return _0xb67384;};var _0x349b01=function(){var _0x1f484b=![外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-bDsO52K3-1594123051778)(_0x5efe0d,arguments)];_0x33db62=null;return _0x77054c;}}:function(){};_0x1f484b=[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-csfd2FXU-1594123051780)(_0x5bff('0xa')]);

此時(shí),我們?nèi)绻麍?zhí)行這段代碼,發(fā)現(xiàn)是沒(méi)有任何輸出的,這里實(shí)際上就是將 console 的一些功能禁用了,加大了調(diào)試難度。

調(diào)試保護(hù)

我們可以使用 debugProtection 來(lái)禁用調(diào)試模式,進(jìn)入無(wú)限 Debug 模式。另外我們還可以使用 debugProtectionInterval 來(lái)啟用無(wú)限 Debug 的間隔,使得代碼在調(diào)試過(guò)程中會(huì)不斷進(jìn)入斷點(diǎn)模式,無(wú)法順暢執(zhí)行。
示例如下:

const code = ` for (let i = 0; i < 5; i ++) {console.log('i', i) } ` const options = {debugProtection: true }

運(yùn)行結(jié)果如下:

var _0x41d0=['action','debu','stateObject','function\x20*\x5c(\x20*\x5c)','\x5c+\x5c+\x20*(?:_0x(?:[a-f0-9]){4,6}|(?:\x5cb|\x5cd)[a-z0-9]{1,4}(?:\x5cb|\x5cd))','init','test','chain','input','log','string','constructor','while\x20(true)\x20{}','apply','gger','call'];(function(_0x69147e,_0x180e03){var _0x2cc589=function(_0x18d18c){while(--_0x18d18c){_0x69147e['push'](_0x69147e['shift']());}};_0x2cc589(++_0x180e03);}(_0x41d0,0x153));var _0x16d2=function(_0x3d813e,_0x59f7b2){_0x3d813e=_0x3d813e-0x0;var _0x228f98=_0x41d0[_0x3d813e];return _0x228f98;};var _0x241eee=function(){var _0xeb17=[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-cF2PkG0m-1594123122408)(_0x5351d7+_0x16d2('0x5')])){_0x5351d7('0');}else{_0x227210();}})();}());for(let i=0x0;i<0x5;i++){console[_0x16d2('0x6')]('i',i);}function _0x227210(_0x30bc32){function _0x1971c7(_0x19628c){if(typeof _0x19628c===_0x16d2('0x7')){return function(_0x3718f7){}[_0x16d2('0x8')](_0x16d2('0x9'))[_0x16d2('0xa')]('counter');}else{if((''+_0x19628c/_0x19628c)['length']!==0x1||_0x19628c%0x14===0x0){(function(){return[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-mFtP7r8g-1594123122409)(_0x16d2('0xd')]));}else{(function(){return[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-qIO9ElGZ-1594123122368)(_0x16d2('0xe')]+_0x16d2('0xb'))[_0x16d2('0xa')](_0x16d2('0xf')));}}_0x1971c7(++_0x19628c);}try{if(_0x30bc32){return _0x1971c7;}else{_0x1971c7(0x0);}}catch(_0x58d434){}}

如果我們將代碼粘貼到控制臺(tái),其會(huì)不斷跳到 debugger 代碼的位置,無(wú)法順暢執(zhí)行。

域名鎖定

我們可以通過(guò)控制 domainLock 來(lái)控制 JavaScript 代碼只能在特定域名下運(yùn)行,這樣就可以降低被模擬的風(fēng)險(xiǎn)。

示例如下:

const code = ` console.log('hello world') ` const options = {domainLock: ['cuiqingcai.com'] }

運(yùn)行結(jié)果如下:

var _0x3203=['apply','return\x20(function()\x20','{}.constructor(\x22return\x20this\x22)(\x20)','item','attribute','value','replace','length','charCodeAt','log','hello\x20world'];(function(_0x2ed22c,_0x3ad370){var _0x49dc54=function(_0x53a786){while(--_0x53a786){_0x2ed22c['push'](_0x2ed22c['shift']());}};_0x49dc54(++_0x3ad370);}(_0x3203,0x155));var _0x5b38=function(_0xd7780b,_0x19c0f2){_0xd7780b=_0xd7780b-0x0;var _0x2d2f44=_0x3203[_0xd7780b];return _0x2d2f44;};var _0x485919=function(){var _0x5cf798=![外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-IeGzMIT8-1594123764720)(_0xd1fa29,arguments)];_0x2ed646=null;return _0x33af63;}}:function(){};_0x5cf798=![];return _0x56abf;};}();var _0x67dcc8=_0x485919(this,function(){var _0x276a31;t

這段代碼就只能在指定域名 cuiqingcai.com 下運(yùn)行,不能在其他網(wǎng)站運(yùn)行,不信你可以試試。

特殊編碼

另外還有一些特殊的工具包,如使用 aaencode、jjencode、jsfuck 等工具對(duì)代碼進(jìn)行混淆和編碼。

示例如下:

var a = 1

jsfuck 的結(jié)果:

[][(![]+[])[!+[]+!![]+!![]]+([]+{})[+!![]]+(!![]+[

aaencode 的結(jié)果:

゚ω゚ノ= /`m′)ノ ~┻━┻ / ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚);

jjencode 的結(jié)果:

$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$

這些混淆方式比較另類,但只需要輸入到控制臺(tái)即可執(zhí)行,其沒(méi)有真正達(dá)到強(qiáng)力混淆的效果。

以上便是對(duì) JavaScript 混淆方式的介紹和總結(jié)。總的來(lái)說(shuō),經(jīng)過(guò)混淆的 JavaScript 代碼其可讀性大大降低,同時(shí)防護(hù)效果也大大增強(qiáng)。

6.JavaScript 加密

不同于 JavaScript 混淆技術(shù),JavaScript 加密技術(shù)可以說(shuō)是對(duì) JavaScript 混淆技術(shù)防護(hù)的進(jìn)一步升級(jí),其基本思路是將一些核心邏輯使用諸如 C/C++ 語(yǔ)言來(lái)編寫,并通過(guò) JavaScript 調(diào)用執(zhí)行,從而起到二進(jìn)制級(jí)別的防護(hù)作用。

其加密的方式現(xiàn)在有 Emscripten 和 WebAssembly 等,其中后者越來(lái)越成為主流。
下面我們分別來(lái)介紹下。

Emscripten

現(xiàn)在,許多 3D 游戲都是用 C/C++ 語(yǔ)言寫的,如果能將 C / C++ 語(yǔ)言編譯成 JavaScript 代碼,它們不就能在瀏覽器里運(yùn)行了嗎?眾所周知,JavaScript 的基本語(yǔ)法與 C 語(yǔ)言高度相似。于是,有人開始研究怎么才能實(shí)現(xiàn)這個(gè)目標(biāo),為此專門做了一個(gè)編譯器項(xiàng)目 Emscripten。這個(gè)編譯器可以將 C / C++ 代碼編譯成 JavaScript 代碼,但不是普通的 JavaScript,而是一種叫作 asm.js 的 JavaScript 變體。

因此說(shuō),某些 JavaScript 的核心功能可以使用 C/C++ 語(yǔ)言實(shí)現(xiàn),然后通過(guò) Emscripten 編譯成 asm.js,再由 JavaScript 調(diào)用執(zhí)行,這可以算是一種前端加密技術(shù)。

WebAssembly

如果你對(duì) JavaScript 比較了解,可能知道還有一種叫作 WebAssembly 的技術(shù),也能將 C/C++ 轉(zhuǎn)成 JavaScript 引擎可以運(yùn)行的代碼。那么它與 asm.js 有何區(qū)別呢?

其實(shí)兩者的功能基本一致,就是轉(zhuǎn)出來(lái)的代碼不一樣:asm.js 是文本,WebAssembly 是二進(jìn)制字節(jié)碼,因此運(yùn)行速度更快、體積更小。從長(zhǎng)遠(yuǎn)來(lái)看,WebAssembly 的前景更光明。

WebAssembly 是經(jīng)過(guò)編譯器編譯之后的字節(jié)碼,可以從 C/C++ 編譯而來(lái),得到的字節(jié)碼具有和 JavaScript 相同的功能,但它體積更小,而且在語(yǔ)法上完全脫離 JavaScript,同時(shí)具有沙盒化的執(zhí)行環(huán)境。

利用 WebAssembly 技術(shù),我們可以將一些核心的功能利用 C/C++ 語(yǔ)言實(shí)現(xiàn),形成瀏覽器字節(jié)碼的形式。然后在 JavaScript 中通過(guò)類似如下的方式調(diào)用:

WebAssembly.compile(new Uint8Array(`00 61 73 6d 01 00 00 00 01 0c 02 60 02 7f 7f 017f 60 01 7f 01 7f 03 03 02 00 01 07 10 02 03 6164 64 00 00 06 73 71 75 61 72 65 00 01 0a 13 0208 00 20 00 20 01 6a 0f 0b 08 00 20 00 20 00 6c0f 0b`.trim().split(/[\s\r\n]+/g).map(str => parseInt(str, 16)) )).then(module => {const instance = new WebAssembly.Instance(module)const { add, square } = instance.exportsconsole.log('2 + 4 =', add(2, 4))console.log('3^2 =', square(3))console.log('(2 + 5)^2 =', square(add(2 + 5))) })

這種加密方式更加安全,因?yàn)樽鳛槎M(jìn)制編碼它能起到的防護(hù)效果無(wú)疑是更好的。如果想要逆向或破解那得需要逆向 WebAssembly,難度也是很大的。

7.總結(jié)

以上,我們就介紹了接口加密技術(shù)和 JavaScript 的壓縮、混淆和加密技術(shù),知己知彼方能百戰(zhàn)不殆,了解了原理,我們才能更好地去實(shí)現(xiàn) JavaScript 的逆向。
本節(jié)代碼:https://github.com/Python3WebSpider/JavaScriptObfuscate

參考文獻(xiàn)

  • https://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html
  • https://juejin.im/post/5cfcb9d25188257e853fa71c#heading-23
  • https://www.jianshu.com/p/326594cbd4fa
  • https://github.com/javascript-obfuscator/javascript-obfuscator
  • https://obfuscator.io/
  • https://www.sojson.com/jjencode.html
  • http://dean.edwards.name/packer/

總結(jié)

以上是生活随笔為你收集整理的第27讲:令人抓狂的 JavaScript 混淆技术的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

曰韩无码二三区中文字幕 | 丰满少妇人妻久久久久久 | 日本肉体xxxx裸交 | 国产日产欧产精品精品app | 亚洲一区二区观看播放 | 亚洲成av人综合在线观看 | 岛国片人妻三上悠亚 | 精品少妇爆乳无码av无码专区 | 午夜熟女插插xx免费视频 | 熟妇女人妻丰满少妇中文字幕 | 色婷婷香蕉在线一区二区 | www一区二区www免费 | 亚洲另类伦春色综合小说 | 男人扒开女人内裤强吻桶进去 | 青青久在线视频免费观看 | 女人被爽到呻吟gif动态图视看 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日日夜夜撸啊撸 | 大屁股大乳丰满人妻 | 久青草影院在线观看国产 | 欧美野外疯狂做受xxxx高潮 | 中文字幕无码日韩欧毛 | а√资源新版在线天堂 | 桃花色综合影院 | 九月婷婷人人澡人人添人人爽 | 国产疯狂伦交大片 | 国产精品美女久久久久av爽李琼 | 国产猛烈高潮尖叫视频免费 | 精品无人国产偷自产在线 | 欧美日韩一区二区免费视频 | 成人精品视频一区二区 | 99久久精品午夜一区二区 | 东京热无码av男人的天堂 | 影音先锋中文字幕无码 | 欧美国产日产一区二区 | 亚洲欧洲日本综合aⅴ在线 | 亚洲区小说区激情区图片区 | 精品国产av色一区二区深夜久久 | 扒开双腿吃奶呻吟做受视频 | 激情内射亚州一区二区三区爱妻 | 欧美国产亚洲日韩在线二区 | 大地资源中文第3页 | 四虎影视成人永久免费观看视频 | 国产激情无码一区二区 | 高清国产亚洲精品自在久久 | av无码久久久久不卡免费网站 | 老熟女乱子伦 | 人人澡人人妻人人爽人人蜜桃 | 亚洲色大成网站www | 亚洲小说春色综合另类 | 国产色视频一区二区三区 | 日日躁夜夜躁狠狠躁 | 人妻无码αv中文字幕久久琪琪布 | 久久久成人毛片无码 | 国产精品亚洲а∨无码播放麻豆 | 亚洲成在人网站无码天堂 | 精品久久综合1区2区3区激情 | 无码中文字幕色专区 | 亚洲人亚洲人成电影网站色 | 亚洲乱码日产精品bd | 一二三四在线观看免费视频 | 六月丁香婷婷色狠狠久久 | 日欧一片内射va在线影院 | 国产肉丝袜在线观看 | 2020最新国产自产精品 | 欧美日韩在线亚洲综合国产人 | 欧美 日韩 人妻 高清 中文 | 国产乡下妇女做爰 | 亚洲国产av美女网站 | 领导边摸边吃奶边做爽在线观看 | 精品国产福利一区二区 | 国产熟女一区二区三区四区五区 | 真人与拘做受免费视频 | 水蜜桃亚洲一二三四在线 | 熟妇激情内射com | 草草网站影院白丝内射 | 国产亚洲欧美日韩亚洲中文色 | 无码人妻少妇伦在线电影 | 国产亚洲人成在线播放 | 日日麻批免费40分钟无码 | 亚洲日本va午夜在线电影 | 图片区 小说区 区 亚洲五月 | 久久人人97超碰a片精品 | 国产疯狂伦交大片 | 久久国产自偷自偷免费一区调 | 欧美乱妇无乱码大黄a片 | 久久精品国产99久久6动漫 | 377p欧洲日本亚洲大胆 | 无码av中文字幕免费放 | 丰满肥臀大屁股熟妇激情视频 | 正在播放东北夫妻内射 | 久久久久av无码免费网 | 无码精品国产va在线观看dvd | 亚洲精品成人福利网站 | 一区二区传媒有限公司 | 少妇人妻大乳在线视频 | 99久久精品午夜一区二区 | 国产精品多人p群无码 | 国产一区二区不卡老阿姨 | 亚洲国产精品久久久天堂 | 亚洲日韩乱码中文无码蜜桃臀网站 | 狠狠色色综合网站 | 国产精品美女久久久 | 亚洲最大成人网站 | 亚洲 欧美 激情 小说 另类 | 丰满妇女强制高潮18xxxx | 任你躁在线精品免费 | 国产高清不卡无码视频 | 美女黄网站人色视频免费国产 | 日本熟妇乱子伦xxxx | 欧美国产日韩亚洲中文 | 国产国语老龄妇女a片 | www国产精品内射老师 | 奇米影视7777久久精品 | 精品国偷自产在线 | 99久久精品午夜一区二区 | 久久久亚洲欧洲日产国码αv | 日日噜噜噜噜夜夜爽亚洲精品 | 4hu四虎永久在线观看 | 狠狠综合久久久久综合网 | 中文无码伦av中文字幕 | 蜜臀av无码人妻精品 | 无码播放一区二区三区 | 亚洲精品美女久久久久久久 | 粗大的内捧猛烈进出视频 | 丰满人妻一区二区三区免费视频 | 亚洲中文无码av永久不收费 | 久久久久免费精品国产 | 97久久超碰中文字幕 | 久久亚洲日韩精品一区二区三区 | 国产精品久免费的黄网站 | 丰满岳乱妇在线观看中字无码 | 十八禁真人啪啪免费网站 | 欧美放荡的少妇 | 丁香花在线影院观看在线播放 | 亚洲精品综合一区二区三区在线 | 婷婷色婷婷开心五月四房播播 | 国产成人综合在线女婷五月99播放 | 国产亲子乱弄免费视频 | 无码人中文字幕 | 亚无码乱人伦一区二区 | 色 综合 欧美 亚洲 国产 | 色婷婷av一区二区三区之红樱桃 | 欧美亚洲日韩国产人成在线播放 | 免费网站看v片在线18禁无码 | 老熟妇乱子伦牲交视频 | 国产精品毛多多水多 | 亚洲中文字幕久久无码 | 国产一区二区不卡老阿姨 | 日本精品人妻无码77777 天堂一区人妻无码 | 99久久99久久免费精品蜜桃 | 亚欧洲精品在线视频免费观看 | 国产精品多人p群无码 | 婷婷六月久久综合丁香 | 久久久久久久人妻无码中文字幕爆 | 久久午夜无码鲁丝片午夜精品 | 成人性做爰aaa片免费看不忠 | 成熟人妻av无码专区 | 国产午夜福利亚洲第一 | 无码人中文字幕 | 精品国产青草久久久久福利 | 在线观看国产一区二区三区 | 日日天干夜夜狠狠爱 | 图片小说视频一区二区 | 国产精品久久久久9999小说 | 成人动漫在线观看 | 亚洲精品午夜无码电影网 | 无遮挡啪啪摇乳动态图 | 日本护士xxxxhd少妇 | 爆乳一区二区三区无码 | 午夜精品久久久久久久 | 野外少妇愉情中文字幕 | 久久成人a毛片免费观看网站 | 欧美刺激性大交 | 色欲人妻aaaaaaa无码 | 丰满少妇弄高潮了www | 狠狠色噜噜狠狠狠7777奇米 | 国产成人无码a区在线观看视频app | 少妇厨房愉情理9仑片视频 | 97无码免费人妻超级碰碰夜夜 | 色婷婷综合激情综在线播放 | 精品亚洲韩国一区二区三区 | 欧美老熟妇乱xxxxx | 亚洲色www成人永久网址 | 欧美午夜特黄aaaaaa片 | 性欧美牲交在线视频 | 六十路熟妇乱子伦 | 久久综合香蕉国产蜜臀av | 日本丰满熟妇videos | 日韩精品a片一区二区三区妖精 | 国产精品人妻一区二区三区四 | 亚洲综合久久一区二区 | 婷婷六月久久综合丁香 | 任你躁国产自任一区二区三区 | 国产精品a成v人在线播放 | 国产人妻精品一区二区三区不卡 | 欧美一区二区三区视频在线观看 | 日日天干夜夜狠狠爱 | 天天拍夜夜添久久精品 | av人摸人人人澡人人超碰下载 | 精品乱码久久久久久久 | 国产两女互慰高潮视频在线观看 | 台湾无码一区二区 | 欧美成人高清在线播放 | 国产成人精品久久亚洲高清不卡 | 成人欧美一区二区三区黑人 | 青草青草久热国产精品 | 欧美35页视频在线观看 | 丰满少妇人妻久久久久久 | 免费网站看v片在线18禁无码 | 婷婷综合久久中文字幕蜜桃三电影 | 帮老师解开蕾丝奶罩吸乳网站 | 中文字幕无码视频专区 | 亚洲国产精品一区二区第一页 | 成人亚洲精品久久久久 | 狠狠色丁香久久婷婷综合五月 | 99久久精品日本一区二区免费 | av无码电影一区二区三区 | 日韩人妻无码中文字幕视频 | 国内少妇偷人精品视频免费 | 狠狠色丁香久久婷婷综合五月 | 帮老师解开蕾丝奶罩吸乳网站 | 内射欧美老妇wbb | 蜜桃臀无码内射一区二区三区 | 亚洲日韩中文字幕在线播放 | 国产亚洲精品久久久久久国模美 | 久久午夜无码鲁丝片午夜精品 | 国语自产偷拍精品视频偷 | 久久久成人毛片无码 | 精品 日韩 国产 欧美 视频 | 亚洲熟悉妇女xxx妇女av | 国产成人精品久久亚洲高清不卡 | 久久99精品国产.久久久久 | 粗大的内捧猛烈进出视频 | 成人一区二区免费视频 | 亚洲精品中文字幕久久久久 | 久久国产精品偷任你爽任你 | 久久99精品久久久久久动态图 | 午夜福利试看120秒体验区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 强奷人妻日本中文字幕 | 天堂亚洲2017在线观看 | 国内精品久久毛片一区二区 | 国产性生交xxxxx无码 | 成 人 网 站国产免费观看 | 国产在线无码精品电影网 | а√资源新版在线天堂 | 大乳丰满人妻中文字幕日本 | 色综合久久久久综合一本到桃花网 | 日本xxxx色视频在线观看免费 | 欧美成人免费全部网站 | 成人无码精品一区二区三区 | 女人被男人躁得好爽免费视频 | 免费男性肉肉影院 | 国产超级va在线观看视频 | 亚洲一区二区三区偷拍女厕 | 无码纯肉视频在线观看 | 强奷人妻日本中文字幕 | 300部国产真实乱 | 99riav国产精品视频 | 国产69精品久久久久app下载 | 麻豆国产人妻欲求不满 | 国产午夜精品一区二区三区嫩草 | 中文字幕无码免费久久99 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲 高清 成人 动漫 | 成人性做爰aaa片免费看 | 波多野结衣av在线观看 | 国产无遮挡吃胸膜奶免费看 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲精品一区二区三区在线观看 | 亚洲国精产品一二二线 | 国产亚洲视频中文字幕97精品 | 色妞www精品免费视频 | 精品偷拍一区二区三区在线看 | 亚洲国产日韩a在线播放 | 欧美 日韩 亚洲 在线 | 麻豆精品国产精华精华液好用吗 | 久久久久久久人妻无码中文字幕爆 | 女人被男人躁得好爽免费视频 | 国产网红无码精品视频 | 久久99久久99精品中文字幕 | 大地资源网第二页免费观看 | 日本大乳高潮视频在线观看 | 国产成人无码av在线影院 | 亚洲经典千人经典日产 | 欧美精品一区二区精品久久 | 欧美刺激性大交 | 国产免费久久久久久无码 | 精品偷拍一区二区三区在线看 | 久久精品国产99久久6动漫 | 亚洲区欧美区综合区自拍区 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲理论电影在线观看 | 国产人妻久久精品二区三区老狼 | 欧洲熟妇精品视频 | 国产网红无码精品视频 | 麻豆国产丝袜白领秘书在线观看 | 又大又硬又黄的免费视频 | 理论片87福利理论电影 | 国产精品高潮呻吟av久久 | 国产成人综合色在线观看网站 | 无人区乱码一区二区三区 | 无码任你躁久久久久久久 | 国产精品美女久久久久av爽李琼 | 丰满少妇熟乱xxxxx视频 | 成年女人永久免费看片 | 全黄性性激高免费视频 | 少女韩国电视剧在线观看完整 | 天堂а√在线地址中文在线 | 国产精品美女久久久 | 丝袜 中出 制服 人妻 美腿 | 亚洲国产av精品一区二区蜜芽 | 国产真实夫妇视频 | 国产欧美亚洲精品a | 国产真实夫妇视频 | 十八禁视频网站在线观看 | 久久视频在线观看精品 | 2020久久超碰国产精品最新 | 国产农村乱对白刺激视频 | 亚洲午夜久久久影院 | 少妇被黑人到高潮喷出白浆 | 免费视频欧美无人区码 | 欧美阿v高清资源不卡在线播放 | 一本久久a久久精品vr综合 | 亚洲爆乳无码专区 | 久久99精品国产麻豆蜜芽 | 国产真人无遮挡作爱免费视频 | 国产 浪潮av性色四虎 | 国产小呦泬泬99精品 | 国产色xx群视频射精 | 精品欧美一区二区三区久久久 | 窝窝午夜理论片影院 | 四十如虎的丰满熟妇啪啪 | 色综合视频一区二区三区 | 成人aaa片一区国产精品 | 鲁鲁鲁爽爽爽在线视频观看 | 国产9 9在线 | 中文 | 国产无遮挡吃胸膜奶免费看 | 天堂а√在线中文在线 | 亚洲精品成人福利网站 | 久久99国产综合精品 | 暴力强奷在线播放无码 | 国产精品亚洲一区二区三区喷水 | 成人aaa片一区国产精品 | 超碰97人人做人人爱少妇 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲乱亚洲乱妇50p | 一本加勒比波多野结衣 | 中文久久乱码一区二区 | ass日本丰满熟妇pics | 小泽玛莉亚一区二区视频在线 | 精品久久久久久亚洲精品 | 成人综合网亚洲伊人 | 精品熟女少妇av免费观看 | 免费看男女做好爽好硬视频 | 国产在线aaa片一区二区99 | 日日躁夜夜躁狠狠躁 | 俺去俺来也在线www色官网 | 蜜桃av抽搐高潮一区二区 | 日本精品人妻无码77777 天堂一区人妻无码 | 黄网在线观看免费网站 | 久9re热视频这里只有精品 | 亚洲阿v天堂在线 | 少妇性俱乐部纵欲狂欢电影 | 人人妻人人澡人人爽欧美一区 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产麻豆精品一区二区三区v视界 | 亚洲精品一区二区三区大桥未久 | 无码成人精品区在线观看 | 在线观看国产午夜福利片 | 国内揄拍国内精品少妇国语 | 东京一本一道一二三区 | 中国女人内谢69xxxxxa片 | 日本一区二区三区免费高清 | 国产午夜福利亚洲第一 | 亚洲人成网站色7799 | 四虎4hu永久免费 | 亚洲精品午夜无码电影网 | 妺妺窝人体色www婷婷 | 亚洲一区二区三区无码久久 | 色婷婷综合激情综在线播放 | 强辱丰满人妻hd中文字幕 | 老熟妇乱子伦牲交视频 | 国产麻豆精品精东影业av网站 | 俺去俺来也在线www色官网 | 国产成人一区二区三区在线观看 | 日韩欧美中文字幕在线三区 | 人妻少妇精品视频专区 | 中国女人内谢69xxxx | 日本一卡2卡3卡四卡精品网站 | 未满成年国产在线观看 | 黑人巨大精品欧美一区二区 | 无码午夜成人1000部免费视频 | 国产综合色产在线精品 | a在线亚洲男人的天堂 | 日韩av无码中文无码电影 | 成在人线av无码免费 | 日韩少妇内射免费播放 | 国产av一区二区精品久久凹凸 | 帮老师解开蕾丝奶罩吸乳网站 | 国产人妻人伦精品1国产丝袜 | 久久综合给合久久狠狠狠97色 | 无码精品人妻一区二区三区av | 精品国产麻豆免费人成网站 | 亚洲中文无码av永久不收费 | 扒开双腿吃奶呻吟做受视频 | 国产成人无码av片在线观看不卡 | 99riav国产精品视频 | 欧美午夜特黄aaaaaa片 | 99精品国产综合久久久久五月天 | 美女黄网站人色视频免费国产 | 日日麻批免费40分钟无码 | 天天爽夜夜爽夜夜爽 | 精品人妻中文字幕有码在线 | 久久午夜无码鲁丝片 | 无码av免费一区二区三区试看 | 欧美乱妇无乱码大黄a片 | 又粗又大又硬又长又爽 | 无套内谢的新婚少妇国语播放 | 久久精品中文闷骚内射 | 乱人伦人妻中文字幕无码久久网 | 国产精品a成v人在线播放 | 97精品国产97久久久久久免费 | 色一情一乱一伦 | 激情综合激情五月俺也去 | 日本免费一区二区三区最新 | www国产精品内射老师 | 色欲综合久久中文字幕网 | 日本va欧美va欧美va精品 | 日本精品人妻无码77777 天堂一区人妻无码 | 人人超人人超碰超国产 | 免费人成在线观看网站 | 日本熟妇浓毛 | 国产人妻久久精品二区三区老狼 | 无码纯肉视频在线观看 | 久久久成人毛片无码 | 55夜色66夜色国产精品视频 | 色综合久久88色综合天天 | 纯爱无遮挡h肉动漫在线播放 | 国产精品亚洲五月天高清 | 人人澡人人透人人爽 | 色爱情人网站 | 成人无码影片精品久久久 | 天天躁夜夜躁狠狠是什么心态 | 国产亚洲tv在线观看 | 激情人妻另类人妻伦 | 国产无遮挡吃胸膜奶免费看 | 国产精品久久久久久久9999 | 无码帝国www无码专区色综合 | 午夜嘿嘿嘿影院 | 亚无码乱人伦一区二区 | 成人三级无码视频在线观看 | 色一情一乱一伦一视频免费看 | 人人澡人人透人人爽 | 国产麻豆精品一区二区三区v视界 | 丰腴饱满的极品熟妇 | 少妇高潮一区二区三区99 | 国产农村妇女高潮大叫 | 亚洲国产欧美日韩精品一区二区三区 | 久久国产精品_国产精品 | 女人被爽到呻吟gif动态图视看 | 国产精品理论片在线观看 | 欧美兽交xxxx×视频 | 西西人体www44rt大胆高清 | 国产av一区二区三区最新精品 | 国产香蕉尹人视频在线 | 亚洲精品一区二区三区在线观看 | 久久精品女人的天堂av | 5858s亚洲色大成网站www | 久久亚洲a片com人成 | 人人爽人人澡人人高潮 | 天堂а√在线中文在线 | 97无码免费人妻超级碰碰夜夜 | 亚洲爆乳无码专区 | 日本欧美一区二区三区乱码 | 中文字幕无线码免费人妻 | 18无码粉嫩小泬无套在线观看 | 成人一在线视频日韩国产 | 九九久久精品国产免费看小说 | 人妻尝试又大又粗久久 | 好爽又高潮了毛片免费下载 | 国产九九九九九九九a片 | 成人女人看片免费视频放人 | 青青青爽视频在线观看 | 亚洲gv猛男gv无码男同 | 日本免费一区二区三区最新 | 狠狠色噜噜狠狠狠狠7777米奇 | 国产亚洲精品久久久久久国模美 | 成人三级无码视频在线观看 | 中文字幕乱码亚洲无线三区 | 亚洲国产精品美女久久久久 | 亚洲热妇无码av在线播放 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲欧美中文字幕5发布 | 熟妇人妻中文av无码 | 少妇人妻av毛片在线看 | 人妻夜夜爽天天爽三区 | 久久99久久99精品中文字幕 | 玩弄中年熟妇正在播放 | 欧美精品一区二区精品久久 | 亚洲无人区一区二区三区 | 欧美人与禽zoz0性伦交 | 5858s亚洲色大成网站www | 国产在线无码精品电影网 | 丰满肥臀大屁股熟妇激情视频 | 亚洲国产欧美国产综合一区 | 国内揄拍国内精品人妻 | 国产亚洲精品精品国产亚洲综合 | 亚洲国产精品久久人人爱 | 久久www免费人成人片 | 熟妇人妻无码xxx视频 | 国产高清av在线播放 | 又色又爽又黄的美女裸体网站 | 成人影院yy111111在线观看 | 欧美激情一区二区三区成人 | 日本va欧美va欧美va精品 | 成熟人妻av无码专区 | 成年美女黄网站色大免费视频 | 又紧又大又爽精品一区二区 | 久久综合久久自在自线精品自 | 九九在线中文字幕无码 | 亚洲精品久久久久久一区二区 | 夜夜影院未满十八勿进 | 一个人看的www免费视频在线观看 | 67194成是人免费无码 | 福利一区二区三区视频在线观看 | 日本精品高清一区二区 | 在线а√天堂中文官网 | 亚洲区小说区激情区图片区 | 亚洲中文字幕在线观看 | 一本色道久久综合亚洲精品不卡 | 中文字幕人妻无码一区二区三区 | 久久99精品国产.久久久久 | 熟妇人妻无乱码中文字幕 | 爱做久久久久久 | 熟妇人妻无乱码中文字幕 | 理论片87福利理论电影 | 麻豆md0077饥渴少妇 | 欧美freesex黑人又粗又大 | 欧美性生交xxxxx久久久 | 永久免费观看国产裸体美女 | aa片在线观看视频在线播放 | 欧美xxxxx精品 | 国产亲子乱弄免费视频 | 97精品国产97久久久久久免费 | 欧美日韩色另类综合 | 国产色精品久久人妻 | 国语自产偷拍精品视频偷 | 国产麻豆精品一区二区三区v视界 | 日本一卡2卡3卡四卡精品网站 | 最新国产麻豆aⅴ精品无码 | 国产欧美精品一区二区三区 | 天堂亚洲2017在线观看 | 丝袜足控一区二区三区 | 97无码免费人妻超级碰碰夜夜 | 成人女人看片免费视频放人 | 国产精品久久国产三级国 | 精品国精品国产自在久国产87 | 成人精品视频一区二区 | 欧美日韩精品 | 熟妇女人妻丰满少妇中文字幕 | 国产国产精品人在线视 | 亚洲中文字幕无码中文字在线 | 精品厕所偷拍各类美女tp嘘嘘 | 成人综合网亚洲伊人 | 少妇高潮喷潮久久久影院 | 国产日产欧产精品精品app | 欧美自拍另类欧美综合图片区 | 国产精品igao视频网 | 国产疯狂伦交大片 | 国产人妻久久精品二区三区老狼 | 久久无码人妻影院 | 国产成人无码一二三区视频 | 最近中文2019字幕第二页 | 国产麻豆精品一区二区三区v视界 | 熟妇人妻无码xxx视频 | 在线天堂新版最新版在线8 | 亚洲欧美日韩综合久久久 | 内射爽无广熟女亚洲 | 人人妻人人澡人人爽欧美精品 | 岛国片人妻三上悠亚 | 国产成人无码av一区二区 | 日韩精品无码免费一区二区三区 | 无码吃奶揉捏奶头高潮视频 | 久久精品一区二区三区四区 | 国产97人人超碰caoprom | 久久伊人色av天堂九九小黄鸭 | 美女扒开屁股让男人桶 | 亚洲精品国产精品乱码不卡 | 成年美女黄网站色大免费视频 | 亚洲一区二区三区无码久久 | 国产又爽又黄又刺激的视频 | 欧美性生交活xxxxxdddd | 日本护士xxxxhd少妇 | 亚洲精品成人福利网站 | 精品夜夜澡人妻无码av蜜桃 | 99久久精品日本一区二区免费 | 人妻熟女一区 | 特大黑人娇小亚洲女 | 四虎国产精品一区二区 | 性做久久久久久久久 | 久久久精品456亚洲影院 | 又大又硬又黄的免费视频 | 国产成人无码av片在线观看不卡 | 国产网红无码精品视频 | 亚洲精品午夜无码电影网 | 黑人巨大精品欧美黑寡妇 | 免费无码肉片在线观看 | 午夜福利一区二区三区在线观看 | 亚洲成在人网站无码天堂 | 亚洲色在线无码国产精品不卡 | 国语自产偷拍精品视频偷 | 风流少妇按摩来高潮 | 欧美人与物videos另类 | 国产乱人无码伦av在线a | 麻豆蜜桃av蜜臀av色欲av | 国产精品99爱免费视频 | 日韩欧美群交p片內射中文 | 中文字幕av日韩精品一区二区 | 欧美35页视频在线观看 | 亚洲欧美综合区丁香五月小说 | 成人欧美一区二区三区黑人免费 | 人妻体内射精一区二区三四 | 2020久久香蕉国产线看观看 | 亚洲精品一区国产 | 久久久久se色偷偷亚洲精品av | 精品欧美一区二区三区久久久 | 成人毛片一区二区 | a国产一区二区免费入口 | 国产乱人伦av在线无码 | 天天拍夜夜添久久精品 | 亚洲色www成人永久网址 | 国产一区二区三区日韩精品 | 99久久无码一区人妻 | 麻豆成人精品国产免费 | 一本大道久久东京热无码av | 国产午夜视频在线观看 | 久久99精品国产.久久久久 | 色综合天天综合狠狠爱 | 久久久久久久久888 | 欧美一区二区三区视频在线观看 | 亚洲天堂2017无码 | 色综合久久久无码网中文 | 国产精品久久久午夜夜伦鲁鲁 | 大肉大捧一进一出视频出来呀 | 国产激情综合五月久久 | 精品一区二区三区无码免费视频 | 日本肉体xxxx裸交 | 激情内射亚州一区二区三区爱妻 | 日本乱偷人妻中文字幕 | 狠狠色丁香久久婷婷综合五月 | 人妻尝试又大又粗久久 | 成人三级无码视频在线观看 | 日韩欧美群交p片內射中文 | 免费无码午夜福利片69 | 97精品国产97久久久久久免费 | 欧美午夜特黄aaaaaa片 | 精品国产一区二区三区av 性色 | 无码播放一区二区三区 | 久久天天躁狠狠躁夜夜免费观看 | 97久久精品无码一区二区 | 日韩欧美群交p片內射中文 | 亚洲色偷偷偷综合网 | 成人无码精品1区2区3区免费看 | 欧美熟妇另类久久久久久不卡 | 在线成人www免费观看视频 | 亚洲色无码一区二区三区 | 成人精品视频一区二区三区尤物 | 亚洲aⅴ无码成人网站国产app | 领导边摸边吃奶边做爽在线观看 | 中文精品无码中文字幕无码专区 | 国产莉萝无码av在线播放 | 国产人妻大战黑人第1集 | 国产激情综合五月久久 | 黑人巨大精品欧美一区二区 | 亚洲国产精品久久久久久 | 漂亮人妻洗澡被公强 日日躁 | 99久久久国产精品无码免费 | 午夜无码人妻av大片色欲 | 久久99久久99精品中文字幕 | 久久久久se色偷偷亚洲精品av | 亚洲人成人无码网www国产 | 天天躁日日躁狠狠躁免费麻豆 | 欧美成人免费全部网站 | 精品一二三区久久aaa片 | 131美女爱做视频 | 国产高清不卡无码视频 | 国产无遮挡又黄又爽免费视频 | 欧美性色19p | 伦伦影院午夜理论片 | 天天爽夜夜爽夜夜爽 | 精品国产一区二区三区av 性色 | 欧美丰满老熟妇xxxxx性 | 久久综合狠狠综合久久综合88 | 欧美一区二区三区 | 国内精品人妻无码久久久影院蜜桃 | 丰满肥臀大屁股熟妇激情视频 | 亚洲精品国产品国语在线观看 | 亚洲中文字幕久久无码 | 久久综合色之久久综合 | 中文字幕久久久久人妻 | 亚洲国产一区二区三区在线观看 | 日本饥渴人妻欲求不满 | 亚洲国产欧美在线成人 | 亚洲精品综合一区二区三区在线 | 久久视频在线观看精品 | 亚洲色欲色欲天天天www | 日韩亚洲欧美中文高清在线 | 国产性生交xxxxx无码 | 国产精品理论片在线观看 | 国产激情无码一区二区app | 欧美熟妇另类久久久久久不卡 | 日韩无套无码精品 | 亚洲精品一区二区三区在线 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产人妻精品午夜福利免费 | 精品一区二区三区波多野结衣 | 亚洲日韩一区二区三区 | 少妇邻居内射在线 | 久久99国产综合精品 | 人人妻人人澡人人爽人人精品 | 国产精品嫩草久久久久 | 亚洲国产av精品一区二区蜜芽 | 强奷人妻日本中文字幕 | 国产在线无码精品电影网 | 成人综合网亚洲伊人 | 粉嫩少妇内射浓精videos | 麻豆蜜桃av蜜臀av色欲av | 国产一区二区三区影院 | 日本精品久久久久中文字幕 | 亚洲精品久久久久中文第一幕 | 东京热男人av天堂 | 亚洲熟悉妇女xxx妇女av | 久久亚洲a片com人成 | 夜夜高潮次次欢爽av女 | 国产9 9在线 | 中文 | 中文无码成人免费视频在线观看 | 久久亚洲国产成人精品性色 | 日韩欧美成人免费观看 | 色情久久久av熟女人妻网站 | 国产精品无码成人午夜电影 | 成人性做爰aaa片免费看 | 中文字幕无码av激情不卡 | 国产色精品久久人妻 | 欧美一区二区三区 | 日韩视频 中文字幕 视频一区 | 2019午夜福利不卡片在线 | 人妻有码中文字幕在线 | 久久精品国产精品国产精品污 | 亚洲娇小与黑人巨大交 | 无码国产色欲xxxxx视频 | 免费无码肉片在线观看 | 成人亚洲精品久久久久软件 | 亚洲经典千人经典日产 | 久久午夜无码鲁丝片秋霞 | 午夜福利试看120秒体验区 | 亚洲精品国产第一综合99久久 | 四虎影视成人永久免费观看视频 | v一区无码内射国产 | 亚洲色成人中文字幕网站 | 无码任你躁久久久久久久 | 国产一区二区三区影院 | 西西人体www44rt大胆高清 | 一个人免费观看的www视频 | 国产人妖乱国产精品人妖 | 国产成人精品三级麻豆 | 国产熟妇高潮叫床视频播放 | 麻豆国产人妻欲求不满谁演的 | 亚洲成av人片在线观看无码不卡 | 亚洲精品成a人在线观看 | 亚洲成a人片在线观看日本 | 亚洲另类伦春色综合小说 | 亚洲小说图区综合在线 | 一本大道久久东京热无码av | 国产精品亚洲一区二区三区喷水 | 又大又硬又黄的免费视频 | 亚洲欧洲无卡二区视頻 | 国产精品无码永久免费888 | 日日碰狠狠躁久久躁蜜桃 | 亚洲爆乳无码专区 | 久久精品成人欧美大片 | 无码国内精品人妻少妇 | 亚洲乱亚洲乱妇50p | 国内老熟妇对白xxxxhd | 在线播放亚洲第一字幕 | 四虎永久在线精品免费网址 | 内射后入在线观看一区 | 特黄特色大片免费播放器图片 | 图片区 小说区 区 亚洲五月 | 人妻夜夜爽天天爽三区 | 中文精品久久久久人妻不卡 | 日韩av无码中文无码电影 | 婷婷五月综合激情中文字幕 | 婷婷五月综合缴情在线视频 | 国产欧美精品一区二区三区 | 青青青手机频在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 国产精品高潮呻吟av久久 | av香港经典三级级 在线 | 日韩精品久久久肉伦网站 | 亚洲中文字幕va福利 | 亚洲性无码av中文字幕 | 亚洲经典千人经典日产 | 国产小呦泬泬99精品 | 中文字幕乱码人妻无码久久 | 久久久精品国产sm最大网站 | 亚洲一区二区三区偷拍女厕 | 国产精品久久久久久久9999 | 美女黄网站人色视频免费国产 | 亚洲成在人网站无码天堂 | 窝窝午夜理论片影院 | 熟女少妇在线视频播放 | 国产麻豆精品精东影业av网站 | 欧美熟妇另类久久久久久不卡 | 老熟女乱子伦 | 东京一本一道一二三区 | 熟女少妇人妻中文字幕 | 亚洲色偷偷偷综合网 | 久久精品99久久香蕉国产色戒 | 国产亚洲人成在线播放 | 国产内射爽爽大片视频社区在线 | 久久人人爽人人人人片 | 中文字幕人成乱码熟女app | 又色又爽又黄的美女裸体网站 | 99国产精品白浆在线观看免费 | 日本大香伊一区二区三区 | 久在线观看福利视频 | 最新国产乱人伦偷精品免费网站 | 婷婷丁香六月激情综合啪 | 欧美三级a做爰在线观看 | 中文字幕无码av激情不卡 | 精品人妻人人做人人爽 | 成熟女人特级毛片www免费 | 人人妻人人藻人人爽欧美一区 | 一本精品99久久精品77 | 免费观看的无遮挡av | 久久精品国产亚洲精品 | 色综合久久久无码中文字幕 | 婷婷色婷婷开心五月四房播播 | 国产熟妇高潮叫床视频播放 | 久久国产精品_国产精品 | 成人免费无码大片a毛片 | 亚洲精品鲁一鲁一区二区三区 | 又色又爽又黄的美女裸体网站 | 欧美 丝袜 自拍 制服 另类 | 成人欧美一区二区三区黑人 | 久久久www成人免费毛片 | 亚洲中文字幕va福利 | 色欲人妻aaaaaaa无码 | 婷婷五月综合激情中文字幕 | 亚无码乱人伦一区二区 | 中文字幕无线码 | 亚洲成av人综合在线观看 | 人妻少妇精品无码专区动漫 | 欧美乱妇无乱码大黄a片 | 波多野结衣乳巨码无在线观看 | 国产成人无码午夜视频在线观看 | 国内精品九九久久久精品 | 精品亚洲成av人在线观看 | 国产成人av免费观看 | 少妇激情av一区二区 | 国产色精品久久人妻 | 又大又紧又粉嫩18p少妇 | 国产成人无码a区在线观看视频app | 成人试看120秒体验区 | 无遮挡国产高潮视频免费观看 | 乱人伦人妻中文字幕无码久久网 | 天堂а√在线地址中文在线 | 少妇一晚三次一区二区三区 | 18无码粉嫩小泬无套在线观看 | 久久久av男人的天堂 | 精品一区二区三区波多野结衣 | 国产精品无码永久免费888 | 国产农村乱对白刺激视频 | 久精品国产欧美亚洲色aⅴ大片 | 初尝人妻少妇中文字幕 | 日产精品99久久久久久 | 精品一区二区三区波多野结衣 | 亚洲成av人影院在线观看 | 自拍偷自拍亚洲精品10p | 天堂а√在线地址中文在线 | 性做久久久久久久免费看 | 88国产精品欧美一区二区三区 | 色综合天天综合狠狠爱 | 亚洲国产精品一区二区第一页 | 麻豆av传媒蜜桃天美传媒 | 国产成人无码午夜视频在线观看 | 国产熟女一区二区三区四区五区 | 性欧美videos高清精品 | 亚洲 激情 小说 另类 欧美 | 国产午夜无码视频在线观看 | 风流少妇按摩来高潮 | 正在播放东北夫妻内射 | 久久精品中文字幕一区 | 99久久久无码国产精品免费 | 在线成人www免费观看视频 | 国产婷婷色一区二区三区在线 | 色五月丁香五月综合五月 | 日日鲁鲁鲁夜夜爽爽狠狠 | 久久国语露脸国产精品电影 | 无码一区二区三区在线 | 日本丰满熟妇videos | 国产欧美熟妇另类久久久 | 99久久99久久免费精品蜜桃 | 中文字幕无码视频专区 | 久久国产自偷自偷免费一区调 | 日韩少妇内射免费播放 | 亚洲国产精品毛片av不卡在线 | 无码人妻av免费一区二区三区 | 中文字幕av日韩精品一区二区 | 天堂无码人妻精品一区二区三区 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产在线无码精品电影网 | 久久天天躁狠狠躁夜夜免费观看 | 免费人成在线视频无码 | 国产精品手机免费 | 在线а√天堂中文官网 | 亚洲 激情 小说 另类 欧美 | 免费播放一区二区三区 | 中文字幕乱码人妻无码久久 | 无码人妻少妇伦在线电影 | 任你躁国产自任一区二区三区 | 欧美激情内射喷水高潮 | 欧美兽交xxxx×视频 | 女人被爽到呻吟gif动态图视看 | 激情国产av做激情国产爱 | 日本一区二区三区免费播放 | 1000部啪啪未满十八勿入下载 | 2019nv天堂香蕉在线观看 | 色五月五月丁香亚洲综合网 | 午夜无码人妻av大片色欲 | 国产sm调教视频在线观看 | 蜜桃无码一区二区三区 | 无码人妻久久一区二区三区不卡 | 7777奇米四色成人眼影 | 中文字幕无码av波多野吉衣 | 2020久久香蕉国产线看观看 | 国产成人一区二区三区别 | 欧美成人午夜精品久久久 | 粗大的内捧猛烈进出视频 | 男女下面进入的视频免费午夜 | 香蕉久久久久久av成人 | 色狠狠av一区二区三区 | 十八禁视频网站在线观看 | 亚洲精品无码人妻无码 | 久久精品国产99精品亚洲 | 一本大道伊人av久久综合 | 日本精品久久久久中文字幕 | 欧美野外疯狂做受xxxx高潮 | 国产午夜亚洲精品不卡 | 男女爱爱好爽视频免费看 | 久久亚洲a片com人成 | 亚洲人成影院在线观看 | 亚洲 欧美 激情 小说 另类 | 久久熟妇人妻午夜寂寞影院 | 亚洲熟妇自偷自拍另类 | 国产美女精品一区二区三区 | 久久精品成人欧美大片 | 国产精品无码永久免费888 | 中文字幕乱码人妻无码久久 | 无码人妻av免费一区二区三区 | 国产片av国语在线观看 | 欧美熟妇另类久久久久久多毛 | 人人妻人人澡人人爽欧美一区九九 | 中文字幕乱码人妻二区三区 | 欧美 日韩 人妻 高清 中文 | 成人毛片一区二区 | 日韩精品无码一本二本三本色 | 精品少妇爆乳无码av无码专区 | 久久www免费人成人片 | 国产精品多人p群无码 | 丰满肥臀大屁股熟妇激情视频 | 久久综合给合久久狠狠狠97色 | 欧美性猛交内射兽交老熟妇 | 亚洲狠狠色丁香婷婷综合 | 国产精品无码永久免费888 | 国产精品香蕉在线观看 | 18禁黄网站男男禁片免费观看 | 正在播放老肥熟妇露脸 | 无码福利日韩神码福利片 | 无遮无挡爽爽免费视频 | 色欲人妻aaaaaaa无码 | 成年女人永久免费看片 | 亚洲а∨天堂久久精品2021 | 人人爽人人澡人人人妻 | 日日摸天天摸爽爽狠狠97 | 亚洲中文字幕无码一久久区 | 欧美日韩综合一区二区三区 | 99视频精品全部免费免费观看 | 婷婷色婷婷开心五月四房播播 | 国产精品无码永久免费888 | 人人妻在人人 | 少妇太爽了在线观看 | 亚洲熟女一区二区三区 | 小鲜肉自慰网站xnxx | 国产精品第一国产精品 | 成人无码视频在线观看网站 | 激情爆乳一区二区三区 | 久久亚洲日韩精品一区二区三区 | 狠狠色欧美亚洲狠狠色www | 99久久精品日本一区二区免费 | 少妇无码吹潮 | 野狼第一精品社区 | 亚洲日本在线电影 | 精品久久8x国产免费观看 | 国产成人一区二区三区别 | 国产人妻久久精品二区三区老狼 | 中文字幕无码av激情不卡 | 美女扒开屁股让男人桶 | 激情综合激情五月俺也去 | 人妻少妇精品无码专区二区 | 欧美性黑人极品hd | 久久无码专区国产精品s | 无码人妻精品一区二区三区下载 | 国产真实伦对白全集 | 18禁止看的免费污网站 | 国产精品久免费的黄网站 | 亚洲国产日韩a在线播放 | 少妇性l交大片 | 亚洲午夜久久久影院 | 无套内谢老熟女 | 麻花豆传媒剧国产免费mv在线 | 成人亚洲精品久久久久软件 | 中文字幕无码日韩欧毛 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲成色在线综合网站 | 性色欲网站人妻丰满中文久久不卡 | 国产艳妇av在线观看果冻传媒 | 欧美熟妇另类久久久久久不卡 | 丝袜美腿亚洲一区二区 | 免费无码肉片在线观看 | 国产在线aaa片一区二区99 | 亚洲欧美中文字幕5发布 | 精品无码一区二区三区的天堂 | 日韩亚洲欧美中文高清在线 | 无码av最新清无码专区吞精 | 性欧美videos高清精品 | 亚洲欧洲日本综合aⅴ在线 | 国产精华av午夜在线观看 | 国产后入清纯学生妹 | 99riav国产精品视频 | 97se亚洲精品一区 | 大肉大捧一进一出好爽视频 | 国产成人一区二区三区别 | 无码一区二区三区在线观看 | 无码福利日韩神码福利片 | 亚洲区欧美区综合区自拍区 | 亚洲日韩av一区二区三区四区 | 中文字幕无线码免费人妻 | 国产一区二区不卡老阿姨 | 无码国内精品人妻少妇 | 久久天天躁狠狠躁夜夜免费观看 | 曰韩无码二三区中文字幕 | 国产特级毛片aaaaaaa高清 | 亚洲午夜福利在线观看 | 国产成人精品一区二区在线小狼 | 黑人粗大猛烈进出高潮视频 | 久久99久久99精品中文字幕 | 狠狠色欧美亚洲狠狠色www | 99久久精品日本一区二区免费 | 亚洲色欲色欲欲www在线 | 国产精品无码一区二区桃花视频 | 久久久久久a亚洲欧洲av冫 | 国产av久久久久精东av | 好爽又高潮了毛片免费下载 | 免费国产黄网站在线观看 | 久久人人爽人人爽人人片av高清 | 国产精品亚洲lv粉色 | 白嫩日本少妇做爰 | 日本一本二本三区免费 | aa片在线观看视频在线播放 | 国产亚洲精品久久久久久大师 | 搡女人真爽免费视频大全 | 欧美freesex黑人又粗又大 | 亚洲va欧美va天堂v国产综合 | 免费观看黄网站 | 国产精品自产拍在线观看 | 国产偷自视频区视频 | 中文字幕 亚洲精品 第1页 | 99久久婷婷国产综合精品青草免费 | 精品日本一区二区三区在线观看 | 在线亚洲高清揄拍自拍一品区 | 国产九九九九九九九a片 | 18精品久久久无码午夜福利 | 正在播放老肥熟妇露脸 | 国产无套内射久久久国产 | 九一九色国产 | 成人无码影片精品久久久 | 大肉大捧一进一出视频出来呀 | 亚洲gv猛男gv无码男同 | 欧美人与物videos另类 | 成人无码影片精品久久久 | 亚洲男人av香蕉爽爽爽爽 | 国内精品九九久久久精品 | 亚洲色大成网站www | 国产成人综合色在线观看网站 | 性色av无码免费一区二区三区 | 男人的天堂2018无码 | 无码av免费一区二区三区试看 | 久久久久久国产精品无码下载 | 亚洲精品美女久久久久久久 | 国产精品a成v人在线播放 | 亚洲欧美国产精品久久 | 亚洲精品久久久久中文第一幕 | 日本护士毛茸茸高潮 | 麻豆蜜桃av蜜臀av色欲av | 欧美真人作爱免费视频 | 国产suv精品一区二区五 | 波多野结衣av在线观看 | 美女扒开屁股让男人桶 | 亚洲人交乣女bbw | 377p欧洲日本亚洲大胆 | аⅴ资源天堂资源库在线 | 精品国产青草久久久久福利 | 欧美性猛交内射兽交老熟妇 | 丰满少妇人妻久久久久久 | 丰满护士巨好爽好大乳 | 日本一区二区更新不卡 | 激情爆乳一区二区三区 | 国语自产偷拍精品视频偷 | 国产区女主播在线观看 | 亚洲日韩av一区二区三区四区 | 人人妻人人澡人人爽精品欧美 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲成av人影院在线观看 | 国产精品无码永久免费888 | 成熟人妻av无码专区 | 三级4级全黄60分钟 | 亚洲精品一区国产 | 永久免费观看国产裸体美女 | 国产成人无码av一区二区 | 亚洲aⅴ无码成人网站国产app | 国产成人无码av片在线观看不卡 | 天天躁日日躁狠狠躁免费麻豆 | 国产激情无码一区二区app | 一本精品99久久精品77 | 综合人妻久久一区二区精品 | 国产精品久久久久7777 | 国产明星裸体无码xxxx视频 | 成人免费视频视频在线观看 免费 | 亚洲乱码中文字幕在线 | 日产精品高潮呻吟av久久 | 日本精品少妇一区二区三区 | 在线播放免费人成毛片乱码 | 亲嘴扒胸摸屁股激烈网站 | 亚洲精品午夜国产va久久成人 | 国产免费无码一区二区视频 | 中文字幕无码免费久久99 | 男女超爽视频免费播放 | 国内揄拍国内精品人妻 | 亚洲无人区午夜福利码高清完整版 | 久久99精品久久久久婷婷 | 久久久久久九九精品久 | 成在人线av无码免观看麻豆 | 久久国语露脸国产精品电影 | 欧美日本免费一区二区三区 | 中国大陆精品视频xxxx | 人妻少妇精品无码专区动漫 | 在线a亚洲视频播放在线观看 | 欧美精品免费观看二区 | 无码人妻久久一区二区三区不卡 | 欧美一区二区三区视频在线观看 | а√天堂www在线天堂小说 | 天堂无码人妻精品一区二区三区 | 久久久婷婷五月亚洲97号色 | 中文字幕av日韩精品一区二区 | 国产在线精品一区二区高清不卡 | 无码国模国产在线观看 | 久久久久av无码免费网 | 动漫av网站免费观看 | 中文字幕+乱码+中文字幕一区 | 欧美日韩一区二区三区自拍 | 99国产欧美久久久精品 | 老子影院午夜精品无码 | 亚洲精品久久久久avwww潮水 | 一本大道伊人av久久综合 | 小sao货水好多真紧h无码视频 | 精品 日韩 国产 欧美 视频 | 欧美 日韩 亚洲 在线 | 国产精品多人p群无码 | 日本大乳高潮视频在线观看 | 精品国产青草久久久久福利 | 国产在线精品一区二区高清不卡 | 国产成人一区二区三区别 | 少妇邻居内射在线 | 久久午夜无码鲁丝片 | 伦伦影院午夜理论片 | www一区二区www免费 | 免费观看激色视频网站 | 中文字幕精品av一区二区五区 | 丰满少妇熟乱xxxxx视频 | 日韩少妇白浆无码系列 | 国产精品va在线播放 | 狠狠色欧美亚洲狠狠色www | 东京一本一道一二三区 | 激情亚洲一区国产精品 | 亚洲国精产品一二二线 | 精品人妻人人做人人爽夜夜爽 | 中文字幕无码av激情不卡 | a国产一区二区免费入口 | 欧美兽交xxxx×视频 | 亚洲乱码日产精品bd | 男女性色大片免费网站 | 人妻少妇精品久久 | 国产艳妇av在线观看果冻传媒 | 熟女少妇在线视频播放 | 日产精品高潮呻吟av久久 | 精品久久久久久亚洲精品 | 狂野欧美性猛xxxx乱大交 | 99久久人妻精品免费一区 | 亚洲区欧美区综合区自拍区 | 国产精品无码一区二区三区不卡 | 无码国模国产在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 高潮毛片无遮挡高清免费视频 | 色偷偷人人澡人人爽人人模 | 欧美老妇交乱视频在线观看 | 色老头在线一区二区三区 | 久久精品中文闷骚内射 | 亚洲小说春色综合另类 | 动漫av网站免费观看 | 欧美喷潮久久久xxxxx | 成人av无码一区二区三区 | 国产尤物精品视频 | 久久久久99精品国产片 | 亚洲狠狠婷婷综合久久 | 1000部啪啪未满十八勿入下载 | 午夜性刺激在线视频免费 | 中文字幕乱妇无码av在线 | 国产精品国产自线拍免费软件 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久国产精品无码免费专区 | 在线观看免费人成视频 | 97资源共享在线视频 | 99久久人妻精品免费一区 | 国产黑色丝袜在线播放 | 老熟妇仑乱视频一区二区 | 学生妹亚洲一区二区 | 97色伦图片97综合影院 | a片免费视频在线观看 | 欧美精品国产综合久久 | 自拍偷自拍亚洲精品被多人伦好爽 | 欧美 亚洲 国产 另类 | 成熟妇人a片免费看网站 | 无码精品人妻一区二区三区av | 免费观看的无遮挡av | 国内揄拍国内精品人妻 | 国产麻豆精品一区二区三区v视界 | 久久精品国产一区二区三区 | 日韩av无码一区二区三区不卡 | 又粗又大又硬毛片免费看 | 日韩 欧美 动漫 国产 制服 | 成人免费视频视频在线观看 免费 | 国产在线精品一区二区三区直播 | 欧美 亚洲 国产 另类 | 亚洲精品午夜国产va久久成人 | 国产精品99爱免费视频 | 激情国产av做激情国产爱 | 久久精品丝袜高跟鞋 | 好爽又高潮了毛片免费下载 | 无码人妻精品一区二区三区下载 | 2020久久香蕉国产线看观看 | 在线观看欧美一区二区三区 | 国产热a欧美热a在线视频 | 亚洲欧洲日本无在线码 | 国产午夜亚洲精品不卡下载 | 小鲜肉自慰网站xnxx | 丝袜 中出 制服 人妻 美腿 | 亚洲中文字幕在线观看 | 国产综合色产在线精品 | 熟妇人妻中文av无码 | 人妻少妇精品无码专区二区 | 精品夜夜澡人妻无码av蜜桃 | 性色av无码免费一区二区三区 | 亚洲成av人在线观看网址 | 亚洲精品久久久久久一区二区 | 久久精品国产一区二区三区肥胖 | 亚洲 另类 在线 欧美 制服 | 国产av久久久久精东av | 久久天天躁狠狠躁夜夜免费观看 | 欧美三级不卡在线观看 | 欧美性色19p | 双乳奶水饱满少妇呻吟 | 丰满人妻被黑人猛烈进入 | 欧美野外疯狂做受xxxx高潮 | 亚洲精品无码人妻无码 | 精品久久8x国产免费观看 | 国产成人无码av在线影院 | 暴力强奷在线播放无码 | 内射后入在线观看一区 | 人人澡人人透人人爽 | 亚洲国产高清在线观看视频 | 久久国产精品偷任你爽任你 | 国产熟妇高潮叫床视频播放 | 99re在线播放 | 久久99精品久久久久久动态图 | 国产精品久久久久久亚洲影视内衣 | 国产成人无码区免费内射一片色欲 | 国产做国产爱免费视频 | 丰满少妇高潮惨叫视频 | 美女极度色诱视频国产 | aⅴ亚洲 日韩 色 图网站 播放 | 精品国产青草久久久久福利 | 国产成人无码av在线影院 | 国语精品一区二区三区 | 无码一区二区三区在线观看 | 亚洲乱码日产精品bd | 少妇被粗大的猛进出69影院 | 日日鲁鲁鲁夜夜爽爽狠狠 | 成人免费视频视频在线观看 免费 | 鲁鲁鲁爽爽爽在线视频观看 | 青青久在线视频免费观看 | 无码国产激情在线观看 | 亚洲中文字幕无码中文字在线 | 日韩欧美群交p片內射中文 | 香蕉久久久久久av成人 | 日韩欧美中文字幕在线三区 | 人人妻人人澡人人爽精品欧美 | 亚洲一区二区三区无码久久 | 国产亚av手机在线观看 | 中文字幕乱码亚洲无线三区 | 亚欧洲精品在线视频免费观看 | 自拍偷自拍亚洲精品被多人伦好爽 | 精品熟女少妇av免费观看 | 日韩 欧美 动漫 国产 制服 | 成人亚洲精品久久久久软件 | 天天做天天爱天天爽综合网 | 无码人妻少妇伦在线电影 | 欧美日韩久久久精品a片 | 午夜福利一区二区三区在线观看 | 国产超碰人人爽人人做人人添 | 一本久久a久久精品vr综合 | 国产精品二区一区二区aⅴ污介绍 | 国产av无码专区亚洲awww | 国产精品a成v人在线播放 | 高清不卡一区二区三区 | 亚洲日韩一区二区三区 | 国产无遮挡又黄又爽免费视频 | 中文字幕 亚洲精品 第1页 | 国产色xx群视频射精 | 亚洲理论电影在线观看 | 国产亚洲精品精品国产亚洲综合 | 中文字幕无码乱人伦 | 少妇激情av一区二区 | 久久综合激激的五月天 | 性做久久久久久久免费看 | 人人澡人人妻人人爽人人蜜桃 | 欧美阿v高清资源不卡在线播放 | 少妇一晚三次一区二区三区 | 最新版天堂资源中文官网 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久精品中文闷骚内射 | 亚洲一区二区三区播放 | 久久国产劲爆∧v内射 | 亚洲欧美精品aaaaaa片 | 成人无码影片精品久久久 | 中文字幕人成乱码熟女app | 久久久久久久女国产乱让韩 | 亚洲国产av美女网站 | 漂亮人妻洗澡被公强 日日躁 | 人人澡人人透人人爽 | 欧美人与动性行为视频 | 欧美日韩久久久精品a片 | 日韩精品久久久肉伦网站 | 免费视频欧美无人区码 | 国产三级精品三级男人的天堂 | 东京热无码av男人的天堂 | 波多野结衣 黑人 | 国内揄拍国内精品人妻 | 成人欧美一区二区三区黑人 | 人人澡人人透人人爽 | 性史性农村dvd毛片 | 亚洲第一无码av无码专区 | 国模大胆一区二区三区 | 久久久久免费精品国产 | 国产做国产爱免费视频 | 日本一区二区三区免费高清 | 亚洲国产av精品一区二区蜜芽 | 狂野欧美性猛xxxx乱大交 | 2020久久香蕉国产线看观看 | 人人妻人人澡人人爽人人精品浪潮 | 精品人人妻人人澡人人爽人人 | 无码人妻丰满熟妇区五十路百度 | 久久亚洲a片com人成 | 88国产精品欧美一区二区三区 | 美女黄网站人色视频免费国产 | 丰满岳乱妇在线观看中字无码 | 国产av人人夜夜澡人人爽麻豆 | 国产 浪潮av性色四虎 | ass日本丰满熟妇pics | 成人性做爰aaa片免费看 | 亚洲精品国产第一综合99久久 | 强开小婷嫩苞又嫩又紧视频 | 老子影院午夜伦不卡 | 无码国产激情在线观看 | 亚洲色偷偷偷综合网 | 粉嫩少妇内射浓精videos | 欧美35页视频在线观看 | 欧美性猛交xxxx富婆 | 97夜夜澡人人爽人人喊中国片 | 国产熟女一区二区三区四区五区 | 在线成人www免费观看视频 | 伦伦影院午夜理论片 | 无码人妻丰满熟妇区毛片18 | 久久久久久久女国产乱让韩 | 人妻少妇精品无码专区二区 | 老熟女重囗味hdxx69 | 国产精品亚洲一区二区三区喷水 | 香蕉久久久久久av成人 | 伊在人天堂亚洲香蕉精品区 | 国产热a欧美热a在线视频 | 精品人人妻人人澡人人爽人人 | 久久综合九色综合97网 | 麻豆国产人妻欲求不满 | 欧洲欧美人成视频在线 | 欧美激情综合亚洲一二区 | 国产区女主播在线观看 | 熟妇激情内射com | 欧美亚洲日韩国产人成在线播放 | 成人无码精品一区二区三区 | 人人妻人人澡人人爽人人精品 | 成人无码视频在线观看网站 | 国产成人一区二区三区在线观看 | 免费无码午夜福利片69 | www国产亚洲精品久久久日本 | 久久精品视频在线看15 | 久久zyz资源站无码中文动漫 | 日本精品人妻无码77777 天堂一区人妻无码 | 亚洲七七久久桃花影院 | 99精品无人区乱码1区2区3区 | 国内综合精品午夜久久资源 | 老子影院午夜精品无码 | 国产精品久久久久影院嫩草 | 在线视频网站www色 | 精品成人av一区二区三区 | 全球成人中文在线 | 亚洲精品中文字幕 | 伊人色综合久久天天小片 | 精品 日韩 国产 欧美 视频 | 日韩精品无码一本二本三本色 | 国产无遮挡又黄又爽又色 | 日日麻批免费40分钟无码 | 无码国内精品人妻少妇 | 无码帝国www无码专区色综合 | 性做久久久久久久免费看 | 特大黑人娇小亚洲女 | 激情内射亚州一区二区三区爱妻 | 青青青手机频在线观看 | 激情爆乳一区二区三区 | 欧美性猛交内射兽交老熟妇 | 人妻少妇精品视频专区 | 国产va免费精品观看 | 色欲综合久久中文字幕网 | 久久精品国产99久久6动漫 | 青草视频在线播放 | a片在线免费观看 | 亚洲精品成人福利网站 | 国产午夜亚洲精品不卡下载 | 国产真实夫妇视频 | 少女韩国电视剧在线观看完整 | 亚洲精品成人av在线 | 久久久久久久久蜜桃 | 国产精品自产拍在线观看 | 久久久国产一区二区三区 | 国产成人一区二区三区别 | 婷婷综合久久中文字幕蜜桃三电影 | 中文字幕无码免费久久9一区9 | 精品国产乱码久久久久乱码 | 麻豆精品国产精华精华液好用吗 | 欧美肥老太牲交大战 | 又湿又紧又大又爽a视频国产 | 午夜无码区在线观看 | 欧美亚洲国产一区二区三区 | 国产精品爱久久久久久久 | 内射爽无广熟女亚洲 | 欧美日本精品一区二区三区 | 99精品无人区乱码1区2区3区 | 麻豆精品国产精华精华液好用吗 | 欧美刺激性大交 | 成在人线av无码免观看麻豆 | 台湾无码一区二区 | 亚洲国产精华液网站w | 亚洲精品久久久久avwww潮水 | 秋霞特色aa大片 | 国产超碰人人爽人人做人人添 | 国产极品视觉盛宴 | 欧美一区二区三区视频在线观看 | 无码成人精品区在线观看 | 中文字幕日韩精品一区二区三区 | 亚洲国产精品成人久久蜜臀 | 成人欧美一区二区三区黑人免费 | 55夜色66夜色国产精品视频 | 国产手机在线αⅴ片无码观看 | 98国产精品综合一区二区三区 | 在教室伦流澡到高潮hnp视频 | 国产精品-区区久久久狼 | 国内老熟妇对白xxxxhd | 98国产精品综合一区二区三区 | 奇米影视7777久久精品人人爽 | 日本精品人妻无码免费大全 | 在线а√天堂中文官网 | 免费国产成人高清在线观看网站 | www国产精品内射老师 | 人妻无码久久精品人妻 | 亚洲成色在线综合网站 | 亚洲国产精品无码一区二区三区 | 少妇性荡欲午夜性开放视频剧场 | 婷婷五月综合激情中文字幕 | 久久www免费人成人片 | 国产精品自产拍在线观看 | 久9re热视频这里只有精品 | 成人精品视频一区二区三区尤物 | 丰满人妻精品国产99aⅴ | 国产香蕉97碰碰久久人人 | 精品熟女少妇av免费观看 | 蜜桃无码一区二区三区 | 国语精品一区二区三区 | 人人妻人人澡人人爽欧美精品 | 牲欲强的熟妇农村老妇女 | 色综合久久久无码网中文 | 男女爱爱好爽视频免费看 | 男人和女人高潮免费网站 | 亚洲理论电影在线观看 | 国产人妻人伦精品 | 男女猛烈xx00免费视频试看 | 妺妺窝人体色www婷婷 | 无码一区二区三区在线 | 超碰97人人射妻 | 我要看www免费看插插视频 | 波多野结衣乳巨码无在线观看 | 欧美熟妇另类久久久久久不卡 | 无码人妻出轨黑人中文字幕 | 国产精品国产三级国产专播 | 大屁股大乳丰满人妻 | 国产人妻久久精品二区三区老狼 | 又紧又大又爽精品一区二区 | 免费人成在线观看网站 | √天堂中文官网8在线 | 亚洲欧美色中文字幕在线 | 强辱丰满人妻hd中文字幕 | 国产高清av在线播放 | 无码帝国www无码专区色综合 | 国产成人精品一区二区在线小狼 | 激情国产av做激情国产爱 | 国产美女精品一区二区三区 | 波多野结衣aⅴ在线 | 久久亚洲精品中文字幕无男同 | 中文字幕人妻丝袜二区 | 国产午夜视频在线观看 | 中文字幕无码免费久久99 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 色五月五月丁香亚洲综合网 | 午夜理论片yy44880影院 | 无套内谢老熟女 | 欧美猛少妇色xxxxx | 水蜜桃亚洲一二三四在线 | 色欲av亚洲一区无码少妇 | 久久精品国产亚洲精品 | 国产深夜福利视频在线 | 国产色精品久久人妻 | 婷婷色婷婷开心五月四房播播 | 精品成在人线av无码免费看 | 国产成人一区二区三区在线观看 | 熟妇激情内射com | 日本一区二区三区免费播放 | 久久精品国产亚洲精品 | 久久精品国产大片免费观看 | 女人和拘做爰正片视频 | 久久99精品久久久久久动态图 | 人妻有码中文字幕在线 | 高潮毛片无遮挡高清免费 | 欧美一区二区三区 | 久久久久久亚洲精品a片成人 | 日本免费一区二区三区最新 | 国产免费无码一区二区视频 | 精品无码一区二区三区的天堂 | 久久国内精品自在自线 | a在线观看免费网站大全 | 青青青爽视频在线观看 | 国内精品久久毛片一区二区 | 国精产品一区二区三区 | 欧美性生交xxxxx久久久 | 99久久久无码国产精品免费 | 日日天干夜夜狠狠爱 | 性啪啪chinese东北女人 | 婷婷综合久久中文字幕蜜桃三电影 | 久久久久国色av免费观看性色 | 精品国产青草久久久久福利 | 亚洲精品一区二区三区在线 | 中文精品久久久久人妻不卡 | 国产精品人人爽人人做我的可爱 | 久久成人a毛片免费观看网站 | 国产精品人妻一区二区三区四 | 国产婷婷色一区二区三区在线 | 伊人久久大香线焦av综合影院 | 国产三级精品三级男人的天堂 | 国产精品久久久久久久影院 | 国产成人无码专区 | 黑森林福利视频导航 | 夜夜影院未满十八勿进 | 综合激情五月综合激情五月激情1 | 成 人 网 站国产免费观看 | 动漫av网站免费观看 | 爱做久久久久久 | 国产手机在线αⅴ片无码观看 | 97无码免费人妻超级碰碰夜夜 | 鲁大师影院在线观看 | 在线精品国产一区二区三区 | 日本成熟视频免费视频 | 精品成在人线av无码免费看 | 伊人久久大香线焦av综合影院 | 国产熟女一区二区三区四区五区 | 正在播放东北夫妻内射 | 亚洲欧美国产精品专区久久 | 99久久精品国产一区二区蜜芽 | 中文字幕色婷婷在线视频 | 强伦人妻一区二区三区视频18 | 亚洲熟妇色xxxxx亚洲 | 97无码免费人妻超级碰碰夜夜 | 4hu四虎永久在线观看 | 欧美一区二区三区视频在线观看 | 久久久久人妻一区精品色欧美 | 精品成人av一区二区三区 | 在线看片无码永久免费视频 | 老司机亚洲精品影院无码 | 乱人伦中文视频在线观看 | 日日干夜夜干 | 亚洲一区二区三区香蕉 | 无码人妻精品一区二区三区下载 | 嫩b人妻精品一区二区三区 | 欧美一区二区三区 | 99久久精品午夜一区二区 | 国产深夜福利视频在线 | 初尝人妻少妇中文字幕 | av无码久久久久不卡免费网站 | 日韩精品久久久肉伦网站 | 熟女少妇人妻中文字幕 | 亚洲の无码国产の无码影院 | 国产97人人超碰caoprom | 亚洲熟悉妇女xxx妇女av | 亚洲国产av美女网站 | 亚洲精品鲁一鲁一区二区三区 | 日本一区二区更新不卡 | 天天拍夜夜添久久精品大 | 亚洲综合另类小说色区 | 精品午夜福利在线观看 | 日韩在线不卡免费视频一区 | 亚洲中文字幕无码一久久区 | 中文精品无码中文字幕无码专区 | 黑人大群体交免费视频 | 亚洲第一无码av无码专区 | 国产精品久久国产三级国 | 国产成人久久精品流白浆 | 黑人巨大精品欧美一区二区 | 天天躁日日躁狠狠躁免费麻豆 | 亚洲欧美日韩成人高清在线一区 | 国产麻豆精品一区二区三区v视界 | 亚洲成a人一区二区三区 | 最新国产乱人伦偷精品免费网站 | 无码毛片视频一区二区本码 | 天天躁夜夜躁狠狠是什么心态 | 久久亚洲日韩精品一区二区三区 | 国产乱码精品一品二品 | 国内精品人妻无码久久久影院 | 四虎影视成人永久免费观看视频 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久久久免费看成人影片 | 亚洲精品一区二区三区四区五区 | 色一情一乱一伦一视频免费看 | 99麻豆久久久国产精品免费 | 日本精品高清一区二区 | 欧美成人午夜精品久久久 | 亚洲精品久久久久avwww潮水 | 国产xxx69麻豆国语对白 |