日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

PE文件和COFF文件格式分析——导出表

發(fā)布時(shí)間:2023/11/27 生活经验 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PE文件和COFF文件格式分析——导出表 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ? 在之前的《PE可選文件頭》相關(guān)博文中我們介紹了可選文件頭中很多重要的屬性,而其中一個(gè)非常重要的屬性是(轉(zhuǎn)載請指明來源于breaksoftware的CSDN博客)

IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; 

? ? ? ? 該數(shù)組保存了如下節(jié)(不一定全包括,要以IMAGE_OPTIONAL_HEADER32(64)::NumberOfRvaAndSizes來確定)的信息

#define IMAGE_DIRECTORY_ENTRY_EXPORT          0   // Export Directory
#define IMAGE_DIRECTORY_ENTRY_IMPORT          1   // Import Directory
#define IMAGE_DIRECTORY_ENTRY_RESOURCE        2   // Resource Directory
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION       3   // Exception Directory
#define IMAGE_DIRECTORY_ENTRY_SECURITY        4   // Security Directory
#define IMAGE_DIRECTORY_ENTRY_BASERELOC       5   // Base Relocation Table
#define IMAGE_DIRECTORY_ENTRY_DEBUG           6   // Debug Directory
//      IMAGE_DIRECTORY_ENTRY_COPYRIGHT       7   // (X86 usage)
#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE    7   // Architecture Specific Data
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR       8   // RVA of GP
#define IMAGE_DIRECTORY_ENTRY_TLS             9   // TLS Directory
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG    10   // Load Configuration Directory
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT   11   // Bound Import Directory in headers
#define IMAGE_DIRECTORY_ENTRY_IAT            12   // Import Address Table
#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT   13   // Delay Load Import Descriptors
#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14   // COM Runtime descriptor

? ? ? ? 我們在之后會(huì)介紹各個(gè)節(jié)的結(jié)構(gòu)和相關(guān)應(yīng)用,本文我將介紹該數(shù)組中第一個(gè)元素(DataDirectory[0])的信息——導(dǎo)出表信息。
? ? ? ? 首先我介紹下導(dǎo)出表。我們做程序時(shí),新手一般喜歡做的是copy+paste。這個(gè)方法在代碼結(jié)構(gòu)不是很復(fù)雜的時(shí)候還能過的去。如果像微軟這樣的系統(tǒng)也是這么寫,我想我們的黑客和漏洞挖掘者會(huì)非常高興了——因?yàn)檫@樣必定會(huì)產(chǎn)生更多的漏洞和bug。因?yàn)檫@樣寫的代碼非常難維護(hù)。打個(gè)比方,我們有個(gè)函數(shù)實(shí)現(xiàn)了對XML的解析,有ABCDE這么多業(yè)務(wù)方去copy了這段代碼。若干年后某天XML規(guī)則發(fā)生了改變,我們要修正XML解析算法,這個(gè)時(shí)候可能由于原來引入該段代碼的員工離職了或者時(shí)間久遠(yuǎn)等原因,ABCDE各方都不知道自己的邏輯中用了XML,更不知道要去修正為新的算法。于是如何解決呢?ABCDE方應(yīng)該讓XML解析算法編寫者提供一個(gè).h和.cpp文件,里面包含了我們可能會(huì)調(diào)用的XML算法,然后在各自的代碼中include這個(gè)XML算法編寫者維護(hù)的目錄下的這個(gè).h文件,并調(diào)用.h中的方法。這樣,以后XML算法即使改了,各業(yè)務(wù)方也可以保證我們使用的算法是最新的。但是還別高興的太早,還有個(gè)問題放在我們面前。如果我們的程序是一個(gè)獨(dú)立的Exe發(fā)布的話,在后續(xù)升級(jí)時(shí)會(huì)帶來些麻煩。比如我們發(fā)布的Exe文件是1G,可是發(fā)布后我們發(fā)現(xiàn)一行代碼寫錯(cuò)了,于是我改了這行代碼,卻要讓用戶升級(jí)一個(gè)1G的文件!!流量啊!怎么辦?為了便于升級(jí),我們還是把1G文件合理分割成若干個(gè)文件,并保證它們可以協(xié)同工作。DLL就是這樣被拆分出來的文件中一個(gè)非常重要的組成部分,它里面的導(dǎo)出函數(shù)就如同供其他方調(diào)用的XML解析的各種方法。導(dǎo)出表就是用于保存這些方法的名稱和地址等信息的地方。

? ? ? ? 現(xiàn)在我們來說下導(dǎo)出表節(jié)的結(jié)構(gòu)。在DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]中保存了導(dǎo)出表節(jié)的相對虛擬偏移RVA和大小,在之后的章節(jié)中我們會(huì)發(fā)現(xiàn)除了DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY]保存的是RA(相對文件頭的偏移),其他都是RVA。通過該RVA,我們算出RA,從而得到一個(gè)描述導(dǎo)出表頭的結(jié)構(gòu)體信息,該結(jié)構(gòu)體是

typedef struct _IMAGE_EXPORT_DIRECTORY {DWORD   Characteristics;DWORD   TimeDateStamp;WORD    MajorVersion;WORD    MinorVersion;DWORD   Name;DWORD   Base;DWORD   NumberOfFunctions;DWORD   NumberOfNames;DWORD   AddressOfFunctions;     // RVA from base of imageDWORD   AddressOfNames;         // RVA from base of imageDWORD   AddressOfNameOrdinals;  // RVA from base of image
} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;

? ? ? ? Characteristics是保留字段,要求為0。

? ? ? ? TimeDataStamp保存的生成導(dǎo)出信息的時(shí)間。

? ? ? ? MajorVersion和MinorVersion分別是主版本號(hào)和此版本號(hào)。這些信息是我們可以決定的。

? ? ? ? Name字段保存的該導(dǎo)出文件的名稱的偏移。這兒要注意一點(diǎn),這個(gè)地址是系統(tǒng)不關(guān)心的,我們可以將其指向的地址設(shè)置為違法的地址,這樣會(huì)干擾部分PE分析工具的分析結(jié)果。

? ? ? ??Base是導(dǎo)出函數(shù)的起始序數(shù)值,該值一般為1。如我們用View dependencies打開一個(gè)文件,紅色部分就是Base字段相關(guān)的

? ? ? ??NumberOfFunctions標(biāo)志導(dǎo)出函數(shù)的函數(shù)地址數(shù)。該數(shù)據(jù)是非常重要的,我們要知道該文件導(dǎo)出了多少個(gè)函數(shù)就是要依據(jù)這個(gè)信息。我們之后會(huì)詳細(xì)說的。

? ? ? ??NumberOfNames標(biāo)志導(dǎo)出函數(shù)的函數(shù)名數(shù)量。

? ? ? ??AddressOfFunctions標(biāo)志導(dǎo)出函數(shù)的函數(shù)地址表的RVA。

? ? ? ??AddressOfNames標(biāo)志導(dǎo)出函數(shù)的函數(shù)名表的RVA。

? ? ? ??AddressOfNameOrdinals標(biāo)志導(dǎo)出函數(shù)的導(dǎo)出序數(shù)表的RVA。

? ? ? ? 以我電腦上desktmon.dll為例,我們看一下該文件中該結(jié)構(gòu)的布局

? ? ? ? 我們再用一個(gè)圖來描述一下PE導(dǎo)出表在View dependencies中顯示的相關(guān)關(guān)系

? ? ? ? 初次研究這個(gè)結(jié)構(gòu)的同學(xué)可能會(huì)注意一個(gè)問題,該結(jié)構(gòu)中有三個(gè)表的RVA(AddressOfFunctions,AddressOfNames,AddressOfNameOrdinals),而只給出了其中前兩個(gè)表的元素個(gè)數(shù)(NumberOfFunctions,NumberOfNames)。那第三個(gè)表——導(dǎo)出序數(shù)表的個(gè)數(shù)是多少?是按導(dǎo)出函數(shù)地址表(AddressOfFunctions)中元素個(gè)數(shù)(NumberOfFunctions)還是按導(dǎo)出函數(shù)名稱表(AddressOfNames)中元素個(gè)數(shù)(NumberOfNames)?還有個(gè)問題:為什么要設(shè)置Base屬性?這些問題我們先Mark下。我們先來詳細(xì)介紹這三個(gè)表。

? ? ? ? 導(dǎo)出地址表。顧名思義,該表中保存了函數(shù)入口RVA。但是如果僅僅是如此簡單就好了,這個(gè)地方保存的還可能是一個(gè)指向字符串的RVA!其結(jié)構(gòu)是以下結(jié)構(gòu)體的一個(gè)集合。

// 導(dǎo)出表信息
typedef struct _IMAGE_Export_Address_Table_
{union {DWORD dwExportRVA;DWORD dwForwarderRVA;};
}IMAGE_Export_Address_Table, *pIMAGE_Export_Address_Table;

? ? ? ? 如果它保存的是導(dǎo)出函數(shù)入口地址,那沒什么好說的。我們說下它保存的是指向一個(gè)字符串的偏移的情況。在我的XP系統(tǒng)下Kernel32.dll中AddVectoredExceptionHandler函數(shù)的導(dǎo)出函數(shù)地址指向的字符串是NTDLL.RtlAddVectoredExceptionHandler。看到這樣的名字組合,我想你大概能猜出個(gè)眉目。AddVectoredExceptionHandler函數(shù),在Kernel32.dll文件內(nèi)部是沒有實(shí)現(xiàn)的。但是如果有程序需要加載Kernel32.dll并需要調(diào)用這個(gè)函數(shù),則這樣的寫法會(huì)告訴加載器在加載Kernel32.dll時(shí),要將AddVectoredExceptionHandler函數(shù)的地址直接改成Ntdll.dll中的RtlAddVectoredExceptionHandler函數(shù)地址(即自動(dòng)加載Ntdll.dll)。這個(gè)特性非常有趣吧!我想做加殼的朋友應(yīng)該對這個(gè)場景很熟悉。我之后會(huì)介紹利用這個(gè)特性去隱性自動(dòng)加載DLL。最后說一下,我們?nèi)绾伪鎰e這個(gè)字段保存的是函數(shù)的入口地址的RVA還是字符串呢?只要判斷該偏移不在導(dǎo)出表節(jié)中即可:指向的地址在節(jié)中就是字符串的RVA;在節(jié)外是函數(shù)入口的RVA。

? ? ? ? 導(dǎo)出名稱表。計(jì)算機(jī)做出來是給人用的,如果給人一堆010101這樣的數(shù)據(jù),我想沒誰會(huì)有太多興趣去看的。于是出于人性化考慮,人們發(fā)明了別名,比如發(fā)明了匯編映射二進(jìn)制指令,從而幫助理解程序邏輯。導(dǎo)出名稱表就是出于這樣的考慮而設(shè)計(jì)的。其結(jié)構(gòu)是以下結(jié)構(gòu)體的一個(gè)集合。

typedef struct _IMAGE_Export_Name_Pointer_Table_ {DWORD dwPointer;
}IMAGE_Export_Name_Pointer_Table,*pIMAGE_Export_Name_Pointer_Table;

? ? ? ? 它是指向字符串的RVA,該字符串是以\0結(jié)尾的。

? ? ? ? 說到這兒,我覺得我們可以停下思考一個(gè)問題,是不是只要有這兩個(gè)表就夠了?如果對于我們自己編寫的且非常標(biāo)準(zhǔn)的DLL,只要有這兩個(gè)表的確是夠了。你想,當(dāng)我們調(diào)用GetProcAddress時(shí),我們在導(dǎo)入名稱表中找到該名稱對應(yīng)的index,然后再返回導(dǎo)出函數(shù)地址表中該index的數(shù)據(jù)即可。

lpFunc = ExportAddressTable[ExportNameTable.find(FuncName)]

? ? ? ? 但是,PE文件設(shè)計(jì)的遠(yuǎn)沒有這么簡單。如果如此簡單,那很多事都好辦了。舉一個(gè)特殊的例子來推翻這種簡單的場景: 函數(shù)入口地址和函數(shù)名之間的關(guān)系是1對N(0~n)。我們程序運(yùn)行起來后,很多時(shí)候是要調(diào)用其他邏輯,即函數(shù)入口。可以說一個(gè)函數(shù)入口可以唯一標(biāo)注一個(gè)邏輯。而我們經(jīng)常說的某某API,其實(shí)只是某個(gè)函數(shù)過程的一個(gè)名字。比如我們一個(gè)實(shí)現(xiàn)XML解析的函數(shù),我們可以叫做ParseXML,也可以叫XMLParse。不管是叫哪個(gè)名字,該函數(shù)的功能是不變的,它的入口地址是不變的。如果入口地址變了,那就是另外一個(gè)函數(shù)了。這就是為什么說函數(shù)入口地址和函數(shù)名之間是1對N的關(guān)系。

?

? ? ? ??

? ? ? ? 針對以上問題,可能有人會(huì)想到,有多少個(gè)導(dǎo)出函數(shù)名(以導(dǎo)出函數(shù)名的數(shù)量為標(biāo)準(zhǔn))就設(shè)置多少個(gè)導(dǎo)出地址,導(dǎo)出地址表中數(shù)據(jù)可以重復(fù),比如上圖中ParseXML和XMLParse函數(shù)名對應(yīng)的導(dǎo)出地址都設(shè)置成0xXXXXXXXX就行了嘛。如

但是還有個(gè)場景:windows平臺(tái)可以通過序數(shù)導(dǎo)入一個(gè)函數(shù)地址(GerProcAddress的第二個(gè)參數(shù)傳序數(shù)),那么這就意味著函數(shù)可以沒有函數(shù)名!!因?yàn)樾驍?shù)也可以看成一個(gè)函數(shù)的編號(hào)嘛,雖然這樣非常不友好,但是仍然是一種可行的方法。那么如果在這種場景下,我們還能以導(dǎo)出函數(shù)名的數(shù)量為標(biāo)準(zhǔn)么?不可以了吧,因?yàn)楹瘮?shù)名表元素?cái)?shù)量可能是0!其實(shí)這類文件挺多,如mfc40u.dll,見下圖

? ? ? ? 通過以上分析,我們可以得出,我們還是要一個(gè)能在導(dǎo)出函數(shù)地址表和導(dǎo)出函數(shù)名稱表建立紐帶的結(jié)構(gòu)體。這個(gè)我們期待的輔助結(jié)構(gòu)體就是我們下面介紹的導(dǎo)出序數(shù)表。

? ? ? ? 導(dǎo)出序數(shù)表。該表保存的是導(dǎo)出地址表的序數(shù)偏移!切記這個(gè)重要的概念。那這個(gè)偏移是相對什么偏移的呢?是針對IMAGE_EXPORT_DIRECTORY::Base屬性的。即這個(gè)表中保存的值加上Base,就是導(dǎo)出地址表的序數(shù)。其結(jié)構(gòu)是以下結(jié)構(gòu)體的一個(gè)集合。

typedef struct _IMAGE_Export_Ordinal_Table_ {WORD dwOrdinal;
}IMAGE_Export_Ordinal_Table,*pIMAGE_Export_Ordinal_Table;

? ? ? ? 從這個(gè)表的命名(AddressOfNameOrdinals )看,應(yīng)該可以發(fā)現(xiàn)這個(gè)表應(yīng)該和導(dǎo)出名稱表存在一定的關(guān)系!是的,它的元素的數(shù)量和導(dǎo)出名稱表的元素?cái)?shù)量是一樣的。可能有人會(huì)疑問,什么這個(gè)表元素的個(gè)數(shù)不是和導(dǎo)出地址表元素個(gè)數(shù)一致呢?因?yàn)槿缟厦嫠f,一個(gè)函數(shù)過程可以對應(yīng)多個(gè)函數(shù)名,如果導(dǎo)出序數(shù)表元素個(gè)數(shù)和導(dǎo)出函數(shù)地址表元素個(gè)數(shù)一樣,則無法讓地址與函數(shù)名對應(yīng)上。比如我們導(dǎo)出地址表有1個(gè)函數(shù)入口,而我們有2個(gè)函數(shù)名都指向這個(gè)地址,那么導(dǎo)出序數(shù)表個(gè)數(shù)如果是1,則如何表示這兩個(gè)名稱與函數(shù)入口的對應(yīng)呢?如果導(dǎo)出序數(shù)表格式是2個(gè),則我們可以讓這兩個(gè)元素都“指向”同一個(gè)導(dǎo)出函數(shù)入口即可。OK,這兒我就解答了上面我們Mark過的那個(gè)問題:導(dǎo)出序數(shù)表個(gè)數(shù)和導(dǎo)出名稱表個(gè)數(shù)一致。

? ? ? ?那么這三個(gè)表之間具體什么關(guān)系呢?我首先以一個(gè)簡單的、常規(guī)的文件為例,這個(gè)文件是上面提到的deskmon.dll。我們看一下View Dependencies的分析結(jié)果:

? ? ? ? 我們再把它的PE文件拿出來看下

? ? ? ? 我們把各個(gè)信息提取出來看下:

Characteristics;        0x00000000
TimeDateStamp;          0x3B7D74B7
MajorVersion;           0x0000
MinorVersion;           0x0000
Name;                   0x00002E6C
Base;                   0x00000001
NumberOfFunctions;      0x00000002 
NumberOfNames;          0x00000002
AddressOfFunctions;     0x00002E58
AddressOfNames;         0x00002E60
AddressOfNameOrdinals;  0x00002E68

? ? ? ? 可以看到這個(gè)Dll的導(dǎo)出地址表有2個(gè)元素,導(dǎo)出名稱表和導(dǎo)出序數(shù)表也是有2個(gè)元素的。用之前《PE文件和COFF文件格式分析——RVA和RA相互計(jì)算》介紹的算法,我們可以得出

?? ? ? ?導(dǎo)出地址表RVA(0x00002E58)對應(yīng)的RA是0x00002258。兩個(gè)元素分別為{ {0,0x0002218},{1,0x00002534}}。和View Dependencis分析結(jié)果對比發(fā)現(xiàn),這組數(shù)據(jù)是一致的。

? ? ? ? 導(dǎo)出名稱表RVA(0x00002E60)對應(yīng)的RA是0x00002260,其數(shù)據(jù)是{0,0x00002E78}和{1,0x00002E88}。0x00002E78是函數(shù)名的RVA,其對應(yīng)的RA是0x00002278,即字符串“DllCanUnloadNow”;0x00002E88也是函數(shù)名稱的RVA,其RA是0x00002288,即字符串“DllGetClassObject”。于是可以把導(dǎo)出函數(shù)名表看成{{0,DllCanUnloadNow},{1,DllGetClassObject}}。這個(gè)數(shù)據(jù)和View Dependencies中信息一致。

? ? ? ? 導(dǎo)出序數(shù)表RVA(0x00002E68)對應(yīng)的RA是0x00002268,其數(shù)據(jù)是{{0,0x0000},{1,0x0001}}。但是這并不是最終數(shù)據(jù),剛才我在介紹導(dǎo)出序數(shù)表時(shí),說過這個(gè)表保存的是相對Base的偏移,該文件的Base是1,于是真實(shí)的數(shù)據(jù)是{{0,0x0001},{1,0x0002}}。

? ? ? ?我們用圖來說一下這三者的關(guān)系。

? ? ? ?比如我們試圖得到DllGetClassObject的函數(shù)地址。我們現(xiàn)在名稱表中找到它的index是1。然后在序數(shù)表中找到index是1的元素的值0x00000002,。0x00000002要減去Base的值1得到值1。最后在地址表中找到index為1的元素的值,這個(gè)值就是DllGetClassObject函數(shù)的入口地址。表達(dá)式是

i = Search_ExportNamePointerTable (ExportName);
ordinal = ExportOrdinalTable [i];
SymbolRVA = ExportAddressTable [ordinal - OrdinalBase];

? ? ? ? 看了上面的邏輯, 我們在序數(shù)表中“加上”Base,然后要通過名稱去找函數(shù)入口時(shí)又要從序數(shù)表中“減去”Base,是不是這兒Base是多余的?如果單從通過名稱獲取函數(shù)地址來看,Base的確是多余的。那么如果通過序數(shù)來獲取函數(shù)地址呢?我構(gòu)造了一個(gè)DLL——DllTestIndex.dll(工程地址)

LIBRARY	"DllTestIndex"
EXPORTSRet1 @2.Ret2 @4Ret3 @8Ret4 @6

?

? ? ? ? 發(fā)現(xiàn)通過序數(shù)去得到Ordinal為3的函數(shù)地址時(shí)會(huì)出錯(cuò)。這兒有兩種可能:

? ? ? ? A GetProcAddress看到函數(shù)地址是0x00000000就認(rèn)為獲取出錯(cuò)

? ? ? ? B GetProcAddress是發(fā)現(xiàn)序數(shù)3不在序數(shù)表中(該文件導(dǎo)出序數(shù)表為{2,4,6,8},于是返回出錯(cuò)。

? ? ? ? 那么到底是那種呢?我將這個(gè)文件修改成如下,即將Ordinal為3的函數(shù)地址修改成一個(gè)有效的函數(shù)地址,得到一個(gè)文件DllTestIndex_Modify

? ? ? ? 如果是B原因,則此時(shí)我們?nèi)カ@取Ordinal為3的函數(shù)地址還是會(huì)失敗。可是結(jié)果呢?GetProcAddress成功了,并正確返回了0x00011069這個(gè)函數(shù)入口地址。這個(gè)實(shí)驗(yàn)證明A原因是對的。這從而證明Base這個(gè)字段,對通過函數(shù)名尋找函數(shù)入口地址的算法的確是多余的信息。如果真要找個(gè)原因,可能從文件大小的說起。PE文件序數(shù)表的元素是WORD為單位的,而Base是DWORD。那么就是說,我們最多可以有0x10000(0x0000~0xFFFF)個(gè)導(dǎo)出函數(shù)。假如這些函數(shù)都在導(dǎo)出序數(shù)表中有對應(yīng)元素,且導(dǎo)出序數(shù)表每個(gè)元素用DWORD描述,則需要sizeof(DWORD)*0x10000的空間。如果采用Base+WORD的方法,則只需要sizeof(WORD)*0x10000+sizeof(DWORD)的空間。采用后者最多可以節(jié)省0x3FFF8(0x40000-8)byte空間。其實(shí)這個(gè)空間很小的,可以忽略不計(jì)的。

? ? ? ?除了之上那個(gè)非常強(qiáng)求的原因,Base就沒用了么?不是!我們繼續(xù)看上面那個(gè)例子,從我們DEF文件中看出,我們希望導(dǎo)出的4個(gè)函數(shù)的序號(hào)分別是2、4、8、6。我們看下PE文件中的布局

? ? ? ? 我們看到信息如下:

? ? ? ? Base是0x00000002;NumberOfFunctions是0x00000007;導(dǎo)出函數(shù)地址分別為0x00011069、0x00000000、0x000110F5、0x00000000、0x000110A5、0x00000000、0x000110C3;導(dǎo)出名稱是按我們在DEF申明的順序是一致的,分別是:Ret1、Ret2、Ret3、Ret4。導(dǎo)出序數(shù)表是0x0000、0x0002、0x0006、0x0004。

? ? ? ? 注意View Dependencies的Ordinal列,該列的信息是函數(shù)地址的Index加上Base的值。于是

? ? ? 當(dāng)我們?nèi)绱苏{(diào)用時(shí)

typedef int(WINAPI* PRetN)();void ExprotFunc(LPSTR lpFileName) {HMODULE hDll = NULL;do {printf("%s\n", lpFileName);hDll = LoadLibraryA(lpFileName);if ( NULL == hDll ) {break;}for ( int nIndex = 0; nIndex <  10; nIndex ++ ) {PRetN pRetn = (PRetN)GetProcAddress( hDll, (LPCSTR)(LPVOID)(nIndex) );if ( NULL != pRetn ) {printf("nIndex is %d: Value is %d\n",nIndex,pRetn());}}FreeLibrary(hDll);} while (0);
}int _tmain(int argc, _TCHAR* argv[])
{ExprotFunc("DllTestIndex.dll");ExprotFunc("DllTestIndex_Modify.dll");system("pause");return 0;
}

? ? ? ? 此時(shí)GetProcAddress的第二個(gè)參數(shù)就是上圖中間一列的信息,即View Dependencies的Ordinals信息。這兒要特別注意這個(gè)Ordinals和導(dǎo)出序數(shù)表(AddressOfNameOrdinals指向的表)不是一個(gè)東西。這樣我就解答了上面我們Mark的那個(gè)問題——Base到底是為什么設(shè)計(jì)的?是為了通過序數(shù)導(dǎo)出函數(shù)而設(shè)計(jì)的。

? ? ? ? 之后我將會(huì)介紹幾個(gè)對導(dǎo)出表好玩的應(yīng)用。

? ? ? ? 最后貼一段導(dǎo)出表解析的代碼

BOOL CGetPEInfo::GetExportInfo()
{BOOL bSuc = ( 0 == m_ExpDir.Characteristics ) ? TRUE : FALSE;if ( FALSE == bSuc ) {_ASSERT(FALSE);}m_ExpFullInfo.ExpDir = m_ExpDir;std::string wszTime;if ( FALSE == GetTime( m_ExpDir.TimeDateStamp, wszTime ) ) {_ASSERT(FALSE);}m_ExpFullInfo.wszTime = wszTime;std::string wszDllName;DWORD dwNameRA = 0;if ( FALSE == GetRAByRVA( m_ExpDir.Name, dwNameRA ) ) {_ASSERT(FALSE);}else {LPBYTE lpFileName = m_lpFileStart + dwNameRA;if ( lpFileName < m_lpFileStart || lpFileName > m_lpFileEnd ) {wszDllName.clear();}else {wszDllName = (LPSTR)lpFileName;}}m_ExpFullInfo.szImgName = wszDllName;MapIMAGE_Export_Address_Table MapImageExpAddrTable;DWORD dwFunAddrTableRA = 0;if ( FALSE ==  GetRAByRVA( m_ExpDir.AddressOfFunctions, dwFunAddrTableRA ) ) {if ( 0 != m_ExpDir.AddressOfFunctions ) {//_ASSERT(FALSE);}else {}}else {LPBYTE lpStart = m_lpFileStart + dwFunAddrTableRA;for ( WORD i = 0; i < m_ExpDir.NumberOfFunctions; i++ ) {IMAGE_Export_Address_Table ImgExpAddrTable;if ( FALSE == SafeCopy( &ImgExpAddrTable, lpStart, sizeof(IMAGE_Export_Address_Table)) ) {break;}MapImageExpAddrTable[i] = ImgExpAddrTable;lpStart += sizeof(IMAGE_Export_Address_Table);}}MapIMAGE_Export_Name_Pointer_Table MapImageExpNamePointerTable;DWORD dwFunNameTableRA = 0;if ( FALSE == GetRAByRVA( m_ExpDir.AddressOfNames, dwFunNameTableRA ) ) {if ( 0 != m_ExpDir.AddressOfNames ) {_ASSERT(FALSE);}else {}}else {LPBYTE lpStart = m_lpFileStart + dwFunNameTableRA;for ( DWORD i = 0; i < m_ExpDir.NumberOfNames; i++ ) {IMAGE_Export_Name_Pointer_Table ImgExpNamePointer;if ( FALSE == SafeCopy( &ImgExpNamePointer, lpStart , sizeof(IMAGE_Export_Name_Pointer_Table) ) ) {break;}MapImageExpNamePointerTable[i] = ImgExpNamePointer;lpStart += sizeof(IMAGE_Export_Name_Pointer_Table);}}MapIMAGE_Export_Ordinal_Table MapImageExpOrdinalTable;DWORD dwOrdinalTableRA = 0;if ( FALSE == GetRAByRVA( m_ExpDir.AddressOfNameOrdinals, dwOrdinalTableRA ) ) {if (  0 != m_ExpDir.AddressOfNameOrdinals ) {_ASSERT(FALSE);}else {//C:\Config.Msi\1ecac1a.rbf}}else {LPBYTE lpStart = m_lpFileStart + dwOrdinalTableRA;for ( WORD i = 0; i < m_ExpDir.NumberOfNames; i++ ) {IMAGE_Export_Ordinal_Table ImgExpOrdinalTable;if ( FALSE == SafeCopy( &ImgExpOrdinalTable, lpStart, sizeof(IMAGE_Export_Ordinal_Table) ) ) {break;}MapImageExpOrdinalTable[i] = ImgExpOrdinalTable;lpStart += sizeof(IMAGE_Export_Ordinal_Table);}}EXPORT_TABLE_FULL_INFO ExpTableFullInfo;if ( 0 != m_ExpDir.Base && 1 != m_ExpDir.Base ) {_ASSERT(FALSE);}if ( m_ExpDir.NumberOfNames != m_ExpDir.NumberOfFunctions ) {// _ASSERT(FALSE);}//  應(yīng)該按地址數(shù)量來算for ( MapIMAGE_Export_Address_TableIter ImgExpAdIter = MapImageExpAddrTable.begin();ImgExpAdIter != MapImageExpAddrTable.end();ImgExpAdIter++ ){std::string strName;strName.empty();ExpTableFullInfo.wHint = 0xFFFF;ExpTableFullInfo.wOrdinal = ImgExpAdIter->first + (WORD)m_ExpDir.Base;DWORD dwRVA = ImgExpAdIter->second.dwExportRVA;if ( FALSE == IsRVAinSection( dwRVA, IMAGE_DIRECTORY_ENTRY_EXPORT )&& 0 != dwRVA ) {ExpTableFullInfo.bForwarderRVA = FALSE;ExpTableFullInfo.dwRVA.dwExportRVA = dwRVA;}else{ExpTableFullInfo.dwRVA.dwForwarderRVA = dwRVA;ExpTableFullInfo.bForwarderRVA = TRUE;DWORD dwForwarderRA;if ( FALSE == GetRAByRVA( ExpTableFullInfo.dwRVA.dwForwarderRVA, dwForwarderRA ) ) {if (  0 != ExpTableFullInfo.dwRVA.dwForwarderRVA ) {_ASSERT(FALSE);}else {// C:\4f1b3cac6fdc7b2cb9092b46e7c0fc71\Mobile Partner-dial\Mobile Partner-dial\mfc40u.dll// _ASSERT(FALSE);}//continue;}else {ExpTableFullInfo.strForwarder = (LPSTR)(m_lpFileStart + dwForwarderRA);}}MapIMAGE_Export_Ordinal_TableIter ImgExpOrdIter = MapImageExpOrdinalTable.begin();for ( ;ImgExpOrdIter != MapImageExpOrdinalTable.end();ImgExpOrdIter++ ){if ( ImgExpAdIter->first != ImgExpOrdIter->second.dwOrdinal ) {continue;}ExpTableFullInfo.wHint = ImgExpOrdIter->first;for ( MapIMAGE_Export_Name_Pointer_TableIter ImgExpNamePointerIter = MapImageExpNamePointerTable.begin();ImgExpNamePointerIter != MapImageExpNamePointerTable.end();ImgExpNamePointerIter++ ){if ( ImgExpNamePointerIter->first != ExpTableFullInfo.wHint ) {continue;}DWORD dwNamePointerRA = 0;if ( FALSE == GetRAByRVA( ImgExpNamePointerIter->second.dwPointer, dwNamePointerRA ) ) {continue;}else {strName =(LPSTR)(m_lpFileStart + dwNamePointerRA);}break;}break;}ExpTableFullInfo.strFuncName = strName;m_ExpFullInfo.vecExpTable.push_back( ExpTableFullInfo );}return bSuc;
}

?

總結(jié)

以上是生活随笔為你收集整理的PE文件和COFF文件格式分析——导出表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

制服丝袜天堂 | 婷色| 国产精品一区二区免费 | 免费观看国产视频 | 九九久久国产精品 | 日韩sese | 中文字幕精品在线 | 四虎成人在线 | 三上悠亚一区二区在线观看 | 日韩一级片大全 | 天堂av在线网 | 亚洲精品乱码久久久久v最新版 | 黄色在线观看免费网站 | 五月婷婷激情 | 五月激情六月丁香 | 97成人精品区在线播放 | 亚洲 成人 一区 | 精品女同一区二区三区在线观看 | av成人免费网站 | 综合久久网 | 国产91亚洲精品 | 中文字幕亚洲情99在线 | 国产精品美 | 欧美一级性 | 精品五月天 | 在线成人观看 | 日本中文字幕在线免费观看 | 国产不卡在线播放 | 亚洲精品国偷拍自产在线观看 | 日黄网站 | 中文字幕久久网 | 日韩精品在线一区 | 97成人啪啪网 | 国产精品视频久久久 | 久久不卡日韩美女 | www.成人精品 | 久久免费国产视频 | 激情五月综合网 | 99国产视频在线 | 久久精品亚洲一区二区三区观看模式 | 超碰在97 | 国产专区日韩专区 | 日韩中文字幕一区 | 日本免费一二三区 | 在线电影 一区 | 在线免费观看视频 | 91探花系列在线播放 | 成人国产电影在线观看 | 久久综合中文色婷婷 | 亚洲一二三区精品 | 久久精品亚洲精品国产欧美 | 在线观看视频精品 | 国产精品久久久久久久免费 | 97视频在线看 | 在线观看播放av | 最新av网址在线观看 | 天天干天天拍天天操天天拍 | 久久久99精品免费观看乱色 | 免费观看91| 美女视频国产 | 在线观看国产区 | 激情久久综合网 | 九九久久久久久久久激情 | 中文字幕久久网 | 成年人看片网站 | 国产不卡在线观看视频 | 日韩欧美在线免费 | 国产成人av在线 | 天天操天天操天天爽 | 最近中文字幕大全中文字幕免费 | 精品专区| .精品久久久麻豆国产精品 亚洲va欧美 | 中国美女一级看片 | 欧美在线99 | 久久成 | 久久9999久久| 日韩精品免费一区 | 婷婷激情av | 激情综合网天天干 | 精品久久亚洲 | 精品一二三区视频 | 在线免费性生活片 | 又湿又紧又大又爽a视频国产 | 天天鲁天天干天天射 | 在线观看免费一区 | 日韩免费不卡av | 精品视频在线看 | 免费毛片一区二区三区久久久 | 欧美综合色 | 亚洲2019精品| 日韩精品一区在线播放 | 国产精美视频 | 亚洲成人av电影 | 国内丰满少妇猛烈精品播 | 亚洲影视资源 | 国产人免费人成免费视频 | 日韩精品字幕 | 999久久久免费精品国产 | 欧美色图亚洲图片 | 日韩精品中文字幕久久臀 | 亚洲资源片 | 国产精品成人自产拍在线观看 | 91精选 | 国产v在线观看 | 亚洲欧洲av| 一区二区伦理 | 欧美午夜久久 | 成x99人av在线www | 国产黄色精品视频 | 久久一区二区三区四区 | 999久久久精品视频 日韩高清www | 精品国精品自拍自在线 | 国产精品网红直播 | 丁香婷婷综合激情五月色 | 天天爱天天射 | 91在线公开视频 | 亚洲天堂在线观看完整版 | 中文字幕在线观看一区二区三区 | 天堂网一区二区三区 | av免费在线观| 韩日av一区二区 | 午夜视频在线观看欧美 | 国产亚洲欧美日韩高清 | 精品国产一区二区三区久久久蜜臀 | 国产一区二区日本 | 粉嫩av一区二区三区四区五区 | 久久线视频 | 日日夜夜精品免费 | 精品久久在线 | 91在线视频| 17videosex性欧美 | 在线中文字幕视频 | 在线观看精品黄av片免费 | 国产精品福利在线播放 | 天天搞天天干天天色 | 中国一级特黄毛片大片久久 | 三级av网| 五月天丁香视频 | 91精品国自产在线偷拍蜜桃 | 精品久久久久久亚洲综合网站 | 精品91久久久久 | 亚洲另类xxxx | 中文字幕日本在线 | 亚洲国产69 | 久草在线免费在线观看 | 中国一级特黄毛片大片久久 | 色婷婷99 | 香蕉网站在线观看 | 免费a v观看 | 国产视频网站在线观看 | 日日操夜夜操狠狠操 | 少妇自拍av | 欧美va天堂在线电影 | 亚洲欧美国产精品18p | 2020天天干天天操 | a级一a一级在线观看 | 久久久免费电影 | 色婷婷成人网 | 国产精品麻豆果冻传媒在线播放 | 免费视频xnxx com | 五月婷在线播放 | 欧美一区二区视频97 | 久草在线高清 | 日本系列中文字幕 | 国产精品一区二区av影院萌芽 | 国产综合精品久久 | 国产录像在线观看 | 毛片无卡免费无播放器 | 日韩激情精品 | 一区二区视频在线播放 | 综合网伊人 | 中文高清av | 日韩免费福利 | 一区二区三区四区免费视频 | 黄色网中文字幕 | 久久国产成人午夜av影院潦草 | 国产美女搞久久 | av中文天堂| 久久久国产成人 | 国产精品免费视频久久久 | 超碰在线免费福利 | 欧美日韩裸体免费视频 | 97热视频 | av在线免费网站 | 91中文字幕网 | 成人久久毛片 | 五月在线| 国产不卡在线观看视频 | 2020天天干天天操 | 一区二区精品视频 | 日韩在线视频二区 | 国产99免费 | 91成人精品一区在线播放69 | 免费在线一区二区 | 99精品国产在热久久下载 | av免费网站| 亚洲精品视频在线观看视频 | 日日添夜夜添 | 日韩午夜电影网 | 91伊人久久大香线蕉蜜芽人口 | 亚洲砖区区免费 | 天天草天天草 | 国产永久免费观看 | 免费观看性生交大片3 | 国产精品欧美日韩在线观看 | 日日操夜夜操狠狠操 | 色资源网免费观看视频 | 国产日韩欧美视频在线观看 | 成年人在线观看免费视频 | 亚洲第一av在线播放 | 亚洲欧洲视频 | 黄色三级免费观看 | 亚洲国产三级 | 久久久久99精品国产片 | 欧美精品久久久久久久久久丰满 | 日韩视频免费在线观看 | 在线日韩中文字幕 | 国产精品完整版 | 国产精品毛片一区二区 | 久久人人精| 日韩精品2区 | 激情片av| 激情综合网色播五月 | 色综合久久88色综合天天人守婷 | 欧美 国产 视频 | 亚洲综合射 | 国产精品久久久久影院日本 | 色综合激情久久 | 日韩免费观看一区二区 | 婷婷丁香导航 | 久99久在线 | 天天射天天舔天天干 | 婷婷六月天丁香 | 欧美乱淫视频 | 丁香花中文在线免费观看 | 日韩电影中文,亚洲精品乱码 | 视频成人| 久久成人国产精品 | 最新国产精品亚洲 | 色综合久久天天 | 一区二区三区中文字幕在线观看 | 中国一 片免费观看 | 欧美日韩一区二区三区在线免费观看 | 午夜美女福利直播 | 国产精品久久久久久久久久东京 | 四虎在线观看精品视频 | www.久久免费 | 国产亚洲在 | 亚洲精品乱码久久久久久蜜桃动漫 | 亚洲美女视频网 | 天天操天天能 | av亚洲产国偷v产偷v自拍小说 | 色吧av色av| 亚洲精品动漫成人3d无尽在线 | 麻豆一精品传二传媒短视频 | 婷婷六月中文字幕 | 亚洲最大激情中文字幕 | 91av在线不卡 | av免费电影在线 | 国产精品黄色在线观看 | 人人爽人人爱 | 亚洲午夜久久久久久久久久久 | 91麻豆高清视频 | 免费美女久久99 | 丝袜一区在线 | 激情电影影院 | 久草视频国产 | 东方av免费在线观看 | 亚洲日本va午夜在线电影 | 久久精品视频网站 | 91精品视频免费在线观看 | 人人玩人人添人人 | 亚洲一级电影视频 | 91成人国产| 久草免费在线视频 | 亚洲视频免费在线看 | 午夜成人免费影院 | 国产日韩欧美中文 | 九九久久在线看 | 在线电影a| 美女免费视频观看网站 | 精品国产乱码久久久久久1区二区 | 99视频在线免费看 | 一区二区亚洲精品 | 九九热精品在线 | 久久av免费电影 | 免费观看成人网 | 在线观看免费91 | 日韩精品电影在线播放 | 国产高清在线免费观看 | 国产精品国产三级国产aⅴ入口 | 欧美一级特黄aaaaaa大片在线观看 | 九九热只有这里有精品 | 99久久久免费视频 | 日日干天天 | 成片免费观看视频大全 | 欧美一区二区三区免费观看 | 国产在线观看免 | 国产黄色片久久久 | 国产成人精品av久久 | 成人国产精品av | 九九99靖品 | www成人精品 | 丁香六月天婷婷 | www日| 欧美最猛性xxxxx(亚洲精品) | 97在线免费观看视频 | 久久黄色免费视频 | 麻豆一区在线观看 | 久久久久激情电影 | 国产美女视频一区 | 久久刺激视频 | 欧美少妇xxx | 久久久麻豆视频 | 在线最新av | 亚洲视频1区2区 | 日本久久综合视频 | 久草观看 | www.亚洲视频.com | 亚洲夜夜综合 | 在线电影中文字幕 | 精品国产电影 | 欧美日韩综合在线 | 在线99 | 五月婷婷一级片 | 国产不卡在线 | 国产一区二区不卡在线 | 91传媒在线观看 | 精品国产aⅴ一区二区三区 在线直播av | 国产裸体永久免费视频网站 | 日韩在线高清 | 97精品国产97久久久久久粉红 | 97夜夜澡人人双人人人喊 | 伊人久久国产精品 | 亚洲精品视频在线观看免费视频 | 亚洲午夜久久久综合37日本 | 91av在线免费观看 | 亚洲高清av在线 | 国产护士hd高朝护士1 | 毛片1000部免费看 | 99精品在线视频播放 | 国产婷婷久久 | 综合天堂av久久久久久久 | 91视频国产免费 | 免费av影视 | 午夜电影av | 免费欧美 | 久久伦理电影网 | 在线看一区二区 | 婷婷六月天丁香 | 中文字幕a∨在线乱码免费看 | 激情文学综合丁香 | 精品久久一区二区三区 | 蜜臀aⅴ国产精品久久久国产 | 成人av一区二区三区 | 欧美日韩亚洲在线观看 | 婷婷在线观看视频 | 日日夜夜噜噜噜 | 国产伦精品一区二区三区在线 | 欧美成人黄色 | 久久久久亚洲国产 | 91精品国产综合久久福利 | 亚洲精品玖玖玖av在线看 | 国产精品久久久久aaaa | 日韩欧美一区二区三区黑寡妇 | 少妇精品久久久一区二区免费 | 99视频精品在线 | 日韩超碰 | 在线视频精品 | 亚洲最大成人免费网站 | 国产高清免费视频 | 欧美伦理一区二区三区 | 丁香花五月 | 久草国产在线 | 久久免费av电影 | 成年人黄色大全 | 精品国产欧美一区二区三区不卡 | 麻豆视频免费观看 | 在线观看一级片 | 狠狠干五月天 | 天天天天天天天操 | 一区二区视频网站 | 免费看在线看www777 | 婷婷在线视频 | 亚洲成人av在线电影 | 成年人三级网站 | 国产精品久久久久久久久久 | 久草久热| 波多野结衣久久资源 | 又粗又长又大又爽又黄少妇毛片 | 久久狠狠一本精品综合网 | 欧美日韩在线观看不卡 | 天天干天天射天天爽 | 黄污网站在线观看 | 色综合久久久久综合体桃花网 | 亚洲精区二区三区四区麻豆 | 午夜影视av| 一区二区三区免费播放 | 久草在线视频免赞 | 久久av免费 | 国产午夜影院 | 免费久久精品视频 | 精品国精品自拍自在线 | 日韩欧美大片免费观看 | 久一久久 | 国产黄色免费在线观看 | 黄色网免费 | 午夜精品久久久久99热app | 亚洲人成综合 | 国产亚洲精品成人av久久ww | 在线精品一区二区 | 成人91视频| 天天操夜夜操 | 8x成人免费视频 | 午夜性盈盈 | 午夜精品视频福利 | 久久综合精品国产一区二区三区 | 国产精品网在线观看 | 在线免费观看黄色 | 美女在线免费观看视频 | 久久国语 | 美女视频黄是免费的 | 成人aaa毛片| 国产精品精品国产 | 日韩激情在线视频 | 一级黄色片网站 | 成人免费毛片aaaaaa片 | 国产精品片 | 亚洲一区二区三区毛片 | 久久视频免费观看 | 最近日本韩国中文字幕 | 久久国产影视 | 久久综合9988久久爱 | 亚洲另类xxxx | 97在线免费视频 | 色婷婷国产在线 | av在线免费在线观看 | 在线观看久久 | 欧美一级性视频 | 国产综合视频在线观看 | 婷婷综合视频 | 精品视频免费看 | 深爱激情久久 | 亚洲免费资源 | 色狠狠综合天天综合综合 | 黄色av大片 | 久久精品99国产国产 | 四虎伊人| 欧美韩日在线 | 欧美国产日韩在线观看 | 一本一道久久a久久综合蜜桃 | 99久热在线精品视频 | 久草成人在线 | 亚洲资源网 | 亚洲 欧美 91 | 欧美成人精品三级在线观看播放 | 91高清视频| 亚洲黄色区| 中文字幕在线视频一区二区三区 | 又黄又爽免费视频 | 999久久久免费精品国产 | 男女免费视频观看 | 国产91影院 | 91精品久久久久久久91蜜桃 | 日本中文字幕系列 | 欧美精品在线一区二区 | 久久艹国产视频 | 色婷婷综合久久久久中文字幕1 | 国产乱老熟视频网88av | 在线va视频 | 亚州精品国产 | 久久久官网 | av免费在线观看网站 | 六月色 | 狠狠的日 | 亚洲区视频在线 | 亚洲精品视频网站在线观看 | av免费在线观看1 | 国产精品久久久久av | 久草精品免费 | 精品国产乱码久久久久 | 在线观看亚洲精品 | 日韩在线视频二区 | 日韩精品一区二区三区不卡 | 精品美女在线视频 | 欧美精品免费视频 | 天天干天天操av | 欧美日韩免费一区二区 | 在线国产激情视频 | 欧美激情va永久在线播放 | 成人av电影在线观看 | 一区二区三区精品久久久 | 中文字幕免费高清在线 | 久久性生活片 | 国产麻豆视频 | 亚洲综合色网站 | 精品国产伦一区二区三区观看体验 | 91人人爱 | 999国内精品永久免费视频 | 久久精品视频观看 | 日韩一区二区三区在线看 | 成全在线视频免费观看 | 国内精品免费久久影院 | av免费线看 | 波多野结衣一区二区三区中文字幕 | 中文字幕欧美日韩va免费视频 | 欧美一级免费高清 | 天天爽天天爽夜夜爽 | 国产视频一二区 | 在线观看视频国产 | 亚洲精品字幕在线 | 日韩在线视频免费播放 | 91 中文字幕 | 美女久久久久久 | 91中文字幕视频 | 九九久久免费视频 | 精品国产一二三四区 | 超碰人人干人人 | 免费毛片一区二区三区久久久 | 日韩免费电影网 | 精品久久久久久久久久国产 | 久久成人资源 | 成人黄色毛片 | 91刺激视频| 色婷婷av国产精品 | 久久久国产精品成人免费 | 色噜噜狠狠狠狠色综合 | 精品视频资源站 | 久久成视频 | 国产一级黄色片免费看 | 91成人免费电影 | 热久久视久久精品18亚洲精品 | 国产a免费 | 日日夜夜人人天天 | 成人免费在线播放视频 | 91精品区 | 久久香蕉国产精品麻豆粉嫩av | 久久高清毛片 | 成人精品影视 | 成人在线视频免费观看 | 亚洲成年人免费网站 | 99r精品视频在线观看 | 亚洲国产精品一区二区久久hs | 在线亚洲欧美日韩 | 日本精品va在线观看 | 国产精品女| 夜夜躁天天躁很躁波 | 久久久影视 | 永久免费视频国产 | 992tv又爽又黄的免费视频 | 18久久久 | 国产亚洲精品久久久久久大师 | 国产精品免费久久久久影院仙踪林 | 在线免费观看国产黄色 | 手机看片国产日韩 | 亚洲黄色一级电影 | 国产一区视频在线 | 国产黄色美女 | 国内精品视频在线播放 | 久久久久欧美精品 | 成人小视频在线观看免费 | 精品国产片 | 草久久影院 | 精品一区二区免费 | 五月婷婷播播 | 九九久久久久久久久激情 | 免费av片在线 | 精品a在线 | 亚洲日本va在线观看 | 99精品观看 | 久久视频国产精品免费视频在线 | 91精品国产自产91精品 | 波多野结衣网址 | 国产成人久久av977小说 | 超碰在线1 | 国产一区二区精品久久 | 国产在线第三页 | 国产高清视频在线免费观看 | 国产黄在线 | 不卡的av片 | 精品一二三四在线 | 美女视频黄免费 | 综合久久网站 | 欧美地下肉体性派对 | 久久精品国产久精国产 | 精品久久久久久综合 | 色资源网在线观看 | 在线小视频 | 黄色毛片电影 | 久久久精华网 | 亚洲视频在线播放 | 18女毛片| 国产成人免费精品 | 欧美大码xxxx | 美女网站在线免费观看 | 色婷婷综合久久久久中文字幕1 | 黄色软件在线观看视频 | 国产视频欧美视频 | 欧美另类高潮 | 国产精品一区二区av麻豆 | 日本午夜在线亚洲.国产 | av一区二区三区在线观看 | 国产999精品久久久 免费a网站 | 丁香六月激情婷婷 | 日韩精品国产一区 | 久久久综合九色合综国产精品 | 久久艹综合 | 91福利影院在线观看 | 国产乱对白刺激视频在线观看女王 | 欧美aⅴ在线观看 | 亚洲天天综合 | 国内精品在线观看视频 | 丁香婷婷网| 日韩视| a久久久久| 91在线看黄 | 亚洲伦理中文字幕 | 国产91丝袜在线播放动漫 | 韩国av三级| 黄色在线网站噜噜噜 | 国产视频在 | 欧美日韩在线免费观看视频 | 国产高清av免费在线观看 | 三级在线视频播放 | 久久久久美女 | 97在线公开视频 | 久久理论片 | 国产一区福利在线 | 91在线视频精品 | h视频日本| 久久免费a | 日日躁你夜夜躁你av蜜 | 亚洲视频观看 | 成人免费观看完整版电影 | 久久久久久久久久免费 | 成人教育av| 五月婷影院 | 91精品国产91久久久久久三级 | 视频一区在线免费观看 | 国产精品福利在线观看 | 久热免费 | 日本精品免费看 | 久久草网| 国产精品美女久久久久久久 | 免费v片| www亚洲一区 | 超碰在线免费97 | 在线免费观看黄色小说 | 亚洲va欧美va人人爽春色影视 | 欧美亚洲成人xxx | 就要干b | 91精品秘密在线观看 | 国产精品精品国产婷婷这里av | 狠狠操操操 | 婷婷在线免费 | 伊人天天色 | 成人av影视在线 | 久久毛片网 | 国产三级午夜理伦三级 | 最新中文字幕在线观看视频 | 国产高清精 | 丁香六月久久综合狠狠色 | 91免费版成人 | 丁香婷婷综合五月 | 成人a v视频 | 黄色精品久久久 | 三日本三级少妇三级99 | 婷婷色六月天 | 国产精品久久亚洲 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 日韩a级黄色 | www.黄色片网站 | 91精品1区2区| 天天天操天天天干 | 久草热久草视频 | 操碰av| 天天摸天天干天天操天天射 | 国产盗摄精品一区二区 | 久久国产精品一区二区 | 欧美日韩国产综合网 | 96国产精品| 91精品国产乱码 | 久久精品伊人 | 国产欧美综合视频 | 99久久999久久久精玫瑰 | 亚洲一区二区视频 | 亚洲天堂精品视频在线观看 | 99热在 | 正在播放国产91 | 一区 二区电影免费在线观看 | 91污污 | 久久超碰97 | aⅴ精品av导航 | 免费亚洲精品视频 | 久久最新视频 | 久久久免费毛片 | 色av男人的天堂免费在线 | 国产精品美乳一区二区免费 | 亚洲精品ww| 亚洲蜜桃av| 久久人人爽人人人人片 | 日韩精品一区二区三区高清免费 | 超碰国产97 | 国产午夜影院 | 天天操天操 | 国产成本人视频在线观看 | 色激情五月 | 国产伦理一区二区 | 高潮久久久久久 | 久久国产精品免费一区 | 美女视频一区二区 | 美女黄网久久 | 国内精品免费久久影院 | 免费在线一区二区三区 | 日韩成人免费在线电影 | 麻花天美星空视频 | 国产精品粉嫩 | 999ZYZ玖玖资源站永久 | 最近中文字幕高清字幕在线视频 | 久久99久久99 | 亚洲第一中文网 | 综合av在线 | 精品久久久久久亚洲综合网站 | 青草视频在线免费 | 亚洲免费高清视频 | 中文字幕免费不卡视频 | 国产美女精品视频 | 五月天六月色 | 亚洲精品国产高清 | 欧美粗又大 | 免费在线一区二区 | 国产福利av | 丁香资源影视免费观看 | 色就是色综合 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 美女网站视频一区 | 九色最新网址 | 免费毛片aaaaaa | 97精品国产97久久久久久免费 | 黄色一级大片在线免费看国产一 | 超碰日韩在线 | 国产亚洲精品久久久久久无几年桃 | 天天干天天操人体 | 亚洲视频电影在线 | 欧美肥妇free | 97成人在线观看视频 | 午夜精品福利一区二区三区蜜桃 | 免费av在线播放 | 久久免费视频1 | av高清免费 | 成年人视频在线 | 91成人免费 | 天堂成人在线 | 中文字幕免费在线看 | 在线观看一级 | 99精品毛片 | 99精品视频在线播放免费 | 国产又粗又猛又黄又爽的视频 | 夜夜婷婷 | 右手影院亚洲欧美 | 亚洲性xxxx | 亚洲午夜精品久久久 | 国产又粗又长又硬免费视频 | 天天干夜夜夜 | 成人免费av电影 | 天天综合天天综合 | 精品亚洲视频在线观看 | 国产99久久精品 | 久久精品8 | 亚洲视频精品在线 | 亚洲成人av一区二区 | 五月色综合| 国产一级淫片免费看 | 99久久精品国产观看 | 欧美精品乱码99久久影院 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国产免费亚洲 | 欧美性爽爽 | 欧美孕交vivoestv另类 | 97看片吧| av亚洲产国偷v产偷v自拍小说 | 国产在线97 | 日韩免费中文 | 成人欧美在线 | 亚洲精品ww | 国产综合久久 | 欧美怡红院 | 一区二区视频播放 | 欧美aⅴ在线观看 | 天天操比| 成 人 黄 色 片 在线播放 | 国产成人精品一区二 | 日批视频 | 天天爱天天射 | 国产精品久久久久999 | 天天操天天操天天操天天操 | 国产专区一 | 日韩电影在线观看一区二区 | 国产一级二级三级视频 | 中文字幕一区二区三区精华液 | 日韩中文字幕视频在线观看 | 日韩精品综合在线 | 精品资源在线 | 国产高清中文字幕 | 国产又粗又猛又爽又黄的视频免费 | 亚洲影院色 | 中文字幕在线视频一区二区 | 亚洲精选在线 | 国产精品久久久久久久久久久久冷 | 欧美成人理伦片 | 超碰在线公开免费 | 亚洲最新av网站 | 久久麻豆视频 | 日韩av一区二区三区在线观看 | 天天综合视频在线观看 | 黄色成人在线 | 激情久久综合网 | 豆豆色资源网xfplay | 国产在线中文字幕 | 国产一级性生活视频 | 日韩免费观看一区二区 | 永久免费看av | 久久久久久久久久久高潮一区二区 | 久久久国产毛片 | 最新日韩视频 | 在线观看国产福利片 | 91成人久久 | 久久情侣偷拍 | 久久激情五月婷婷 | 久久污视频 | 嫩草91影院 | 999久久久久久久久6666 | 国产日韩欧美在线影视 | 天天爽天天爽 | 日韩精品欧美精品 | 草久久久 | 久久久久久久久久网 | 毛片网在线 | 国内精品久久天天躁人人爽 | 日本女人b | 尤物九九久久国产精品的分类 | 日韩av一区二区在线播放 | 99精品视频在线观看视频 | 国产一区不卡在线 | 亚洲h在线播放在线观看h | 亚洲视频 一区 | 日韩精品视频第一页 | 在线观看爱爱视频 | 五月婷婷在线观看 | 久久69精品久久久久久久电影好 | 91在线视频网址 | 国产精品久久久久久久久久久久冷 | 在线看毛片网站 | ww亚洲ww亚在线观看 | av大片网址 | 久久精品欧美一区 | 久久视频这里有精品 | 人人爽人人射 | 色网站在线 | 在线看岛国av | 天天干天天看 | 国产成人黄色网址 | 久久久久99精品国产片 | 国产999精品久久久久久麻豆 | 国产高清在线永久 | 亚洲不卡123 | 国产69久久久 | 精品国产欧美一区二区 | 欧美精品被 | 国产又粗又猛又色又黄视频 | 操操日| 一级c片 | www成人av| 国产人成看黄久久久久久久久 | 日韩在线精品一区 | 美女黄久久 | 在线亚洲成人 | 久久艹久久 | 少妇bbbb搡bbbb搡bbbb | 久久一区二区三区日韩 | 中文字幕丝袜美腿 | 国产a国产 | 最新影院 | 韩国精品在线观看 | 久久综合之合合综合久久 | 免费不卡中文字幕视频 | 亚洲精品免费观看 | 97视频免费观看 | 91色影院| 69热国产视频 | 一区二区视频在线观看免费 | 国产成人a亚洲精品 | 91手机电视 | 国产精品a级 | 欧美精品在线观看一区 | 中文字幕在线网 | 精品国产视频在线 | av在线免费观看网站 | 毛片网免费| 热久久免费国产视频 | 一区二区三区免费在线观看 | 久久国产精品色av免费看 | 精品国产一区二区三区男人吃奶 | 美女视频黄,久久 | av线上免费观看 | av大全在线 | 国产不卡网站 | 日韩在线视频二区 | 四虎在线观看精品视频 | 国产免费亚洲高清 | 蜜臀av网站 | 右手影院亚洲欧美 | 99精品国产一区二区三区麻豆 | 免费视频国产 | 久久这里只有精品视频首页 | 国产精品美女久久久久久久 | 国产成人综合图片 | 中文字幕色播 | 黄色一区三区 | 国产a视频免费观看 | 日韩精品一区二区三区免费视频观看 | 有码中文字幕在线观看 | 欧美日韩国产一区二区三区在线观看 | 激情综合网五月 | 久久a视频 | 成年人黄色免费看 | 免费观看国产成人 | 黄色午夜网站 | 精品久久久久久国产 | 在线观看视频国产一区 | 午夜12点| 亚洲精品国产拍在线 | 国产精品激情偷乱一区二区∴ | 97视频人人澡人人爽 | 99精品免费久久久久久久久日本 | 色偷偷88888欧美精品久久 | 日韩久久精品一区二区 | 天堂va欧美va亚洲va老司机 | 欧美精品一区二区免费 | 成人影音在线 | 国产伦理久久精品久久久久_ | 91尤物国产尤物福利在线播放 | 狠狠干免费| 免费久久99精品国产婷婷六月 | 国产美女在线精品免费观看 | 91探花国产综合在线精品 | 国产人成免费视频 | 亚洲成熟女人毛片在线 | 蜜臀av免费一区二区三区 | 亚洲日本激情 | 五月婷综合 | 亚洲不卡av一区二区三区 | 亚洲一级二级 | 国产一区二区网址 | 亚洲影院国产 | 97爱爱爱 | 日韩中文在线播放 | 亚洲免费在线观看视频 | 日韩 在线a| 人人玩人人添人人澡超碰 | 成年人黄色免费视频 | 亚洲精品永久免费视频 | 天天天干天天射天天天操 | 久久久影片 | 中文字幕在线观看视频一区 | 日韩影视大全 | 美女精品国产 | 粉嫩av一区二区三区免费 | 国产精品入口a级 | 黄色特一级 | 成人在线视频在线观看 | www免费看| 欧美一区二区三区特黄 | 深夜免费福利视频 | 欧美a性 | 在线免费色视频 | 7777xxxx| 免费观看av | 色综合天天综合网国产成人网 | 成人一级视频在线观看 | 99亚洲精品视频 | 在线国产一区二区三区 | 久久九九免费 | 91久久久国产精品 | 久久久免费在线观看 | 国产黄色播放 | 综合婷婷丁香 | 国产尤物在线观看 | 九九热中文字幕 | 国精产品999国精产品视频 | 69精品久久久 | 国产精品久久久 | 精品亚洲免费 | 天天做天天爱天天综合网 | 国产成人精品网站 | 一区二区三区久久精品 | 中文字幕欲求不满 | 国产小视频91 |