• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Java軟件保護(hù)方案的設(shè)計(jì)和實(shí)現(xiàn)

    2018-12-22 14:46:55龔少麟
    計(jì)算機(jī)時(shí)代 2018年5期
    關(guān)鍵詞:源文件序列號(hào)加密算法

    龔少麟

    (中國電子科技集團(tuán)公司第二十八研究所,江蘇 南京 210007)

    0 引言

    Java是一種跨平臺(tái)的解釋型語言,由于跨平臺(tái)的需求,Java的指令集比較簡單而通用,較容易得出程序的語義信息。Java編譯器將每一個(gè)類編譯成一個(gè)單獨(dú)的文件,這也簡化了反編譯的工作[1]。Java源代碼編譯中間“字節(jié)碼”存儲(chǔ)于Class文件中。Class文件是一種字節(jié)碼形式的中間代碼,該字節(jié)碼中仍然保留所有的方法名稱、變量名稱,并且通過這些名稱來訪問變量和方法,這些符號(hào)往往帶有許多語義信息。由于Java程序自身的特點(diǎn),對于不經(jīng)過處理的Java程序,反編譯的效果非常好。

    目前,市場上有許多Java的反編譯工具,這些工具的反編譯速度和效果都很不錯(cuò)。好的反編譯軟件,能夠反編譯出非常接近源代碼的程序。通過反編譯器,黑客能夠?qū)@些程序進(jìn)行更改,或者復(fù)用其中的程序。因此,如何保護(hù)Java程序不被反編譯,是非常重要的一個(gè)問題。此外,Java程序基于JVM這一“中間層”能夠在不同平臺(tái)上運(yùn)行,真正實(shí)現(xiàn)了“一次編譯,到處運(yùn)行”的目的。Java的這一特性對商業(yè)軟件的版權(quán)保護(hù)也帶來了挑戰(zhàn)。

    1 常見保護(hù)技術(shù)對比

    1.1 源文件保護(hù)

    目前針對Java源文件方法主要有本地編譯、數(shù)字水印、ClassLoader加密,以及代碼混淆技術(shù)。

    ⑴ 本地編譯

    Java本地編譯[2]是指將Java應(yīng)用程序編譯成本地應(yīng)用程序,如Windows平臺(tái)下名為exe的應(yīng)用程序。通過java虛擬機(jī)將源代碼生成Java類文件,再將類文件編譯成可執(zhí)行文件。用該技術(shù)生成的本地應(yīng)用程序是二進(jìn)制格式的可執(zhí)行文件,但該方法犧牲了Java的跨平臺(tái)特性,對于桌面應(yīng)用程序的開發(fā)問題不大,但是對于Web應(yīng)用程序的開發(fā),則是一個(gè)致命缺陷。同時(shí)該方法技術(shù)層面還存在不成熟,支持不完善的問題,不適合采用。

    ⑵ 數(shù)字水印

    數(shù)字水印技術(shù)[3]是將一些標(biāo)識(shí)信息(即數(shù)字水印)直接嵌入數(shù)字載體(包括多媒體、文檔、軟件等)當(dāng)中,但不影響原載體的使用價(jià)值,也不容易被人的知覺系統(tǒng)覺察或注意到。通過這些隱藏在載體中的信息,可以達(dá)到確認(rèn)內(nèi)容創(chuàng)建者、購買者、傳送隱秘信息或者判斷載體是否被篡改等目的。在需要證明程序是否非法使用時(shí),數(shù)字水印就變得很重要。使用水印技術(shù)并不能阻止類文件被反編譯,但是可以在需要確認(rèn)某些程序是否屬于剽竊時(shí)提供有效證據(jù)。

    ⑶ ClassLoader加密

    ClassLoader的基本目標(biāo)是對類的請求提供服務(wù)。當(dāng)JVM 需要使用類時(shí),它根據(jù)名稱向ClassLoader請求這個(gè)類,然后ClassLoader試圖返回一個(gè)表示這個(gè)類的Class對象。通過覆蓋對應(yīng)于這個(gè)過程不同階段的方法,可以創(chuàng)建定制的ClassLoader。在裝入原始數(shù)據(jù)后先進(jìn)行解密,再轉(zhuǎn)換成Class對象。由于把原始字節(jié)碼轉(zhuǎn)換成Class對象的過程完全由系統(tǒng)負(fù)責(zé),因此只需先獲得原始數(shù)據(jù),接著就可以進(jìn)行包含解密在內(nèi)的任何轉(zhuǎn)換。這種方案比其他方案更加安全,然而這種加密方法存在一個(gè)漏洞,由于ClassLoader的類是用Java編寫的,如果對ClassLoader類進(jìn)行反編譯,提取其中解密算法,就可解密所有被加密的其他類。

    ⑷ 代碼混淆

    代碼混淆[4]是將計(jì)算機(jī)程序的代碼,轉(zhuǎn)換成一種功能上等價(jià),但是難于閱讀和理解的形式的行為。代碼混淆可以用于程序源代碼,也可以用于程序編譯而成的中間代碼。代碼混淆技術(shù)其本質(zhì)上是類文件模糊技術(shù),處理以后的類文件功能和處理以前的類文件功能在邏輯上是等同的,即運(yùn)行后能夠得到一樣的輸出結(jié)果。但是,經(jīng)過測試發(fā)現(xiàn)目前市面上的一些代碼混淆工具實(shí)際效果并不好,使用一些反編譯工具仍然可以輕易地看到源碼。

    1.2 軟件授權(quán)

    一般商用軟件的授權(quán)方式分為3種:序列號(hào)、聯(lián)網(wǎng)認(rèn)證、授權(quán)碼[5]。

    ⑴ 序列號(hào)方式是最常見的軟件授權(quán)方式,也為絕大多數(shù)商用軟件所采用,它的安全性最低,最容易盜版,但這類軟件大多為通用型軟件,有廣大的用戶群,廠商依然能獲得足夠的利潤。多為桌面系統(tǒng)軟件所采用。

    ⑵ 聯(lián)網(wǎng)認(rèn)證則是隨著互聯(lián)網(wǎng)的飛速發(fā)展,而出現(xiàn)的新型軟件授權(quán)方式,已經(jīng)在Microsoft和Adobe等廠商的產(chǎn)品中得到廣泛應(yīng)用,首先要開發(fā)一個(gè)客戶端驗(yàn)證軟件,其次還要架設(shè)專門的提供驗(yàn)證授權(quán)服務(wù)的網(wǎng)站,從技術(shù)成本和資金成本上來講,都不適合中小軟件公司;也不適用于專用性較強(qiáng),用戶群較小的軟件。

    ⑶ 授權(quán)碼。程序獲得運(yùn)行機(jī)的惟一標(biāo)識(shí)(如:網(wǎng)卡硬件地址、CPU ID序列號(hào)、硬盤序列號(hào)等);程序?qū)@得的惟一標(biāo)識(shí)加密(可靈活選用各種加密算法進(jìn)行加密),然后由用戶或者程序自動(dòng)將加密后的標(biāo)識(shí)作為申請碼發(fā)送給軟件的開發(fā)方;開發(fā)者將加密后的惟一標(biāo)識(shí)解密,然后開發(fā)者再將惟一標(biāo)識(shí)加密作為授權(quán)碼發(fā)送給客戶注冊;客戶將開發(fā)者發(fā)送的授權(quán)碼進(jìn)行注冊解密,解密后的內(nèi)容其實(shí)就是:惟一標(biāo)識(shí);每當(dāng)程序啟動(dòng),首先解密已獲取的授權(quán)碼,然后讀取網(wǎng)卡硬件地址、CPU ID序列號(hào)、硬盤序列號(hào)等,進(jìn)行驗(yàn)證,比較兩個(gè)標(biāo)識(shí)是否一致。如果經(jīng)比較一致,則認(rèn)為是合法授權(quán)安裝,程序正常啟動(dòng);如果不一致,則認(rèn)為是非法授權(quán)安裝,程序停止啟動(dòng)。

    2 軟件保護(hù)方案設(shè)計(jì)

    2.1 方案設(shè)計(jì)

    源文件保護(hù)和軟件授權(quán)是軟件保護(hù)需要解決的兩大問題??紤]使用軟件運(yùn)行機(jī)器的惟一標(biāo)識(shí)作為源文件加/解密的密鑰,既可以實(shí)現(xiàn)對源文件的保護(hù),又能達(dá)到軟件和運(yùn)行機(jī)器綁定,防止軟件被隨意復(fù)制擴(kuò)散?;诖怂悸罚痉桨富谲浖\(yùn)行機(jī)器的惟一標(biāo)識(shí)進(jìn)行變換后作為加密的密鑰,對核心文件進(jìn)行加密保護(hù)。在Web工程啟動(dòng)時(shí),程序同樣基于軟件運(yùn)行機(jī)器的惟一標(biāo)識(shí)進(jìn)行變換后作為解密的密鑰啟動(dòng)解密功能模塊。如果解密正確則表示軟件已被授權(quán),Web工程可以正常啟動(dòng),否則中斷啟動(dòng)程序并提示。整個(gè)軟件保護(hù)流程如下。

    ⑴ 密鑰生成

    首先,獲取軟件運(yùn)行機(jī)器的惟一標(biāo)識(shí)(如:CPU序列號(hào)、硬盤序列號(hào)、MAC序列號(hào)等)。由于使用工具可以偽造MAC序列號(hào),這里我們選擇使用CPU序列號(hào)、硬盤序列號(hào)的組合作為軟件運(yùn)行機(jī)器的惟一標(biāo)識(shí)I。為了增強(qiáng)軟件保護(hù)方案的安全性,將CPU序列號(hào)、硬盤序列號(hào)、用戶信息等,按自定義的規(guī)則進(jìn)行組合,以滿足密鑰的不可知性。

    I=F(CPU序列號(hào),硬盤序列號(hào),用戶信息)

    使用散列函數(shù)對軟件運(yùn)行機(jī)器的惟一標(biāo)識(shí)信息進(jìn)行數(shù)學(xué)運(yùn)算,生成符合加密算法要求的密鑰K。MD5即Message-Digest Algorithm 5(信息-摘要算法5),是計(jì)算機(jī)廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法)。MD5的作用是以任意長度的信息作為輸入進(jìn)行計(jì)算,產(chǎn)生一個(gè)128-bit(16-byte)的指紋或報(bào)文摘要。對惟一標(biāo)識(shí)I進(jìn)行MD5計(jì)算后得到一個(gè)128位摘要信息,作為加密算法的密鑰K。

    K=Hash(I)

    ⑵ 加密解密

    常用的加密算法有對稱加密和非對稱加密兩大類型[6],對稱加密指加密和解密使用相同密鑰的加密算法。對稱加密算法的特點(diǎn)是算法公開、計(jì)算量小、加密速度快、加密效率高。具體算法包括DES、3DES、AES等算法。非對稱加密算法需要公開密鑰和私有密鑰兩個(gè)密鑰。公開密鑰與私有密鑰是一對,如果用公開密鑰對數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私有密鑰才能解密,主要算法包括RSA、Elgamal、ECC等。非對稱加密算法主要用于數(shù)字簽名和密鑰的加密傳輸,加密速度也比對稱加密算法慢,本方案使用AES加密算法來加密工程源文件,并將源文件加密過程編譯成一個(gè)獨(dú)立的可執(zhí)行程序。

    在實(shí)際使用中也可以根據(jù)需要選擇其他加密強(qiáng)度更高的對稱加密算法。AES在密碼學(xué)中又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。2006年,高級(jí)加密標(biāo)準(zhǔn)已然成為對稱密鑰加密中最流行的算法之一。AES加密數(shù)據(jù)塊分組長度必須為128bit,密鑰長度可以是128比特、192比特、256比特中的任意一個(gè)。上一步得到的密鑰長度為128bit,滿足AES加密算法的要求。為了提高加密效率,只選擇工程中部分核心源文件進(jìn)行加密,使用密鑰K對文件進(jìn)行加密計(jì)算,最終得到經(jīng)過加密的文件。

    由于我們使用的是對稱加密算法,加密密鑰和解密密鑰是相同的,因此解密密鑰的獲取方法和第一步相同。使用AES解密算法對核心源文件進(jìn)行解密,若解密正確則可得到正確的源文件,Java工程可以正常啟動(dòng)運(yùn)行。為了保證解密過程不被破解,將解密過程封裝在C++動(dòng)態(tài)庫中,由Java調(diào)用動(dòng)態(tài)庫中的解密方法獲得源文件[7]。

    ⑶ 啟動(dòng)驗(yàn)證方案需要在Java程序啟動(dòng)時(shí)對加密的源文件進(jìn)行解密。JVM每次裝入類文件時(shí)都需要一個(gè)稱為ClassLoader的對象,這個(gè)對象負(fù)責(zé)把新的類裝入正在運(yùn)行的JVM[8]。JVM給ClassLoader一個(gè)包含了待裝入類(比如java.lang.Object)名字的字符串,然后由ClassLoader負(fù)責(zé)找到類文件,裝入原始數(shù)據(jù),并把它轉(zhuǎn)換成一個(gè)Class對象。因此按照規(guī)則編寫自定義的ClassLoader進(jìn)行解密,這樣我們就可以在程序中加載特定的類,并且這個(gè)類只能被我們自定義的加載器來進(jìn)行加載,提高了程序的安全性。

    2.2 可行性分析

    ⑴ 源文件保護(hù)

    本方案將程序的核心源文件通過對稱加密,轉(zhuǎn)換為不可執(zhí)行的、不可反編譯的亂碼。加密解密密鑰是基于軟件運(yùn)行機(jī)器的惟一標(biāo)識(shí),使用散列函數(shù)計(jì)算得到。密鑰具有以下特點(diǎn):由于密鑰是將CPU序列號(hào)、硬盤序列號(hào)、用戶信息按自定義的規(guī)則進(jìn)行組合計(jì)算得到,而破解者不知道添加的用戶信息和組合規(guī)則,因此破解者無法計(jì)算出密鑰結(jié)果;本方案將解密過程封裝在動(dòng)態(tài)庫中,由Java啟動(dòng)程序調(diào)用動(dòng)態(tài)庫執(zhí)行源文件解密過程,由于動(dòng)態(tài)庫是二進(jìn)制文件,所以很難通過反編譯得到解密算法。Java運(yùn)行時(shí)裝入字節(jié)碼的機(jī)制隱含地意味著可以對字節(jié)碼進(jìn)行修改。在這里,它的用途是在類文件裝入之時(shí)進(jìn)行解密,因此可以看成是一種即時(shí)解密器。由于解密后的字節(jié)碼文件永遠(yuǎn)不會(huì)保存到文件系統(tǒng),所以竊密者很難得到解密后的代碼。因此,依賴本方案中加密解密密鑰的這些特點(diǎn),可以有效地保證源文件的安全性。

    ⑵ 軟件授權(quán)

    本方案將密鑰的計(jì)算和軟件運(yùn)行機(jī)器的CPU序列號(hào)、硬盤序列號(hào)進(jìn)行了綁定,由于每臺(tái)機(jī)器的密鑰都是不一樣,保證了只有在指定的機(jī)器上運(yùn)行軟件才能計(jì)算獲得正確的解密密鑰,從而解密源文件使Web工程正常運(yùn)行。由于密鑰的計(jì)算中加入了用戶信息和組合規(guī)則,確保破解者無法計(jì)算出密鑰。而且一旦軟件被人破解,開發(fā)者無需對軟件做過多改動(dòng),只需更改獲取密鑰中的用戶信息和組合規(guī)則,再變換加密算法,即可應(yīng)對破解,這對于投入高、用戶群小、專業(yè)性強(qiáng)的軟件是最優(yōu)選擇。

    3 具體實(shí)現(xiàn)

    3.1 密鑰生成

    ⑴ 獲取軟件運(yùn)行機(jī)器的惟一標(biāo)識(shí)

    在給軟件加序列號(hào)時(shí),CPU序列號(hào)、硬盤序列號(hào)這兩個(gè)參數(shù)是最有用的,可以實(shí)現(xiàn)序列號(hào)和機(jī)器綁定。這些信息可以在.NET下通過WMI非常方便的查詢得到。WMI非常強(qiáng)大,可以查詢電腦中各種信息。查詢的方式是WQL,和SQL的語句差不多。采用C#語言編程實(shí)現(xiàn)此功能,并保存在文件中。

    //獲取CPU序列號(hào)代碼

    string cpuInfo="";

    ManagementClass mc=new ManagementClass

    ("Win32_Processor");

    ManagementObjectCollection moc=mc.GetInstances();

    foreach(ManagementObject mo in moc)

    {cpuInfo=mo.Properties["ProcessorId"].Value.ToString();

    }

    //獲取硬盤ID

    string HDid="";

    ManagementClass mc=new ManagementClass

    ("Win32_DiskDrive");

    ManagementObjectCollection moc=mc.GetInstances();

    foreach(ManagementObject mo in moc)

    {HDid=(string)mo.Properties["Model"].Value;

    }

    ⑵ 生成密鑰

    本方案使用Crypto++庫來實(shí)現(xiàn)密鑰生成功能。首先在文件頭添加#pragma comment(lib,"cryptlib.lib")加載lib文件和頭文件md5.h。代碼如下,其中message為原始信息,len為message的長度。

    MD5 md5;

    byte digest[16];

    md5.CalculateDigest(digest,message,len);

    3.2 加密解密

    ⑴加密

    源文件加密是一個(gè)獨(dú)立的可執(zhí)行程序。在應(yīng)用加密方法時(shí)要加四個(gè)頭文件 aes.h、hex.h、files.h和modes.h。加密函數(shù)void AESEncryptFile(const char*in,const char*out,const char*passPhrase)中參數(shù)in是要加密的文件名,out是要解密的文件名,passPhrase是密鑰。這個(gè)函數(shù)的基本流程為:用增量值iv和密鑰passPhrase創(chuàng)建一個(gè)AES加密的CFB工作模式對象aesEncryption。

    void AESEncryptFile(const char *in,const char *out,

    const char *passPhrase)//加密文件

    {byte iv[AES::BLOCKSIZE]="123456";

    AES::Encryption aesEncryption((byte*)passPhrase,

    AES::DEFAULT_KEYLENGTH);

    CFB_Mode_ExternalCipher::Encryption cfbEncryption

    (aesEncryption,iv);

    FileSource f(in,true,new StreamTransformationFilter

    (cfbEncryption,new FileSink(out)));

    }

    ⑵解密

    解密算法被封裝在C++動(dòng)態(tài)庫中,方便Java程序在啟動(dòng)時(shí)調(diào)用。源文件解密同樣需要在應(yīng)用解密函數(shù)時(shí)要加四個(gè)頭文件 aes.h、hex.h、files.h和modes.h,實(shí)現(xiàn)過程和加密類似,實(shí)現(xiàn)代碼如下:

    //解密文件

    void AESDecryptFile(const char *in,const char *out,

    const char *passPhrase)//解密文件

    {byte iv[AES::BLOCKSIZE]="123456";

    CFB_Mode<AES >::Decryption cfbDecryption((byte *)

    passPhrase,16,iv);

    FileSource f(in,true,new StreamTransformationFilter

    (cfbDecryption,new FileSink(out)));

    }

    3.3 程序啟動(dòng)

    按照規(guī)則編寫自定義的ClassLoader進(jìn)行解密,這樣我們就可以在程序中加載特定的類,并且這個(gè)類只能被我們自定義的加載器進(jìn)行加載。通過定制的loadClass,實(shí)現(xiàn)運(yùn)行時(shí)動(dòng)態(tài)解密并執(zhí)行程序,一般實(shí)現(xiàn)這個(gè)方法的步驟是執(zhí)行findLoadedClass(String)去檢測這個(gè)class是不是已經(jīng)加載過了。執(zhí)行父加載器的loadClass方法。如果父加載器為null,則jvm內(nèi)置的加載器去替代,也就是Bootstrap ClassLoader。這也解釋了ExtClassLoader的parent為null,但仍然說Bootstrap ClassLoader是它的父加載器。如果向上委托父加載器沒有加載成功,則通過findClass(String)查找。如果class在上面的步驟中找到了,參數(shù)resolve又是true的話,那么loadClass()又會(huì)調(diào)用resolveClass(Class)這個(gè)方法來生成最終的Class對象。我們可以從源代碼看出這個(gè)步驟。

    public Class loadClass(String name,boolean resolve)

    throws ClassNotFoundException

    {Class clasz=null;

    clasz=findLoadedClass(name);

    if(clasz!=null)

    return clasz;

    byte classData[]=Util.readFile(name+".class");

    if(classData!=null){

    byte decryptedClassData[]=cipher.doFinal

    (classData);//解密

    clasz=defineClass(name,decryptedClassData,0,

    decryptedClassData.length);//再把它轉(zhuǎn)換成一個(gè)類

    }

    if(clasz==null)

    clasz=findSystemClass(name);

    if(resolve&&clasz!=null)

    resolveClass(clasz);

    return clasz;//把類返回給調(diào)用者

    }

    4 結(jié)束語

    本文對現(xiàn)有的Java工程軟件保護(hù)機(jī)制進(jìn)行了深入研究,分析了不同機(jī)制的優(yōu)缺點(diǎn)及其適用場景,提出了一種新的Java軟件保護(hù)方案,并給出部分實(shí)現(xiàn)過程。該方案基于軟件運(yùn)行機(jī)器的惟一標(biāo)識(shí)碼,采用AES對稱加密算法對核心源文件加密,在實(shí)現(xiàn)對源文件保護(hù)的同時(shí),也確保了軟件和運(yùn)行機(jī)器的綁定,使其具有較高的防破解能力。即使軟件被破解,也可以通過更改獲取密鑰中的用戶信息和組合規(guī)則,再變換加密算法,輕松應(yīng)對破解?,F(xiàn)有Java Web工程大多基于開源框架,因此基于Spring框架如何實(shí)現(xiàn)ClassLoader的加載還需要進(jìn)一步深入研究。

    參考文獻(xiàn)(References):

    [1]周建林.軟件保護(hù)技術(shù)研究與設(shè)計(jì)[D].華中科技大學(xué)碩士學(xué)位論文,2009.

    [2]宋揚(yáng),李立新,周雁舟等.軟件防篡改技術(shù)研究[J].計(jì)算機(jī)安全,2009.1:34-37

    [3]李勇,左志宏.目標(biāo)代碼混淆技術(shù)綜述[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007.17(4):68-71

    [4]尹浩,林闖等.數(shù)字水印技術(shù)綜述[J].計(jì)算機(jī)技術(shù)與發(fā)展,2005.42(7):1093-1099

    [5]王琴琴,郭師虹.軟件授權(quán)技術(shù)的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012.22(9):235-238

    [6]張福泰,李繼國,王曉明等.密碼學(xué)教程[M].武漢大學(xué)出版社,2006.

    [7]王銀江,凌力.JNI在安全加密系統(tǒng)效率改進(jìn)中的應(yīng)用[J].計(jì)算機(jī)工程,2004.30(12):99-100

    [8]章敦華,劉建.Java動(dòng)態(tài)類加載機(jī)制及其應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2004.25(3):432-435

    猜你喜歡
    源文件序列號(hào)加密算法
    網(wǎng)絡(luò)社區(qū)劃分在軟件質(zhì)量問題分析中的應(yīng)用
    基于源文件可疑度的軟件缺陷定位方法研究
    recALL
    LKJ基礎(chǔ)數(shù)據(jù)源文件自動(dòng)編制系統(tǒng)的研究
    基于小波變換和混沌映射的圖像加密算法
    Hill加密算法的改進(jìn)
    對稱加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
    誤寫C源文件擴(kuò)展名為CPP的危害
    基于Arnold變換和Lorenz混沌系統(tǒng)的彩色圖像加密算法
    PP助手教你辨別翻新iPhone5小白不再中招
    夜夜夜夜夜久久久久| 麻豆一二三区av精品| 国产亚洲精品一区二区www| 又黄又爽又免费观看的视频| 亚洲av二区三区四区| 一级毛片女人18水好多| 亚洲avbb在线观看| 国产精品久久久人人做人人爽| 国产探花在线观看一区二区| 嫩草影院入口| 日本撒尿小便嘘嘘汇集6| 女人被狂操c到高潮| 亚洲欧美激情综合另类| 欧洲精品卡2卡3卡4卡5卡区| 欧美日韩国产亚洲二区| 国产精品98久久久久久宅男小说| 亚洲精品一区av在线观看| 18禁黄网站禁片免费观看直播| 长腿黑丝高跟| 精品久久久久久久末码| 51国产日韩欧美| 蜜桃亚洲精品一区二区三区| 午夜久久久久精精品| 天天一区二区日本电影三级| 悠悠久久av| 国产高清激情床上av| 国内毛片毛片毛片毛片毛片| 成年人黄色毛片网站| xxxwww97欧美| 亚洲天堂国产精品一区在线| 91九色精品人成在线观看| 不卡一级毛片| 婷婷六月久久综合丁香| 偷拍熟女少妇极品色| 99久久无色码亚洲精品果冻| 在线观看免费午夜福利视频| 国产成人aa在线观看| 午夜福利成人在线免费观看| 一本精品99久久精品77| 中文字幕高清在线视频| 99国产精品一区二区三区| 99久久九九国产精品国产免费| 国产熟女xx| 又黄又爽又免费观看的视频| 国产色婷婷99| 在线播放无遮挡| 欧美绝顶高潮抽搐喷水| 国产精品1区2区在线观看.| 日本黄大片高清| 男女午夜视频在线观看| 精品国产美女av久久久久小说| 亚洲精品国产精品久久久不卡| 免费观看人在逋| 黄片大片在线免费观看| 免费在线观看亚洲国产| 亚洲avbb在线观看| 看黄色毛片网站| 欧美最新免费一区二区三区 | 免费在线观看亚洲国产| 少妇的逼水好多| 国产精品久久久久久亚洲av鲁大| 一进一出好大好爽视频| 午夜a级毛片| 日本 av在线| 亚洲熟妇中文字幕五十中出| 中文字幕熟女人妻在线| 欧美日韩福利视频一区二区| 亚洲不卡免费看| 熟妇人妻久久中文字幕3abv| 国产99白浆流出| 国产真人三级小视频在线观看| 美女高潮喷水抽搐中文字幕| 最近最新中文字幕大全免费视频| 99在线视频只有这里精品首页| 精品午夜福利视频在线观看一区| 韩国av一区二区三区四区| 国产精品综合久久久久久久免费| 91麻豆精品激情在线观看国产| 亚洲av熟女| 国产麻豆成人av免费视频| 国产色爽女视频免费观看| 757午夜福利合集在线观看| 亚洲专区中文字幕在线| 在线免费观看的www视频| 亚洲性夜色夜夜综合| 麻豆成人午夜福利视频| 制服人妻中文乱码| 国产精品乱码一区二三区的特点| 悠悠久久av| 免费电影在线观看免费观看| 免费观看人在逋| 一级黄片播放器| 成人一区二区视频在线观看| 九九在线视频观看精品| 国产伦精品一区二区三区视频9 | 成人av在线播放网站| 久久人妻av系列| 婷婷精品国产亚洲av| 一a级毛片在线观看| 九色成人免费人妻av| www.www免费av| 一级黄片播放器| 看片在线看免费视频| 精品国产亚洲在线| 久久中文看片网| 久久6这里有精品| 在线观看日韩欧美| 一级黄片播放器| 日韩欧美国产在线观看| 少妇的逼水好多| 亚洲色图av天堂| 久久欧美精品欧美久久欧美| 久久中文看片网| 99国产极品粉嫩在线观看| 亚洲精品在线美女| 大型黄色视频在线免费观看| 婷婷六月久久综合丁香| 国产一区二区三区在线臀色熟女| 青草久久国产| 99久国产av精品| 国产伦精品一区二区三区四那| av福利片在线观看| 午夜免费激情av| 日本a在线网址| 久久伊人香网站| 国产一区二区三区视频了| 久久久国产精品麻豆| 国产视频内射| 黄色日韩在线| 亚洲内射少妇av| 老司机午夜十八禁免费视频| 成人高潮视频无遮挡免费网站| 国内揄拍国产精品人妻在线| 成人av在线播放网站| 香蕉久久夜色| 午夜免费观看网址| 在线看三级毛片| 国产精品乱码一区二三区的特点| 中文字幕人妻丝袜一区二区| 国产单亲对白刺激| 国产一级毛片七仙女欲春2| 欧美日韩中文字幕国产精品一区二区三区| 久久久国产成人精品二区| 国产精品一区二区三区四区免费观看 | 天美传媒精品一区二区| 精品一区二区三区av网在线观看| 伊人久久大香线蕉亚洲五| 我要搜黄色片| 高潮久久久久久久久久久不卡| 97碰自拍视频| av视频在线观看入口| 一本精品99久久精品77| 亚洲自拍偷在线| 中亚洲国语对白在线视频| 久久久精品大字幕| www日本黄色视频网| 最后的刺客免费高清国语| 国产av麻豆久久久久久久| 亚洲自拍偷在线| 国模一区二区三区四区视频| 中文资源天堂在线| 宅男免费午夜| 日本撒尿小便嘘嘘汇集6| 国产乱人伦免费视频| 国产高清视频在线观看网站| 免费看日本二区| 国产亚洲精品久久久久久毛片| 天堂√8在线中文| 国产97色在线日韩免费| 亚洲一区二区三区色噜噜| av在线天堂中文字幕| 内地一区二区视频在线| 97碰自拍视频| 亚洲五月婷婷丁香| 欧美绝顶高潮抽搐喷水| 日本精品一区二区三区蜜桃| 首页视频小说图片口味搜索| 国产精品亚洲一级av第二区| 欧美日韩乱码在线| 国产欧美日韩精品一区二区| 精品国产美女av久久久久小说| 亚洲成人久久爱视频| 日本熟妇午夜| 哪里可以看免费的av片| 99热这里只有精品一区| 每晚都被弄得嗷嗷叫到高潮| 男女视频在线观看网站免费| 日韩欧美在线乱码| 亚洲av免费在线观看| 在线看三级毛片| 一级黄色大片毛片| 国产一区二区亚洲精品在线观看| 国产高清videossex| 又粗又爽又猛毛片免费看| 岛国在线免费视频观看| 午夜精品一区二区三区免费看| 亚洲乱码一区二区免费版| 99riav亚洲国产免费| 亚洲午夜理论影院| 亚洲熟妇中文字幕五十中出| 色尼玛亚洲综合影院| 国产爱豆传媒在线观看| 日韩欧美精品免费久久 | 国产乱人视频| www.www免费av| 亚洲成av人片在线播放无| 黄色女人牲交| 狂野欧美激情性xxxx| 欧美日韩黄片免| 午夜亚洲福利在线播放| 亚洲中文日韩欧美视频| 久久久成人免费电影| 成人性生交大片免费视频hd| 三级男女做爰猛烈吃奶摸视频| 亚洲av日韩精品久久久久久密| 久久伊人香网站| 97碰自拍视频| 午夜福利视频1000在线观看| 亚洲色图av天堂| 亚洲无线在线观看| 黑人欧美特级aaaaaa片| 国产精品香港三级国产av潘金莲| 97超级碰碰碰精品色视频在线观看| 三级男女做爰猛烈吃奶摸视频| 嫩草影院精品99| 亚洲天堂国产精品一区在线| 在线观看一区二区三区| x7x7x7水蜜桃| 12—13女人毛片做爰片一| 最近最新中文字幕大全免费视频| 9191精品国产免费久久| 哪里可以看免费的av片| 99久久成人亚洲精品观看| 精品人妻1区二区| 午夜免费激情av| 特级一级黄色大片| 精品久久久久久久毛片微露脸| 一本精品99久久精品77| 国产主播在线观看一区二区| 久久精品国产99精品国产亚洲性色| 老汉色∧v一级毛片| 亚洲国产精品成人综合色| 窝窝影院91人妻| 久久这里只有精品中国| 蜜桃亚洲精品一区二区三区| 国产av在哪里看| 亚洲最大成人手机在线| 亚洲av二区三区四区| 中文字幕熟女人妻在线| 啦啦啦观看免费观看视频高清| 亚洲欧美精品综合久久99| 欧美日韩黄片免| 日韩av在线大香蕉| 两性午夜刺激爽爽歪歪视频在线观看| 欧美性猛交黑人性爽| 尤物成人国产欧美一区二区三区| 五月伊人婷婷丁香| 少妇人妻精品综合一区二区 | 久久久久久人人人人人| 一个人观看的视频www高清免费观看| 中文字幕高清在线视频| 亚洲内射少妇av| 久久久久精品国产欧美久久久| 亚洲乱码一区二区免费版| 午夜精品久久久久久毛片777| 国语自产精品视频在线第100页| 嫩草影院精品99| 精品一区二区三区av网在线观看| 他把我摸到了高潮在线观看| 最新在线观看一区二区三区| 国产免费一级a男人的天堂| 亚洲国产精品成人综合色| 亚洲国产日韩欧美精品在线观看 | 一本综合久久免费| 天天添夜夜摸| 国产亚洲精品综合一区在线观看| 99精品欧美一区二区三区四区| 亚洲人成网站在线播| 亚洲精品在线观看二区| 操出白浆在线播放| 91久久精品电影网| 亚洲av免费高清在线观看| 国产黄片美女视频| 免费搜索国产男女视频| 色老头精品视频在线观看| 一个人免费在线观看的高清视频| av专区在线播放| 免费电影在线观看免费观看| 尤物成人国产欧美一区二区三区| 久久精品国产亚洲av香蕉五月| 亚洲成a人片在线一区二区| 91久久精品电影网| 一级作爱视频免费观看| 人妻夜夜爽99麻豆av| 中国美女看黄片| 少妇熟女aⅴ在线视频| 九九热线精品视视频播放| 欧美一级a爱片免费观看看| 色综合亚洲欧美另类图片| 99久久综合精品五月天人人| 亚洲精品日韩av片在线观看 | av在线蜜桃| 日韩高清综合在线| 欧美不卡视频在线免费观看| 成人午夜高清在线视频| 欧美日韩瑟瑟在线播放| 日日干狠狠操夜夜爽| 欧美乱码精品一区二区三区| 90打野战视频偷拍视频| 中文字幕高清在线视频| a级毛片a级免费在线| 精品国内亚洲2022精品成人| 国产国拍精品亚洲av在线观看 | 午夜a级毛片| 又爽又黄无遮挡网站| 国产精品久久久久久亚洲av鲁大| 非洲黑人性xxxx精品又粗又长| 欧美日韩黄片免| 高清毛片免费观看视频网站| 午夜两性在线视频| 亚洲五月婷婷丁香| 亚洲精品在线美女| 精品欧美国产一区二区三| 三级男女做爰猛烈吃奶摸视频| 69av精品久久久久久| 国产精品99久久久久久久久| 免费观看人在逋| 亚洲成av人片在线播放无| 国产亚洲欧美在线一区二区| 99精品在免费线老司机午夜| 亚洲国产欧洲综合997久久,| 日本一本二区三区精品| www.色视频.com| 亚洲精品456在线播放app | 欧美绝顶高潮抽搐喷水| 超碰av人人做人人爽久久 | 国产伦精品一区二区三区视频9 | 色哟哟哟哟哟哟| 欧美黑人巨大hd| 亚洲va日本ⅴa欧美va伊人久久| 国产精品自产拍在线观看55亚洲| 小蜜桃在线观看免费完整版高清| 久久久久久国产a免费观看| 国产精品一区二区免费欧美| 欧美午夜高清在线| 中文在线观看免费www的网站| eeuss影院久久| 欧美黄色淫秽网站| 国产午夜精品久久久久久一区二区三区 | 一级作爱视频免费观看| 国产一区二区三区视频了| 十八禁人妻一区二区| 国产精品1区2区在线观看.| 日韩av在线大香蕉| 亚洲av五月六月丁香网| 午夜亚洲福利在线播放| 99国产精品一区二区三区| 欧美一区二区亚洲| 特级一级黄色大片| 91在线精品国自产拍蜜月 | 俺也久久电影网| 在线观看免费视频日本深夜| 久久九九热精品免费| 国产极品精品免费视频能看的| 18禁裸乳无遮挡免费网站照片| 在线观看免费视频日本深夜| 亚洲成av人片免费观看| 我的老师免费观看完整版| 欧美成狂野欧美在线观看| 成年女人看的毛片在线观看| 真人一进一出gif抽搐免费| 999久久久精品免费观看国产| 久久久久国内视频| 亚洲一区二区三区色噜噜| 日韩亚洲欧美综合| 又粗又爽又猛毛片免费看| 国产成人av教育| 97碰自拍视频| 久久久国产成人精品二区| 亚洲国产精品sss在线观看| 亚洲第一欧美日韩一区二区三区| 久久精品夜夜夜夜夜久久蜜豆| 一卡2卡三卡四卡精品乱码亚洲| 五月伊人婷婷丁香| www.熟女人妻精品国产| 欧美黑人欧美精品刺激| 国产欧美日韩精品一区二区| 听说在线观看完整版免费高清| 18+在线观看网站| 极品教师在线免费播放| 成人高潮视频无遮挡免费网站| 亚洲aⅴ乱码一区二区在线播放| 少妇高潮的动态图| 母亲3免费完整高清在线观看| 黄色成人免费大全| 国产亚洲av嫩草精品影院| 精品一区二区三区人妻视频| 午夜激情欧美在线| 国产成人系列免费观看| 法律面前人人平等表现在哪些方面| 热99在线观看视频| 久久国产精品人妻蜜桃| 哪里可以看免费的av片| 99久久99久久久精品蜜桃| 叶爱在线成人免费视频播放| 国产精品一区二区三区四区免费观看 | 99久久99久久久精品蜜桃| 叶爱在线成人免费视频播放| 国产精品一区二区三区四区免费观看 | 中文资源天堂在线| av视频在线观看入口| 一个人看的www免费观看视频| 在线观看午夜福利视频| 不卡一级毛片| 国产中年淑女户外野战色| 午夜福利18| 老司机午夜福利在线观看视频| av欧美777| 级片在线观看| 亚洲精品粉嫩美女一区| 亚洲无线观看免费| 久久亚洲真实| 国内精品美女久久久久久| 女警被强在线播放| 精品久久久久久,| 久久久久精品国产欧美久久久| 国产精品香港三级国产av潘金莲| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | or卡值多少钱| 少妇熟女aⅴ在线视频| 亚洲精华国产精华精| 成年女人看的毛片在线观看| 少妇人妻精品综合一区二区 | 99热只有精品国产| 午夜视频国产福利| 男女之事视频高清在线观看| 又紧又爽又黄一区二区| 国产午夜精品论理片| 一夜夜www| 欧美激情久久久久久爽电影| 十八禁人妻一区二区| 成人av一区二区三区在线看| 日本黄色片子视频| 久久这里只有精品中国| 免费在线观看日本一区| 亚洲狠狠婷婷综合久久图片| 手机成人av网站| 午夜免费激情av| 午夜福利高清视频| 成人鲁丝片一二三区免费| 热99在线观看视频| 看免费av毛片| 在线观看美女被高潮喷水网站 | 99久久久亚洲精品蜜臀av| 国内精品久久久久久久电影| 男女下面进入的视频免费午夜| 九色国产91popny在线| 国产一区二区激情短视频| 好看av亚洲va欧美ⅴa在| 亚洲国产精品成人综合色| 亚洲电影在线观看av| 亚洲成人久久爱视频| 亚洲欧美日韩无卡精品| 丰满人妻熟妇乱又伦精品不卡| 97超视频在线观看视频| 午夜日韩欧美国产| 啪啪无遮挡十八禁网站| 每晚都被弄得嗷嗷叫到高潮| 久久精品国产99精品国产亚洲性色| 男女做爰动态图高潮gif福利片| 欧美一级a爱片免费观看看| 精品久久久久久久毛片微露脸| 岛国在线观看网站| 成年人黄色毛片网站| 精品人妻1区二区| 亚洲人成网站在线播| 中文字幕人妻丝袜一区二区| 国产亚洲精品一区二区www| 欧美成人a在线观看| 人妻夜夜爽99麻豆av| 国产亚洲欧美98| 国产高清激情床上av| 国产色婷婷99| 搡老妇女老女人老熟妇| 99视频精品全部免费 在线| 国产真实乱freesex| 亚洲国产精品sss在线观看| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 观看美女的网站| 久久国产精品影院| 热99re8久久精品国产| 3wmmmm亚洲av在线观看| 人妻丰满熟妇av一区二区三区| 欧美性猛交╳xxx乱大交人| 国产精品98久久久久久宅男小说| 亚洲人成电影免费在线| 18禁黄网站禁片免费观看直播| 久久国产精品人妻蜜桃| 99国产综合亚洲精品| 变态另类成人亚洲欧美熟女| 无人区码免费观看不卡| 亚洲美女视频黄频| 午夜视频国产福利| 母亲3免费完整高清在线观看| 亚洲成人久久性| 国产成人欧美在线观看| 88av欧美| 熟妇人妻久久中文字幕3abv| 国产亚洲av嫩草精品影院| 女人高潮潮喷娇喘18禁视频| 黄色丝袜av网址大全| 亚洲av日韩精品久久久久久密| 日本熟妇午夜| 欧美色视频一区免费| 午夜福利18| 观看免费一级毛片| 成人欧美大片| 国产精品国产高清国产av| 久久精品国产清高在天天线| 高清在线国产一区| 精品国产美女av久久久久小说| 国产 一区 欧美 日韩| 美女高潮喷水抽搐中文字幕| 国内精品久久久久精免费| 国产欧美日韩精品亚洲av| 99久久精品一区二区三区| 国产一区二区亚洲精品在线观看| 麻豆一二三区av精品| 国产成人福利小说| 国产欧美日韩精品一区二区| 久久久久久久午夜电影| 成人欧美大片| 俄罗斯特黄特色一大片| 国产毛片a区久久久久| 精品久久久久久久末码| 成人特级黄色片久久久久久久| 俺也久久电影网| 老熟妇仑乱视频hdxx| 日本撒尿小便嘘嘘汇集6| 亚洲乱码一区二区免费版| 国产v大片淫在线免费观看| 最新中文字幕久久久久| 欧美大码av| 99在线人妻在线中文字幕| 免费人成在线观看视频色| 午夜福利免费观看在线| 午夜日韩欧美国产| 综合色av麻豆| 中文资源天堂在线| 久久久久久国产a免费观看| 国产激情欧美一区二区| 亚洲熟妇熟女久久| 一级毛片女人18水好多| 久久香蕉国产精品| 看片在线看免费视频| 午夜福利免费观看在线| 久久精品国产综合久久久| 欧美性猛交╳xxx乱大交人| 无限看片的www在线观看| 国产伦人伦偷精品视频| 亚洲国产精品合色在线| 国产精品 国内视频| 一级黄色大片毛片| 毛片女人毛片| 我的老师免费观看完整版| 久99久视频精品免费| 久久精品人妻少妇| av片东京热男人的天堂| 一级a爱片免费观看的视频| 午夜福利成人在线免费观看| 色综合亚洲欧美另类图片| 国产在线精品亚洲第一网站| 国产一区二区激情短视频| 亚洲国产欧美网| 欧美性感艳星| 日本黄色视频三级网站网址| 91麻豆av在线| 久久久久久久午夜电影| 国产亚洲精品久久久久久毛片| 欧美中文日本在线观看视频| 国产成人福利小说| 麻豆成人av在线观看| 亚洲成a人片在线一区二区| 国产高清视频在线观看网站| 99久久九九国产精品国产免费| 热99re8久久精品国产| 国产精品,欧美在线| 国产探花极品一区二区| 午夜精品久久久久久毛片777| 九九久久精品国产亚洲av麻豆| 香蕉久久夜色| 午夜精品久久久久久毛片777| 99久久精品热视频| 国产精品99久久久久久久久| 精品熟女少妇八av免费久了| 国产欧美日韩一区二区三| 国产探花极品一区二区| bbb黄色大片| 色吧在线观看| 色老头精品视频在线观看| 亚洲人成伊人成综合网2020| 日本精品一区二区三区蜜桃| 国产黄片美女视频| 欧美3d第一页| 成年女人永久免费观看视频| 午夜两性在线视频| 亚洲av电影不卡..在线观看| 嫩草影院精品99| 1000部很黄的大片| 国产av一区在线观看免费| 午夜亚洲福利在线播放| 91字幕亚洲| 黑人欧美特级aaaaaa片| 久久亚洲真实| 日韩成人在线观看一区二区三区|