青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開(kāi)心的工作
簡(jiǎn)單、開(kāi)放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
☆ 通過(guò)TEB/PEB枚舉當(dāng)前進(jìn)程空間中用戶模塊列表

http://www.sczgroup.org/windows/200311231555.txt

實(shí)在沒(méi)精力找出最早介紹該項(xiàng)技術(shù)的文章,盡管很想知道答案。29A雜志中大量使用
該技術(shù)([8]),并輔以文字說(shuō)明,推薦閱讀。下面操作是在windbg中進(jìn)行的,提前在
注冊(cè)表中設(shè)置好AeDebug,執(zhí)行vulnerable_0.exe,進(jìn)入windbg調(diào)試狀態(tài)。也可通過(guò)
其它辦法進(jìn)入windbg調(diào)試狀態(tài)。

段選擇子FS所對(duì)應(yīng)的段即當(dāng)前線程TEB(Thread Environment Block),即FS:0指向TEB。

> dg @fs
Selector   Base     Limit     Type    DPL   Size  Gran Pres
-------- -------- -------- ---------- --- ------- ---- ----
  0038   7ffde000 00000fff Data RW Ac  3    Big   Byte  P
> r $teb
$teb=7ffde000

TEB[0x30]是一個(gè)指向當(dāng)前進(jìn)程PEB(Process Environment Block)的指針。大家都這
么說(shuō),可他們?nèi)绾沃肋@個(gè)偏移的,你該上哪去找TEB的數(shù)據(jù)結(jié)構(gòu)定義,不同系統(tǒng)上
該結(jié)構(gòu)定義一致嗎。有這么多疑問(wèn),可絕大多數(shù)文章沒(méi)有告訴你撈魚(yú)的辦法,只給你
魚(yú),你一定有種意尤未盡的郁悶。呵,了解,下面就是撈魚(yú)的辦法,windbg的dt命令:

> dt ntdll!*teb* (列出匹配通配符的結(jié)構(gòu)名)
          ntdll!_TEB
          ... ...
> dt -v -r ntdll!_TEB
struct _TEB, 64 elements, 0xfb4 bytes
   +0x000 NtTib            : struct _NT_TIB, 8 elements, 0x1c bytes
   +0x01c EnvironmentPointer : Ptr32 to Void
   +0x020 ClientId         : struct _CLIENT_ID, 2 elements, 0x8 bytes
   +0x028 ActiveRpcHandle  : Ptr32 to Void
   +0x02c ThreadLocalStoragePointer : Ptr32 to Void
   +0x030 ProcessEnvironmentBlock : Ptr32 to struct _PEB, 66 elements, 0x210 bytes
   ... ...

偏移、名稱、類型、大小等等一應(yīng)俱全地列舉在此。萬(wàn)事不求人是不對(duì)的,指望別人
老來(lái)求自己更是不對(duì)的,藏著掖著是要一起挨米國(guó)鬼子打的。無(wú)論你用什么系統(tǒng),去
下載相應(yīng)版本的windbg,然后用上述辦法自己核實(shí)偏移。MS一貫擅長(zhǎng)保持向后兼容性,
這是它巨大成功的基礎(chǔ),類似0x30這樣的偏移,被改動(dòng)的可能性并不大。

號(hào)稱新版Platform SDK的ntpsapi.h文件中直接給出了TEB的數(shù)據(jù)結(jié)構(gòu),我的不夠新,
沒(méi)找著這個(gè)文件。反正dt命令夠我用了,懶得深究。

順便提個(gè)事。肯定有人見(jiàn)過(guò)這樣的代碼,之后eax將指向PEB:

    mov    eax,fs:[18h]
    mov    eax,[eax+30h]

看完本文"新"的介紹,你肯定在疑惑中,這樣的代碼居然也能成功獲取PEB地址,惟
一的解釋就是fs:[18h]與fs:0h指向同一處(注意方括號(hào)的使用)。TEB結(jié)構(gòu)第一成員是
NT_TIB結(jié)構(gòu),后者的Self成員指向自身這個(gè)NT_TIB結(jié)構(gòu),"碰巧"這個(gè)NT_TIB結(jié)構(gòu)是
TEB結(jié)構(gòu)第一成員,于是可以認(rèn)為Self指向TEB。Self的偏移是0x18,就這么簡(jiǎn)單。

> dt -v _NT_TIB $teb
struct _NT_TIB, 8 elements, 0x1c bytes
   +0x000 ExceptionList    : 0x0012ffb0 struct _EXCEPTION_REGISTRATION_RECORD, 2 elements, 0x8 bytes
   +0x004 StackBase        : 0x00130000
   +0x008 StackLimit       : 0x0012b000
   +0x00c SubSystemTib     : (null)
   +0x010 FiberData        : 0x00001e00
   +0x010 Version          : 0x1e00
   +0x014 ArbitraryUserPointer : (null)
   +0x018 Self             : 0x7ffde000 struct _NT_TIB, 8 elements, 0x1c bytes

換句話說(shuō),ds:7ffde000h與fs:0h這兩個(gè)不同的邏輯地址對(duì)應(yīng)同一個(gè)線性地址。參看
<<IA-32 Software Developer's Manual. Volume 3>>([12])的3.1小節(jié),下面是
Intel的標(biāo)準(zhǔn)定義:

邏輯地址

    段選擇子(16-bits):段內(nèi)偏移(32-bits)

    也叫遠(yuǎn)指針。程序中尋址時(shí)只能使用邏輯地址。沒(méi)有辦法禁用段機(jī)制,但有辦法
    禁用分頁(yè)機(jī)制。

線性地址

    邏輯地址經(jīng)GDT、LDT轉(zhuǎn)換后得到線性地址。

只需一條代碼即可獲取PEB地址:

    mov    eax,fs:[30h]

> dd @fs:30 L1
0038:00000030  7ffdf000
> dt ntdll!_TEB 7ffde000
   +0x000 NtTib            : _NT_TIB
   +0x01c EnvironmentPointer : (null)
   +0x020 ClientId         : _CLIENT_ID
   +0x028 ActiveRpcHandle  : (null)
   +0x02c ThreadLocalStoragePointer : (null)
   +0x030 ProcessEnvironmentBlock : 0x7ffdf000
   ... ...
> !teb
TEB at 7ffde000
    ExceptionList:        0012ffb0
    ... ...
    PEB Address:          7ffdf000
    ... ...
> r $peb
$peb=7ffdf000
> dd $teb+30 L1 (當(dāng)前基是16進(jìn)制)
7ffde030  7ffdf000

無(wú)數(shù)種辦法可以得到指向PEB的指針0x7ffdf000。

Inside 2K([9])<<Table 7-6 Windows 2000 User Process Address Space Layout>>
中直接將TEB、PEB定位在0x7FFDE000、0x7FFDF000。一般來(lái)說(shuō)是這樣的,可是不建議
依賴硬編碼地址。這就看當(dāng)前最緊要的是廣泛兼容性還是壓縮代碼空間。注意,討論
前提是編寫(xiě)exploit、shellcode、virus,最終可能要匯編化的,而非常規(guī)編程。

PEB[0x0c]指向PEB_LDR_DATA結(jié)構(gòu),該結(jié)構(gòu)有三個(gè)成員均可用于枚舉當(dāng)前進(jìn)程空間中
的模塊列表,區(qū)別在于加載順序、內(nèi)存順序、初始化順序。這是三個(gè)雙向循環(huán)鏈表,
遍歷時(shí)留神。

> dt -v -r ntdll!_PEB
struct _PEB, 66 elements, 0x210 bytes
   +0x000 InheritedAddressSpace : UChar
   +0x001 ReadImageFileExecOptions : UChar
   +0x002 BeingDebugged    : UChar
   +0x003 SpareBool        : UChar
   +0x004 Mutant           : Ptr32 to Void
   +0x008 ImageBaseAddress : Ptr32 to Void
   +0x00c Ldr              : Ptr32 to struct _PEB_LDR_DATA, 7 elements, 0x28 bytes
   ... ...
> dt -v -r ntdll!_PEB_LDR_DATA
struct _PEB_LDR_DATA, 7 elements, 0x28 bytes
   +0x000 Length           : Uint4B
   +0x004 Initialized      : UChar
   +0x008 SsHandle         : Ptr32 to Void
   +0x00c InLoadOrderModuleList : struct _LIST_ENTRY, 2 elements, 0x8 bytes
   +0x014 InMemoryOrderModuleList : struct _LIST_ENTRY, 2 elements, 0x8 bytes
   +0x01c InInitializationOrderModuleList : struct _LIST_ENTRY, 2 elements, 0x8 bytes
   +0x024 EntryInProgress  : Ptr32 to Void
> dt -v -r ntdll!_LIST_ENTRY
struct _LIST_ENTRY, 2 elements, 0x8 bytes
   +0x000 Flink            : Ptr32 to struct _LIST_ENTRY, 2 elements, 0x8 bytes
   +0x004 Blink            : Ptr32 to struct _LIST_ENTRY, 2 elements, 0x8 bytes
> dd $peb+c L1
7ffdf00c  00241e90
> dt ntdll!_PEB_LDR_DATA 00241e90
   +0x000 Length           : 0x28
   +0x004 Initialized      : 0x1 ''
   +0x008 SsHandle         : (null)
   +0x00c InLoadOrderModuleList : _LIST_ENTRY [ 0x241ec0 - 0x2429d8 ]
   +0x014 InMemoryOrderModuleList : _LIST_ENTRY [ 0x241ec8 - 0x2429e0 ]
   +0x01c InInitializationOrderModuleList : _LIST_ENTRY [ 0x241f28 - 0x2429e8 ]
   +0x024 EntryInProgress  : (null)
> dl 241f28 ffff 2 (注意Flink形成循環(huán)鏈表)
00241f28  00241fd0 00241eac
00241fd0  00242118 00241f28
00242118  00242258 00241fd0
00242258  002423a0 00242118
002423a0  00242300 00242258
00242300  002424e0 002423a0
002424e0  00242440 00242300
00242440  00242770 002424e0
00242770  002428a8 00242440
002428a8  00242808 00242770
00242808  002429e8 002428a8
002429e8  00241eac 00242808
00241eac  00241f28 002429e8
> dlb 2429e8 ffff 2 (注意Blink形成循環(huán)鏈表)
002429e8  00241eac 00242808
00242808  002429e8 002428a8
002428a8  00242808 00242770
00242770  002428a8 00242440
00242440  00242770 002424e0
002424e0  00242440 00242300
00242300  002424e0 002423a0
002423a0  00242300 00242258
00242258  002423a0 00242118
00242118  00242258 00241fd0
00241fd0  00242118 00241f28
00241f28  00241fd0 00241eac
00241eac  00241f28 002429e8

單從windbg所給出的信息,只能看出三個(gè)雙向循環(huán)鏈表的存在,每個(gè)鏈表結(jié)點(diǎn)上只有
前向指針、后向指針,如何獲取最終的模塊信息呢。其實(shí)這是很關(guān)鍵的問(wèn)題,遺憾的
是某些文章不知出于什么動(dòng)機(jī)刻意回避該問(wèn)題。

Reactos與Tomasz Nowak提供了未公開(kāi)的LDR_MODULE數(shù)據(jù)結(jié)構(gòu),我把偏移標(biāo)出來(lái)了,
方便計(jì)算:

typedef struct _LDR_MODULE
{
    LIST_ENTRY        InLoadOrderModuleList;            // +0x000
    LIST_ENTRY        InMemoryOrderModuleList;          // +0x008
    LIST_ENTRY        InInitializationOrderModuleList;  // +0x010
    PVOID             BaseAddress;                      // +0x018
    PVOID             EntryPoint;                       // +0x01C
    ULONG             SizeOfImage;                      // +0x020
    UNICODE_STRING    FullDllName;                      // +0x024
    UNICODE_STRING    BaseDllName;                      // +0x02C
    ULONG             Flags;                            // +0x034
    SHORT             LoadCount;                        // +0x038
    SHORT             TlsIndex;                         // +0x03A
    LIST_ENTRY        HashTableEntry;                   // +0x03C
    ULONG             TimeDateStamp;                    // +0x044
                                                        // +0x048
} LDR_MODULE, *PLDR_MODULE;

鄭重推薦<<The Undocumented Functions For Microsoft Windows NT/2000>>,逆反
心理促使我一定要讓大家都知道這個(gè)數(shù)據(jù)結(jié)構(gòu)引自何處([10])。

說(shuō)點(diǎn)題外話,Google是你的朋友。Windows底層編程在中國(guó)不知因?yàn)槭裁炊@得資料
罕見(jiàn),結(jié)果以前給我一個(gè)錯(cuò)覺(jué),Windows底層編程舉步維艱。后來(lái)因工作原因Google
時(shí)向Windows做了點(diǎn)偏移,發(fā)現(xiàn)國(guó)外此類編程資料并非如想像的那般罕見(jiàn),有些人共
享出完整源代碼后只是說(shuō)如果感覺(jué)有幫助能否在網(wǎng)上訂份小禮物給他,我是沒(méi)境外信
用卡,否則一定訂份小禮物給他。我還發(fā)現(xiàn)一件有意思的事,有人注明"原創(chuàng)"的時(shí)候
居然沒(méi)有任何參考資源,不巧的是我看過(guò)的英文文章實(shí)在有點(diǎn)爛多,當(dāng)創(chuàng)意、技巧、
代碼片段重合得太多時(shí),就有種無(wú)奈的感概。有鑒于此,己所不欲、勿施與人,寫(xiě)此
類型文章時(shí)一概不敢宣稱是原創(chuàng)、翻譯,撐死了是筆記,還生怕漏了引自何處。也可
能是我水平低,才如此。水平一高,就不便引他人之文了,誰(shuí)知道呢。呵,很小的時(shí)
候聽(tīng)爹說(shuō)過(guò)一句話,吃飯的永遠(yuǎn)不要責(zé)怪做飯的,確實(shí)如此,所以就不多評(píng)價(jià)了。

建議大家寫(xiě)文章時(shí)認(rèn)真負(fù)責(zé)地給參考資源,有URL的都注明URL,不費(fèi)什么事。

扯遠(yuǎn)了,回到LDR_MODULE結(jié)構(gòu)上來(lái),三個(gè)雙向循環(huán)鏈表的結(jié)點(diǎn)正是該結(jié)構(gòu)。

按加載順序遍歷:

!list -t _LIST_ENTRY.Flink -x "!ustr" -a "+24" 241ec0
!list -t _LIST_ENTRY.Flink -x "!ustr" -a "+2c" 241ec0

按內(nèi)存順序遍歷:

!list -t _LIST_ENTRY.Flink -x "!ustr" -a "+1c" 241ec8
!list -t _LIST_ENTRY.Flink -x "!ustr" -a "+24" 241ec8

按初始化順序遍歷:

> !list -t _LIST_ENTRY.Flink -x "!ustr" -a "+14" 241f28
String(58,520) at 00241f3c: D:\WINDOWS\System32\ntdll.dll
String(64,66) at 00241fe4: D:\WINDOWS\system32\kernel32.dll
... ...
> !list -t _LIST_ENTRY.Flink -x "!ustr" -a "+1c" 241f28
String(18,20) at 00241f44: ntdll.dll
String(24,26) at 00241fec: kernel32.dll
... ...

一般"按初始化順序"前向遍歷鏈表時(shí),第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)ntdll.dll,第二個(gè)結(jié)點(diǎn)對(duì)應(yīng)
kernel32.dll,我們不太關(guān)心其它模塊。如果按加載順序前向遍歷,第一個(gè)節(jié)點(diǎn)對(duì)應(yīng)
EXE文件本身,第二個(gè)節(jié)點(diǎn)才對(duì)應(yīng)ntdll.dll。

編程枚舉用戶模塊列表時(shí),重點(diǎn)顯示BaseAddress、FullDllName成員。總結(jié)一下全過(guò)
程:

a. 從fs:[30h]獲取PEB地址

b. 從PEB[0x0c]獲取Ldr地址

c. 從Ldr[0x0c]獲取InLoadOrderModuleList.Flink

d. 從InLoadOrderModuleList.Flink開(kāi)始前向遍歷循環(huán)鏈表

e. 顯示LDR_MODULE結(jié)構(gòu)的BaseAddress、FullDllName成員。

下面是完整的C語(yǔ)言演示程序,匯編化留到編寫(xiě)完整shellcode時(shí)進(jìn)行。

--------------------------------------------------------------------------
/*
 * -----------------------------------------------------------------------
 * Compile : For x86/EWindows XP SP1 & VC 7
 *         : cl EnumModule.c /nologo /Os /G6 /W3 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /link /RELEASE
 *         :
 * Create  : 2003-08-12 11:36
 * Modify  :
 * -----------------------------------------------------------------------
 */

/*
 * 按加載順序遍歷雙向循環(huán)鏈表
 */

#include <stdio.h>
#include <stdlib.h>

#pragma comment( linker, "/INCREMENTAL:NO"    )
#pragma comment( linker, "/subsystem:console" )

int __cdecl main ( int argc, char * argv[] )
{
    void *PEB         = NULL,
         *Ldr         = NULL,
         *Flink       = NULL,
         *p           = NULL,
         *BaseAddress = NULL,
         *FullDllName = NULL;

    __asm
    {
        mov     eax,fs:[0x30]
        mov     PEB,eax
    }
    printf( "PEB   = 0x%08X\n", PEB );
    Ldr   = *( ( void ** )( ( unsigned char * )PEB + 0x0c ) );
    printf( "Ldr   = 0x%08X\n", Ldr );
    Flink = *( ( void ** )( ( unsigned char * )Ldr + 0x0c ) );
    printf( "Flink = 0x%08X\n", Flink );
    p     = Flink;
    do
    {
        BaseAddress = *( ( void ** )( ( unsigned char * )p + 0x18 ) );
        FullDllName = *( ( void ** )( ( unsigned char * )p + 0x28 ) );
        printf( "p     = 0x%08X 0x%08X ", p, BaseAddress );
        wprintf( L"%s\n", FullDllName );
        p = *( ( void ** )p );
    }
    while ( Flink != p );
    return( EXIT_SUCCESS );
}  /* end of main */
--------------------------------------------------------------------------

執(zhí)行效果如下。可以看出,盡管是循環(huán)鏈表,也可通過(guò)判斷BaseAddress是否為NULL
來(lái)結(jié)束遍歷。

> EnumModule
PEB   = 0x7FFDF000
Ldr   = 0x00241E90
Flink = 0x00241EC0
p     = 0x00241EC0 0x00400000 X:\EnumModule.exe
p     = 0x00241F18 0x77F50000 X:\XP\System32\ntdll.dll
p     = 0x00241FC0 0x77E60000 X:\XP\system32\kernel32.dll
p     = 0x00241E9C 0x00000000
>

☆ 參考資源

[ 8] http://vx.netlux.org/vx.php?id=z001 (29A雜志)

     Virus Writing Guide 1.00 for Win32 - Billy Belceb
     29A-4.202

     A guide to the latest methods to retrieve API's in a Win32 environment - LethalMind
     29A-4.227

     Gaining important datas from PEB under NT boxes - Ratter
     29A-6.024

[ 9] <<Inside Microsoft Windows 2000 Third Edition>> - David A. Solomon, Mark E. Russinovich

[10] The Undocumented Functions For Microsoft Windows NT/2000
     http://undocumented.ntinternals.net/ntundoc.chm

[12] Intel Architecture Software Developer's Manual. Volume 1
     ftp://download.intel.com/design/PentiumII/manuals/24319002.pdf

     Intel Architecture Software Developer's Manual. Volume 2
     ftp://download.intel.com/design/PentiumII/manuals/24319102.pdf

     Intel Architecture Software Developer's Manual. Volume 3
     ftp://download.intel.com/design/PentiumII/manuals/24319202.pdf
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99热在线精品观看| 精品91在线| 久久成年人视频| 国产一区二区视频在线观看| 久久综合久久综合这里只有精品 | 国产精品久久久一区麻豆最新章节| 欧美成人一二三| 欧美日韩国产综合网| 欧美日韩美女一区二区| 国产精品久久久久久影视| 国产欧美一区二区精品婷婷 | 激情久久综合| 亚洲精品在线免费| 午夜国产不卡在线观看视频| 久久国产精品99久久久久久老狼 | 亚洲高清不卡| 一级成人国产| 久久精品一区蜜桃臀影院| 免费精品99久久国产综合精品| 亚洲高清免费视频| 好看的日韩av电影| 欧美在线免费一级片| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美人与性禽动交情品| 国产视频一区二区三区在线观看| 亚洲国产精品va在看黑人| 亚洲一区二区三区国产| 蜜臀久久99精品久久久久久9 | 韩日成人在线| 亚洲一区二区三区涩| 久久人人97超碰国产公开结果| 欧美激情自拍| 欧美在线日韩| 国产情侣久久| 亚洲一区二区三区四区视频| 蜜臀久久99精品久久久画质超高清| 99精品福利视频| 老牛影视一区二区三区| 国产午夜精品一区二区三区视频| 亚洲日本aⅴ片在线观看香蕉| 欧美尤物一区| 在线视频中文亚洲| 欧美久久久久久久久| 亚洲成人资源网| 久久久精品国产免大香伊| 国产精品99久久久久久人| 免费看亚洲片| 国产综合香蕉五月婷在线| 久久久久久有精品国产| 亚洲欧美日韩在线播放| 欧美国产一区二区三区激情无套| 一区二区成人精品 | 正在播放亚洲| 欧美a级在线| 亚洲国产精品一区制服丝袜| 久久久夜色精品亚洲| 亚洲欧美日韩国产成人精品影院| 欧美亚州一区二区三区| 99re66热这里只有精品3直播| 免费成人在线观看视频| 久久精品亚洲| 亚洲国产欧美在线人成| 欧美激情第一页xxx| 免费不卡中文字幕视频| 亚洲高清激情| 亚洲国产欧美精品| 欧美精品在线免费观看| 一区二区三区 在线观看视频| 亚洲日韩欧美视频一区| 欧美日韩专区| 久久av资源网站| 久久精品九九| 最新国产の精品合集bt伙计| 亚洲日本理论电影| 香蕉av福利精品导航| 亚洲男人第一网站| 亚洲一区尤物| 国产一区二区黄| 欧美成人一区二区三区在线观看| 久久综合色播五月| 亚洲区国产区| 亚洲性av在线| 伊人精品成人久久综合软件| 欧美激情第三页| 国产精品色一区二区三区| 狼人天天伊人久久| 欧美日韩在线免费视频| 久久久水蜜桃| 欧美日韩午夜在线视频| 久久美女性网| 欧美日韩你懂的| 久久久久成人精品| 欧美日韩国产色综合一二三四| 欧美一级免费视频| 欧美gay视频激情| 亚洲男女毛片无遮挡| 久久久精品一区| 亚洲欧美日韩国产综合| 久久婷婷综合激情| 午夜精品福利一区二区三区av| 久久久人成影片一区二区三区观看 | 亚洲精品乱码久久久久久蜜桃91| 国产伦精品一区二区三区四区免费| 老鸭窝91久久精品色噜噜导演| 欧美精品一区二区三区蜜桃| 久久精品30| 国产精品国产精品| 亚洲电影中文字幕| 国产又爽又黄的激情精品视频| 亚洲精品欧美精品| 亚洲二区视频| 久久av老司机精品网站导航| 亚洲午夜av在线| 欧美福利一区二区三区| 久久免费视频网站| 国产精品视频xxxx| 亚洲免费观看| aa成人免费视频| 另类激情亚洲| 久久影视三级福利片| 国产精品伊人日日| 在线视频精品一| 一区二区冒白浆视频| 免费欧美视频| 欧美成人午夜免费视在线看片| 国产视频久久| 亚洲欧美激情精品一区二区| 亚洲无玛一区| 欧美三级在线视频| 99在线|亚洲一区二区| 一级成人国产| 欧美日韩在线播放| 日韩一本二本av| 一本久道综合久久精品| 欧美激情中文不卡| 亚洲精品一区二区三区婷婷月 | 亚洲国产日韩欧美在线99| 精品999在线播放| 久久精品视频播放| 免费在线国产精品| 亚洲动漫精品| 欧美激情va永久在线播放| 欧美激情小视频| 日韩视频在线一区| 欧美日韩少妇| 亚洲性视频h| 久久精品亚洲国产奇米99| 国产亚洲欧美在线| 老色鬼久久亚洲一区二区| 欧美激情bt| 亚洲视频axxx| 国产欧美精品一区aⅴ影院| 亚洲欧美日韩天堂| 久久先锋影音| 亚洲精品一区二区三区蜜桃久| 欧美黄色视屏| 国产精品99久久久久久www| 久久成人18免费网站| 在线观看亚洲a| 欧美精品在线视频观看| 亚洲一区二区黄| 美女精品在线观看| aa级大片欧美三级| 国产精品入口麻豆原神| 久久精品一区二区| 亚洲国产日韩欧美| 欧美在线观看视频一区二区| 伊甸园精品99久久久久久| 欧美精品在线观看| 久久成人亚洲| 99精品视频免费观看视频| 久久精品噜噜噜成人av农村| 亚洲激情图片小说视频| 国产精品美女一区二区在线观看| 久久爱www久久做| 亚洲人体1000| 久久在线免费观看| 亚洲午夜电影| 亚洲狠狠婷婷| 国产综合久久| 国产精品美女午夜av| 欧美激情成人在线视频| 久久成人精品视频| 亚洲一区二区三区乱码aⅴ| 欧美成人午夜免费视在线看片| 亚洲永久免费av| 亚洲人体大胆视频| 国内揄拍国内精品久久 | 亚洲高清一区二| 国产欧美va欧美va香蕉在| 欧美破处大片在线视频| 久久久亚洲国产天美传媒修理工 | 久久久久久999| 亚洲在线第一页| 亚洲精品久久嫩草网站秘色| 麻豆久久精品| 久久久精品久久久久| 亚洲欧美一区二区精品久久久| 日韩视频精品在线| 久久精品国产亚洲精品|