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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dotnet core 应用是如何跑起来的 通过AppHost理解运行过程

發布時間:2023/12/4 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dotnet core 应用是如何跑起来的 通过AppHost理解运行过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 dotnet 的輸出路徑里面,可以看到有一個有趣的可執行文件,這個可執行文件是如何在框架發布和獨立發布的時候,找到 dotnet 程序的運行時的,這個可執行文件里面包含了哪些內容

在回答上面的問題之前,請大家嘗試打開?C:\Program Files\dotnet\sdk\5.0.100\AppHostTemplate\?這個文件夾。當然了,請將 dotnet 版本號修改為你本機的版本號。在這個文件夾里面,可以看到有一個文件叫 apphost.exe 的可執行文件。有趣的是在咱的 dotnet 項目的 obj 文件夾下也能找到叫這個名字的這個文件

更有趣的是在咱的 dotnet 項目的 obj 文件夾下的 apphost.exe 可執行文件和最終輸出的可執行文件是相同的一個文件

這有什么聯系呢?回答這個問題需要從 dotnet 的代碼開始。在 GitHub 完全開源的 dotnet 源代碼倉庫 https://github.com/dotnet/runtime 里面,將代碼拉到本地,可以在?dotnet runtime\src\installer\corehost\?文件里面看到很多有趣的邏輯

沒錯,其實 apphost.exe 的核心邏輯就放在?dotnet runtime\src\installer\corehost\?文件里面

打開?dotnet runtime\src\installer\corehost\corehost.cpp?文件,可以看到一段有趣的注釋

/*** Detect if the apphost executable is allowed to load and execute a managed assembly.** - The exe is built with a known hash string at some offset in the image* - The exe is useless as is with the built-in hash value, and will fail with an error message* - The hash value should be replaced with the managed DLL filename with optional relative path* - The optional path is relative to the location of the apphost executable* - The relative path plus filename are verified to reference a valid file* - The filename should be "NUL terminated UTF-8" by "dotnet build"* - The managed DLL filename does not have to be the same name as the apphost executable name* - The exe may be signed at this point by the app publisher* - Note: the maximum size of the filename and relative path is 1024 bytes in UTF-8 (not including NUL)* o https://en.wikipedia.org/wiki/Comparison_of_file_systems* has more details on maximum file name sizes.*/

在?dotnet runtime\src\installer\corehost\corehost.cpp?文件的?exe_start?大概就是整個可執行文件的入口方法了,在這里實現的功能將包含使用 hostfxr 和 hostpolicy 來托管執行整個 dotnet 進程,以及主函數的調起。而在使用托管之前,需要先尋找 dotnet_root 也就是 dotnet 框架用來承載整個 dotnet 進程

上面的邏輯的核心代碼如下

const pal::char_t* dotnet_root_cstr = fxr.dotnet_root().empty() ? nullptr : fxr.dotnet_root().c_str();rc = hostfxr_main_bundle_startupinfo(argc, argv, host_path_cstr, dotnet_root_cstr, app_path_cstr, bundle_header_offset);

而在進行獨立發布的時候,其實會在創建 fxr 對象的時候傳入 app_root 路徑,如下面代碼

hostfxr_resolver_t fxr{app_root};

在 dotnet core 里面,和 dotnet framework 不同的是,在 dotnet core 的可執行程序沒有使用到系統給的黑科技,是一個完全的 Win32 應用程序,在雙擊 exe 的時候,將會執行一段非托管的代碼,在進入到 corehost.cpp 的?exe_start?函數之后。將會開始尋找 dotnet 托管入口,以及 dotnet 運行時,通過 hostfxr 的方式加載運行時組件,然后跑起來托管應用

那么在 dotnet 構建輸出的可執行文件又是什么?其實就是包含了 corehost.cpp 邏輯的 AppHost.exe 文件的魔改。在 corehost.cpp 構建出來的 AppHost.exe 文件,是不知道開發者的最終輸出包含入口的 dll 是哪個的,需要在構建過程中傳入給 AppHost.exe 文件。而 AppHost.exe 文件是固定的二進制文件,不接受配置等方式,因此傳入的方法就是通過修改二進制的內容了

這也就是為什么 AppHost.exe 放在 AppHostTemplate 文件夾的命名原因,因為這個?C:\Program Files\dotnet\sdk\5.0.100\AppHostTemplate\?文件夾的 AppHost.exe 是一個 Template 模版而已,在 corehost.cpp 文件里面,預定了一段大概是 1025 長度的空間用來存放 dotnet 入口 dll 路徑名。這個代碼就是本文上面給的很長的注釋下面的代碼

#define EMBED_HASH_HI_PART_UTF8 "c3ab8ff13720e8ad9047dd39466b3c89" // SHA-256 of "foobar" in UTF-8 #define EMBED_HASH_LO_PART_UTF8 "74e592c2fa383d4a3960714caef0c4f2" // 這兩句代碼就是 foobar 的 UTF-8 二進制的 SHA-256 字符串 #define EMBED_HASH_FULL_UTF8 (EMBED_HASH_HI_PART_UTF8 EMBED_HASH_LO_PART_UTF8) // NUL terminatedbool is_exe_enabled_for_execution(pal::string_t* app_dll) {constexpr int EMBED_SZ = sizeof(EMBED_HASH_FULL_UTF8) / sizeof(EMBED_HASH_FULL_UTF8[0]);// 這里給的是就是最長 1024 個 byte 的 dll 名,加上一個 \0 一共是 1025 個字符constexpr int EMBED_MAX = (EMBED_SZ > 1025 ? EMBED_SZ : 1025); // 1024 DLL name length, 1 NUL// 這就是定義在 AppHost.exe 二進制文件里面的一段空間了,長度就是 EMBED_MAX 長度,內容就是 c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 這段字符串static char embed[EMBED_MAX] = EMBED_HASH_FULL_UTF8; // series of NULs followed by embed hash stringstatic const char hi_part[] = EMBED_HASH_HI_PART_UTF8;static const char lo_part[] = EMBED_HASH_LO_PART_UTF8;// 將 embed 的內容復制到 app_dll 變量里面pal::clr_palstring(embed, app_dll); }int exe_start(const int argc, const pal::char_t* argv[]) {// 讀取嵌入到二進制文件的 App 名,也就是 dotnet 的入口 dll 路徑,可以是相對也可以是絕對路徑pal::string_t embedded_app_name;if (!is_exe_enabled_for_execution(&embedded_app_name)){trace::error(_X("A fatal error was encountered. This executable was not bound to load a managed DLL."));return StatusCode::AppHostExeNotBoundFailure;}// 將 embedded_app_name 的內容賦值給 app_path 變量,這個變量的定義代碼我沒有寫append_path(&app_path, embedded_app_name.c_str());const pal::char_t* app_path_cstr = app_path.empty() ? nullptr : app_path.c_str();// 跑起來 dotnet 應用rc = hostfxr_main_bundle_startupinfo(argc, argv, host_path_cstr, dotnet_root_cstr, app_path_cstr, bundle_header_offset); }

上面代碼不是實際的 corehost.cpp 的代碼,只是為了方便本文描述而修改的代碼

在實際輸出的 dotnet 可執行文件里面的邏輯是先從?C:\Program Files\dotnet\sdk\5.0.100\AppHostTemplate\?文件夾復制 AppHost.exe 出來,接著依靠上面代碼的?static char embed[EMBED_MAX] = EMBED_HASH_FULL_UTF8;?的邏輯,替換二進制文件的 embed 值的內容

在?dotnet runtime\src\installer\managed\Microsoft.NET.HostModel\AppHost\HostWriter.cs?文件中,將包含實際的替換邏輯,代碼如下

/// <summary>/// Embeds the App Name into the AppHost.exe/// If an apphost is a single-file bundle, updates the location of the bundle headers./// </summary>public static class HostWriter{/// <summary>/// hash value embedded in default apphost executable in a place where the path to the app binary should be stored./// </summary>private const string AppBinaryPathPlaceholder = "c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2";private static readonly byte[] AppBinaryPathPlaceholderSearchValue = Encoding.UTF8.GetBytes(AppBinaryPathPlaceholder);/// <summary>/// Create an AppHost with embedded configuration of app binary location/// </summary>/// <param name="appHostSourceFilePath">The path of Apphost template, which has the place holder</param>/// <param name="appHostDestinationFilePath">The destination path for desired location to place, including the file name</param>/// <param name="appBinaryFilePath">Full path to app binary or relative path to the result apphost file</param>/// <param name="windowsGraphicalUserInterface">Specify whether to set the subsystem to GUI. Only valid for PE apphosts.</param>/// <param name="assemblyToCopyResorcesFrom">Path to the intermediate assembly, used for copying resources to PE apphosts.</param>public static void CreateAppHost(string appHostSourceFilePath,string appHostDestinationFilePath,string appBinaryFilePath,bool windowsGraphicalUserInterface = false,string assemblyToCopyResorcesFrom = null){var bytesToWrite = Encoding.UTF8.GetBytes(appBinaryFilePath);if (bytesToWrite.Length > 1024){throw new AppNameTooLongException(appBinaryFilePath);}void RewriteAppHost(){// Re-write the destination apphost with the proper contents.using (var memoryMappedFile = MemoryMappedFile.CreateFromFile(appHostDestinationFilePath)){using (MemoryMappedViewAccessor accessor = memoryMappedFile.CreateViewAccessor()){BinaryUtils.SearchAndReplace(accessor, AppBinaryPathPlaceholderSearchValue, bytesToWrite);appHostIsPEImage = PEUtils.IsPEImage(accessor);if (windowsGraphicalUserInterface){if (!appHostIsPEImage){throw new AppHostNotPEFileException();}PEUtils.SetWindowsGraphicalUserInterfaceBit(accessor);}}}}// 忽略代碼}}

可以看到在 HostWriter 的邏輯就是找到 AppHost.exe 里面的?private const string AppBinaryPathPlaceholder = "c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2";?二進制內容,替換為 appBinaryFilePath 的內容

而除了這個之外,還有其他的邏輯就是包含一些資源文件,如圖標和程序清單等,將這些內容放入到 AppHost.exe 里面,這就是實際的輸出文件了

利用這個機制,咱可以更改可執行程序的內容,讓可執行程序文件,尋找其他路徑下的 dll 文件作為 dotnet 程序的入口,大概就可以實現將 exe 放在文件夾外面,而將 dll 放在文件夾里面的效果。原先的輸出就是讓 exe 和 dll 都在相同的一個文件夾,這樣看起來整個文件夾都很亂。也不利于進行 OTA 靜默升級。而將入口 exe 文件放在 dll 所在文件夾的外面,可以讓整個應用文件夾看起來更加清真

想要達成這個效果很簡單,如上面描述的原理,可以通過修改 AppHost.exe 文件的二進制內容,設置入口 dll 的路徑來實現

更改方法就是抄 HostWriter 的做法,替換 exe 里面對應的二進制內容,我從 dnSpy 里面抄了一些代碼,魔改之后放在github?歡迎小伙伴訪問

在拉下來 AppHostPatcher 之后,進行構建,此時的 AppHostPatcher 是一個命令行工具應用,支持將最終輸出的 exe 文件進行魔改。傳入的命令行參數只有兩個,一個是可執行文件的路徑,另一個就是新的 dll 所在路徑。如下面代碼

AppHostPatcher.exe Foo.exe .\Application\Foo.dll

此時原本的 Foo.exe 將會尋找相同文件夾下的 Foo.dll 文件作為 dotnet 的入口程序集,而在執行上面代碼之后,雙擊 Foo.exe 將會尋找?Application\Foo.dll?作為入口程序集,因此就能將整個文件夾的內容,除了 exe 之外的其他文件放在其他文件夾里面

更多細節請看?Write a custom .NET Core runtime host

本文以上使用的代碼是在?https://github.com/dotnet/runtime?的 v5.0.0-rtm.20519.4 版本的代碼

總結

以上是生活随笔為你收集整理的dotnet core 应用是如何跑起来的 通过AppHost理解运行过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产在线超碰 | 日日夜夜操操操操 | 国产一区视频在线播放 | 亚洲深夜影院 | 美女在线观看av | 夜夜操天天 | 香蕉久久久久久久 | 国产日本在线播放 | 日本久久久久久科技有限公司 | 97超碰人人澡人人爱学生 | 午夜日b视频 | 人人爽人人干 | 免费看黄色91 | 99久e精品热线免费 99国产精品久久久久久久久久 | 91亚洲夫妻| 亚洲电影黄色 | 亚洲日本三级 | 狠狠躁夜夜躁人人爽超碰91 | 国产乱码精品一区二区三区介绍 | 欧美久久成人 | 日本性xxx| 免费在线观看不卡av | 在线观看免费91 | 中文一区在线观看 | 在线观看一级 | 啪嗒啪嗒免费观看完整版 | av黄色免费在线观看 | 亚洲精品久久久久久久蜜桃 | 公与妇乱理三级xxx 在线观看视频在线观看 | 欧美亚洲国产精品久久高清浪潮 | 探花视频在线观看免费 | 九九免费在线观看视频 | 麻豆视频国产在线观看 | 国产成人一级 | 三级视频国产 | 久久精品欧美日韩精品 | 天天综合91| 亚洲精品综合在线观看 | 亚洲精品午夜久久久久久久 | 日韩精品免费在线观看视频 | 久草资源在线 | 永久免费视频国产 | 中文字幕在线看视频 | 黄色av免费在线 | 日韩一区二区三区免费视频 | 在线三级av | 91久久丝袜国产露脸动漫 | 精品美女在线视频 | 高潮久久久 | www.久久久 | 99电影| 婷婷久久五月天 | 日本中文字幕系列 | 久久尤物电影视频在线观看 | 天天天综合 | 丁香婷婷深情五月亚洲 | 亚洲欧美激情插 | 91麻豆精品国产91久久久久 | 懂色av懂色av粉嫩av分享吧 | 亚洲精品视频在线观看网站 | 国产 日韩 欧美 自拍 | 九九九九九国产 | 中文字幕999 | 久久男人中文字幕资源站 | 中文字幕在线观看完整版 | 91在线免费播放 | 日韩在线电影 | 91成人免费看 | 亚洲 中文 欧美 日韩vr 在线 | 狠狠插狠狠干 | 久操视频在线播放 | 国产原厂视频在线观看 | 精品国产综合区久久久久久 | 日韩av福利在线 | 欧美大片第1页 | 欧美久久久久久久久久久久 | 久久久国产精品电影 | 婷婷av在线 | 欧美专区日韩专区 | 美女在线观看网站 | 成人久久久久久久久 | www黄色软件 | 天天激情在线 | 看v片| 日日日操操 | 国产精品一区在线播放 | 免费观看黄色12片一级视频 | 中文字幕xxxx | 一级欧美一级日韩 | 国产视频导航 | 日韩视频免费观看高清完整版在线 | 亚洲精品mv在线观看 | 日韩欧美一区视频 | 色综合久久久久久久久五月 | 97夜夜澡人人爽人人免费 | 亚洲高清视频在线观看 | 久久伊人国产精品 | 久久久www成人免费毛片麻豆 | 丁香激情视频 | 人人干人人爽 | 99精品在线视频观看 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 久久久久免费看 | 欧美一级片在线播放 | 日韩精品一区二区三区免费视频观看 | 成人h动漫在线看 | 久久激情综合 | 国产在线观看xxx | 国产 在线 高清 精品 | 全久久久久久久久久久电影 | 日韩中文字幕视频在线观看 | 91丨九色丨91啦蝌蚪老版 | 国产二区视频在线观看 | 欧美一区二区三区免费观看 | 精品视频免费观看 | 中国精品一区二区 | 国产91精品欧美 | 91九色在线视频观看 | 91在线看黄 | 日韩在线观看视频一区二区三区 | 国产在线播放不卡 | 在线高清| 色噜噜狠狠色综合中国 | 97在线观看视频 | 久久综合一本 | 欧美 国产 视频 | 久久人人爽视频 | 久久婷婷开心 | 日韩区视频 | 中文字幕免费高 | 国产91全国探花系列在线播放 | 国产中文自拍 | 中文字幕久久精品亚洲乱码 | 首页中文字幕 | 国产69久久久 | 久久综合久色欧美综合狠狠 | 一区二区中文字幕在线观看 | 能在线看的av | 美女网站色免费 | 五月综合 | 国产自产在线视频 | 国产成人一级电影 | 综合网伊人 | 国产精品乱码久久久久 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 夜色成人av | 美女视频黄免费网站 | 成人99免费视频 | 亚洲免费在线观看视频 | 美女视频黄免费的 | 成人影视片 | 日韩视频一区二区三区在线播放免费观看 | 国产一级特黄毛片在线毛片 | 日狠狠 | 天天艹天天操 | 欧美精品乱码久久久久久 | 色爱区综合激月婷婷 | 欧美aa级 | 中日韩三级视频 | 亚洲香蕉在线观看 | 国产福利中文字幕 | 国产精品系列在线 | 国产一级视频在线免费观看 | 成人国产精品久久久春色 | 欧美成人黄色片 | 中文字幕美女免费在线 | 天天艹天天操 | 日韩成人精品 | 超碰免费久久 | 久久久久久久久毛片精品 | 在线免费看黄色 | 国产特级毛片aaaaaa高清 | 人人讲| 精品在线小视频 | 日韩av快播电影网 | 五月婷婷亚洲 | 久久综合五月天婷婷伊人 | 久久99在线视频 | 在线观看韩日电影免费 | 日本午夜免费福利视频 | 欧美成人一二区 | 欧美性性网| 黄色网中文字幕 | 永久黄网站色视频免费观看w | 韩国精品视频在线观看 | 欧美色噜噜 | 亚洲精品视频在线免费播放 | 成人久久免费 | 在线免费观看视频一区二区三区 | 一区二区欧美激情 | 在线观看日本高清mv视频 | av福利电影 | 91在线91拍拍在线91 | 久久99精品波多结衣一区 | 国产精品理论在线观看 | 激情黄色一级片 | 麻豆视频免费入口 | 激情一区二区三区欧美 | 久久久久综合网 | 免费看片成人 | 狠狠狠狠干 | 久久观看免费视频 | 激情婷婷在线 | 久草在线网址 | 日日爽夜夜操 | 精品a在线| 最近最新最好看中文视频 | 国产精品视频免费看 | 在线高清av | 国产精品嫩草影院99网站 | 五月天婷亚洲天综合网鲁鲁鲁 | 91探花在线视频 | 99精品视频免费 | 九九色视频 | 国产精品精品久久久久久 | 五月综合在线观看 | 久久综合干| 欧美性粗大hdvideo | 狠狠操狠狠插 | 中文字幕高清免费日韩视频在线 | 人人射人人爱 | 水蜜桃亚洲一二三四在线 | 日韩在线免费电影 | 精品成人a区在线观看 | 91av免费看| 在线黄色av | 久久一二区| 91九色老| 成人国产网站 | 成人在线免费视频 | 亚洲电影一级黄 | 91亚洲视频在线观看 | 一区在线观看视频 | 久久专区 | 久久国产精品免费 | 免费观看十分钟 | 欧美视频国产视频 | 午夜久久久久久久久 | 欧美日韩视频 | 超碰在线日韩 | 欧美日韩国产mv | av免费播放 | 精品麻豆 | 91香蕉久久 | 国产精品久久久视频 | 国产综合片 | 国产91勾搭技师精品 | 国产91全国探花系列在线播放 | 久久人91精品久久久久久不卡 | 福利视频一区二区 | 中文字幕日韩在线播放 | 久久久性| 丰满少妇在线观看网站 | 成在人线av| 久久久2o19精品 | 丁香久久| 亚洲精品456在线播放第一页 | 成人av电影免费 | 国产精品中文在线 | 天天摸日日摸人人看 | 久久久国产一区二区三区 | 狠狠的干狠狠的操 | 亚洲成年片| 激情五月播播久久久精品 | 久久免费成人网 | 国产123区在线观看 国产精品麻豆91 | 天天爱天天射 | 欧美 日韩 久久 | 亚洲午夜精品一区二区三区电影院 | 九九视频这里只有精品 | 日韩精品一区二区三区不卡 | 国产最新在线观看 | 久久美女视频 | 在线日本看片免费人成视久网 | 国产精品99久久久精品免费观看 | 99精品免费观看 | 亚洲久久视频 | 中文av影院| 国产91在线观 | 91麻豆国产福利在线观看 | 亚洲五月六月 | 精品999久久久 | 久草在线视频免费资源观看 | 亚洲欧美综合精品久久成人 | 国产一级黄色av | 中文字幕第一页在线视频 | 在线日韩视频 | 曰韩在线 | 伊人www22综合色 | 日韩av电影国产 | 在线直播av| 国产精久久久久久久 | 亚洲成aⅴ人在线观看 | 国产精品欧美一区二区 | 91精品国产综合久久婷婷香蕉 | 亚洲国产精品第一区二区 | 久久综合狠狠综合久久综合88 | 成人天堂网 | 精品毛片久久久久久 | 狠狠网| 99久久久久久久久 | 欧美色伊人 | 国产综合91| 亚洲三级国产 | 日韩欧美高清免费 | 国产精品不卡视频 | a电影在线观看 | 黄色的视频网站 | 欧美极品少妇xbxb性爽爽视频 | 国产 色| 久久精品99国产精品酒店日本 | av资源免费在线观看 | 香蕉网址 | 韩国视频一区二区三区 | 中文字幕在线免费 | 国产成人av综合色 | 亚洲欧美在线视频免费 | 一区二区三区四区免费视频 | 亚洲欧美日韩在线看 | 又黄又爽又刺激 | 久久国产精品99久久人人澡 | 国产麻豆视频在线观看 | 久久视频精品在线 | 日日夜夜天天操 | 亚洲网久久 | av一区在线| 亚洲免费av电影 | 久久综合久久八八 | 国产 日韩 欧美 自拍 | 成人在线观看影院 | 午夜91视频 | 国产免费黄视频在线观看 | 精品久久久网 | 日韩黄色网络 | 九九九在线 | 又黄又爽又色无遮挡免费 | 91成人短视频在线观看 | 久久夜色精品国产欧美乱 | 成人在线免费看视频 | 亚洲欧美日韩一区二区三区在线观看 | 亚洲第一成网站 | 黄色一及电影 | 久久久国产成人 | 啪嗒啪嗒免费观看完整版 | 亚洲日韩精品欧美一区二区 | 久久视频中文字幕 | 91人人揉日日捏人人看 | 国产精品福利午夜在线观看 | 亚洲精品黄色片 | 麻豆91网站 | 91在线免费播放视频 | 91免费版成人 | 日韩一级片网址 | h久久| 中文字幕在线观看网址 | 99超碰在线播放 | 亚洲一级片av | 日日操夜夜操狠狠操 | 午夜视频一区二区 | 国产欧美久久久精品影院 | 最新国产一区二区三区 | 久草影视在线 | 国产精品永久免费观看 | 91久久久国产精品 | 亚洲婷婷综合色高清在线 | 久久久受www免费人成 | 亚洲一区视频免费观看 | 亚洲色图美腿丝袜 | 久草在线视频看看 | 日本天天操 | 国产精品美女www爽爽爽视频 | 亚洲国产日韩一区 | 日韩久久精品一区二区 | 久久精品91视频 | 狠狠地日| 久草在线综合网 | 免费观看性生活大片 | 欧美九九九 | 热久久这里只有精品 | 丰满少妇高潮在线观看 | 99久久精品免费看国产免费软件 | 天干啦夜天干天干在线线 | 丁香激情网 | 亚洲一区av | 久久99久久99精品免观看粉嫩 | 国产精品一区二区在线观看 | 黄色网大全 | 国产你懂的在线 | 久久久天堂 | 九九免费在线观看视频 | 国产亚洲婷婷免费 | 日本三级中文字幕在线观看 | 精品国产91亚洲一区二区三区www | 亚洲精品乱码久久 | 免费在线观看的av网站 | 国产精品一区二区中文字幕 | 国产精品 视频 | 精品久久毛片 | 久久99久久99精品免视看婷婷 | 一区免费视频 | 精品在线观看一区二区 | 91高清完整版在线观看 | 日本中文字幕系列 | 夜夜操网站 | 国产精品区二区三区日本 | 久久av免费 | 成人免费中文字幕 | 亚洲国产中文在线观看 | 日韩在线字幕 | 91女神的呻吟细腰翘臀美女 | 欧美一区视频 | 亚洲精品黄 | 波多野结衣在线视频一区 | 国产亚洲视频系列 | 99精品偷拍视频一区二区三区 | 激情视频二区 | 黄色小网站在线 | 国产剧情一区二区在线观看 | 国产精品入口麻豆 | 色综合久久久久久中文网 | 激情综合中文娱乐网 | 99热精品久久 | 天天射天天射 | 岛国av在线不卡 | www.夜夜操.com | 久久国语露脸国产精品电影 | 久久国产精品影视 | 国产尤物在线观看 | 免费在线观看一区 | 亚洲午夜精品在线观看 | 国产亚洲情侣一区二区无 | 久久高视频 | 婷婷综合 | 东方av在 | 亚洲国产剧情av | 国产91对白在线播 | 四虎影院在线观看av | 免费福利片2019潦草影视午夜 | 中文字幕在线国产精品 | 中文字幕超清在线免费 | 亚洲精品视频中文字幕 | 久久成人麻豆午夜电影 | 亚洲经典视频在线观看 | 久久精品国亚洲 | 国产男男gay做爰 | 国产色在线视频 | 天天亚洲| 超碰在线个人 | 在线免费观看不卡av | 亚洲国产精品va在线看 | 久久国产精品免费视频 | 国产一级一片免费播放放 | 亚洲国产成人高清精品 | 91热爆在线观看 | 69视频永久免费观看 | 久久夜夜爽 | 日本超碰在线 | 天天爽天天碰狠狠添 | 91av在线电影 | 丁香婷婷色综合亚洲电影 | 夜添久久精品亚洲国产精品 | 香蕉视频啪啪 | 日韩网站免费观看 | 9797在线看片亚洲精品 | 最新国产中文字幕 | 欧美日韩精品久久久 | 日韩黄色软件 | 亚州性色| 丁香5月婷婷久久 | www.狠狠色| 大荫蒂欧美视频另类xxxx | 欧美三级免费 | 欧美另类调教 | 国产69久久久 | 国产 一区二区三区 在线 | 久草视频在线看 | av黄网站 | 国产一二区精品 | 久久久久久久久网站 | 日韩aⅴ视频 | 一级黄色毛片 | 91自拍成人 | 高清视频一区二区三区 | 久久精品男人的天堂 | 亚洲综合黄色 | 深夜免费福利在线 | 免费看特级毛片 | 国产日产精品一区二区三区四区 | 久久精品一级片 | 欧美日在线观看 | 免费观看日韩av | 欧美性春潮 | 免费99视频 | 久久精品99久久久久久 | 99久久99久久精品国产片果冰 | 久草.com| 激情视频在线观看网址 | 日韩中文字幕在线 | 日韩免费中文 | 亚洲精品麻豆 | 国产精品一区二区吃奶在线观看 | 国产18精品乱码免费看 | 色吊丝在线永久观看最新版本 | 狠狠色伊人亚洲综合网站野外 | 久久免费国产精品 | 日韩特级片 | 日韩高清www | 亚洲国产精品视频 | av在线免费播放 | 国产高清专区 | 亚洲在线不卡 | 四虎成人精品 | 日韩精品大片 | 日日日干 | 国产精品久久久久久久7电影 | 午夜 在线 | 黄色大片免费网站 | 天堂资源在线观看视频 | 一本色道久久综合亚洲二区三区 | 国产美女精品人人做人人爽 | 97操碰| 婷婷四房综合激情五月 | 久久精品综合网 | 国产精品毛片久久蜜 | 奇人奇案qvod| 日韩欧美视频在线免费观看 | 日韩欧美有码在线 | 日本精品视频一区 | 在线观看日韩国产 | 久久久久久精 | 亚洲免费精品视频 | 国产伦理一区 | 香蕉视频网站在线观看 | 97精品免费视频 | aa级黄色大片 | 欧美精彩视频在线观看 | 成人av电影网址 | 欧美日韩精品免费观看视频 | 高清日韩一区二区 | 久草9视频 | 欧美性高跟鞋xxxxhd | www在线免费观看 | 中文字幕丝袜 | 国产最顶级的黄色片在线免费观看 | 最近日本中文字幕 | 欧美日韩在线精品 | 粉嫩aⅴ一区二区三区 | 91精品伦理 | 中文字幕国产亚洲 | 97超碰在线久草超碰在线观看 | 在线国产一区二区三区 | 亚洲色图色 | 伊人久久一区 | 午夜精选视频 | 久久久网页| 久久99这里只有精品 | 国产亚洲婷婷 | 五月天激情综合 | 国产精品视频免费看 | 2019天天干夜夜操 | 99热这里只有精品免费 | 2021国产在线视频 | 日韩免费三区 | 在线免费观看不卡av | 天天插狠狠插 | 国产免费中文字幕 | 亚洲国产中文字幕在线观看 | a黄色| 免费av网址在线观看 | 亚洲乱码久久久 | 亚洲一区精品人人爽人人躁 | av福利资源 | 欧美精选一区二区三区 | 久久久久久久久久影院 | 五月天久久激情 | 日韩免费高清在线 | 国产精品18videosex性欧美 | 国产麻豆精品在线观看 | 色综合久久久久久久久五月 | 免费又黄又爽视频 | 久久精品高清 | 国产999视频在线观看 | 国产亚洲小视频 | 免费欧美 | 国产在线免费观看 | 欧美国产日韩激情 | 国产精品嫩草影院123 | 天天综合导航 | 精品中文字幕在线播放 | 在线观看www. | 国产91在线看 | 国产精品免费久久久久久 | 五月天婷婷丁香花 | 久久久久久久久久久高潮一区二区 | 日韩一级黄色av | 欧美一级淫片videoshd | 亚洲国产人午在线一二区 | 国产日韩欧美在线影视 | 亚洲一区精品人人爽人人躁 | 在线免费观看麻豆视频 | 国产精品一区二区在线 | 9热精品 | 欧美一级黄色视屏 | 韩国三级在线一区 | 精品视频国产一区 | 7777xxxx| 在线免费黄色毛片 | 久久久国产精品人人片99精片欧美一 | 亚洲国产网址 | 久久精品日产第一区二区三区乱码 | 天天射射天天 | 日韩欧美视频在线免费观看 | 国产在线观看免费观看 | 国产精品v欧美精品 | 2021久久| 国产男女无遮挡猛进猛出在线观看 | 丁香激情五月婷婷 | 日韩经典一区二区三区 | 夜夜骑日日 | 久久激情五月激情 | 国产在线色 | 天天做天天爱天天爽综合网 | 伊人视频 | 免费99精品国产自在在线 | 亚洲精品国产精品久久99 | 五月婷婷综合激情网 | 国产精品福利在线 | 99精品在线 | 成人午夜电影在线播放 | 亚洲天堂网在线视频观看 | 精品一区二区三区四区在线 | 激情欧美xxxx| 日韩视频免费观看高清完整版在线 | 天天操狠狠操 | 六月激情网 | 丁香av在线 | 91av在线免费| 成人网看片 | 久久久久国产精品一区 | 91中文在线观看 | 免费观看国产精品 | 欧美一级片免费在线观看 | 91麻豆精品91久久久久同性 | 国产性xxxx | 91免费的视频在线播放 | www.五月天激情 | 婷婷色5月 | 久久九九国产精品 | 91看片淫黄大片一级在线观看 | www91在线观看 | 色狠狠一区二区 | 狠狠色丁香久久婷婷综合五月 | 天天亚洲综合 | 久久久久久久久久伊人 | 国内精品久久久久 | 欧美精品生活片 | 免费国产ww | 999热视频 | 99热最新| 狠狠色丁香婷婷 | 亚洲精品影视在线观看 | 不卡的av在线播放 | 亚洲美女免费精品视频在线观看 | 97国产在线视频 | 亚洲国产网址 | 天天做天天爱天天综合网 | 久久精品99国产精品亚洲最刺激 | 国产一区二区三区午夜 | 在线导航av| 久草在在线视频 | 欧美国产一区二区 | 91高清免费观看 | 亚洲国产成人在线 | 911久久香蕉国产线看观看 | 一区三区视频在线观看 | 欧美一级黄大片 | 激情久久小说 | 蜜臀av夜夜澡人人爽人人桃色 | 久久超级碰视频 | 色资源网在线观看 | 中文一区二区三区在线观看 | 国产在线观看国语版免费 | 91亚洲精品国偷拍 | 国产精品亚| 欧美日韩国产页 | 亚洲五月六月 | 精品久久综合 | 色噜噜在线观看 | 韩日av在线 | 男女啪啪视屏 | 成人av手机在线 | 欧美老人xxxx18 | 亚洲精品久久久蜜臀下载官网 | 久久久国产精品人人片99精片欧美一 | 日韩色综合 | 午夜精品视频一区 | 免费亚洲精品视频 | 久久99国产精品视频 | 久久99深爱久久99精品 | 精品一区久久 | 97视频人人澡人人爽 | 337p日本欧洲亚洲大胆裸体艺术 | 99精品一区二区三区 | 又紧又大又爽精品一区二区 | 91麻豆精品国产 | 又粗又长又大又爽又黄少妇毛片 | 久久av免费| 日日射天天射 | 国产成人99av超碰超爽 | 日韩精品免费在线视频 | 亚洲一级片免费观看 | 精品国产一区二区三区在线 | 日日草视频 | 久久手机在线视频 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 99免在线观看免费视频高清 | 国产黄色片一级 | 黄色小视频在线观看免费 | 国产999精品视频 | 欧美精品久久久久久久久老牛影院 | 欧美最猛性xxxxx(亚洲精品) | 特黄特黄的视频 | 日日夜夜天天干 | 四虎国产精品成人免费影视 | 国产精品欧美 | 丁香在线观看完整电影视频 | 国产99久| 日韩免费电影网 | 99久久精品国产观看 | 一级成人免费 | 9色在线视频 | 99久久99久久精品国产片果冰 | 久久99精品久久久久久 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 综合久久精品 | 亚洲一区二区三区91 | 日韩中文字幕免费看 | 97av在线视频免费播放 | 精品国产免费一区二区三区五区 | 欧美a级片网站 | 日韩久久精品一区二区三区 | 国产精品福利在线 | 手机在线看片日韩 | japanese黑人亚洲人4k | 免费在线观看不卡av | 亚洲免费专区 | 777xxx欧美| 日韩久久精品一区二区三区下载 | 欧美日韩有码 | 国产 一区二区三区 在线 | 国产精品免费一区二区三区在线观看 | 国产日产av | 天天色综合天天 | 日韩大片在线免费观看 | 日韩高清二区 | 激情久久影院 | 欧美久久久一区二区三区 | 久草视频在线看 | 久久免费国产精品1 | 国产高清在线免费观看 | 成年人国产在线观看 | 91中文字幕 | av中文字幕第一页 | 国产精品免费一区二区 | 在线观看亚洲精品 | 国产在线观看免费观看 | 亚州精品成人 | 国产精品一区久久久久 | 久久久久久影视 | 亚洲精品网页 | 天天综合网天天 | 天天爽天天爽天天爽 | 手机av电影在线观看 | 日韩免费一级电影 | 最近久乱中文字幕 | 午夜精品一区二区三区在线播放 | av天天干 | 免费精品国产va自在自线 | 欧美 日韩 视频 | 91久久奴性调教 | 国产一区成人 | 999毛片 | 亚洲国产精品va在线看黑人 | 久久男人中文字幕资源站 | 狠狠综合| 日韩视频在线观看视频 | 999免费视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久国产在线视频 | 久久精品理论 | 欧美 日韩 视频 | 超碰97av在线| 免费视频黄 | 91在线精品观看 | 免费午夜视频在线观看 | 97干com| 色婷婷www| 午夜精品一区二区三区在线播放 | 欧美一区视频 | 黄色免费av| 操操操人人 | 国产在线a不卡 | 精品视频9999 | 特级aaa毛片 | 欧美日韩亚洲一 | 黄色午夜 | 不卡视频国产 | 人人躁| 在线观看亚洲国产精品 | 欧美性精品 | 97精品一区二区三区 | 天天干,天天插 | 97人人网 | 最近中文字幕第一页 | 9992tv成人免费看片 | 91麻豆国产福利在线观看 | 久久成视频| 中文字幕久久久精品 | 992tv人人网tv亚洲精品 | 亚洲三级性片 | 在线日本看片免费人成视久网 | 色婷婷狠狠| 久久国产精彩视频 | a在线视频v视频 | 中文字幕亚洲国产 | 久久久福利影院 | 天天曰夜夜爽 | 综合网中文字幕 | 久久99精品国产麻豆宅宅 | 亚洲经典在线 | a天堂最新版中文在线地址 久久99久久精品国产 | 黄色精品国产 | 国产日产精品一区二区三区四区的观看方式 | 国产一二区免费视频 | 日韩精品免费在线视频 | 欧美激情精品久久久久久变态 | 精品久久一 | 日韩高清观看 | 最近免费中文字幕大全高清10 | 在线影院av| 免费看黄网站在线 | 成人h动漫在线看 | 最新久久久| 久久一级电影 | 中文视频在线看 | 国产福利一区二区在线 | 国产黄大片在线观看 | 日韩簧片在线观看 | 欧美亚洲一区二区在线 | 日本久久精品视频 | 香蕉精品视频在线观看 | 99国产在线观看 | 四虎国产 | 韩国精品在线 | 成人在线一区二区三区 | 三级在线视频观看 | 91精品国产亚洲 | 久久久黄色免费网站 | 在线国产一区二区三区 | 99久久精品免费看国产麻豆 | 久久国色夜色精品国产 | 91视频免费国产 | 成人国产精品久久久 | 成人精品视频 | 国产成人精品一区二区三区免费 | 日韩视频免费看 | 丁香六月婷婷激情 | 日韩免费高清在线 | 日韩av片无码一区二区不卡电影 | 成人av一二三区 | 久久亚洲精品电影 | 日韩午夜一级片 | 99久久精品免费视频 | 最近日韩中文字幕中文 | 99精品视频免费观看 | 精品av网站 | 日韩久久激情 | 久久久精品网 | 国精产品999国精产品视频 | 国产精品一区二区三区电影 | 国产一级片一区二区三区 | 91丨九色丨高潮丰满 | 色视频成人在线观看免 | 久久黄色小说视频 | 一二区av | 黄网站色欧美视频 | 夜夜高潮夜夜爽国产伦精品 | 国产亚洲精品v | 六月激情| 亚洲自拍av在线 | 国产一区在线免费观看 | av黄色免费在线观看 | 九九热在线观看 | 成人久久久久久久久久 | 国产视频在线免费观看 | 久久精品理论 | 97在线超碰| 日本精品一 | 亚洲欧美日本国产 | 久久婷婷视频 | 国产精选在线 | 久久成人午夜视频 | 91完整版 | 亚洲午夜精品久久久久久久久 | 国产精品久久久久久久久久久久午夜片 | 丁香高清视频在线看看 | 国产精品久久久久影院 | av黄色大片 | 色综合久久久久网 | 中文在线免费一区三区 | 一区二区不卡视频在线观看 | www.香蕉视频 | 亚洲高清视频在线 | 国产看片 色 | 日日干干夜夜 | 久久一区二区三区超碰国产精品 | 97操操操| av免费线看 | 亚洲精品乱码久久久久久按摩 | 国产在线视频导航 | 一区二区三区播放 | 成人福利av | 国产999久久久 | 黄色app网站在线观看 | 国产精品完整版 | 欧美午夜精品久久久久久孕妇 | 精品国产乱码久久久久久三级人 | 91激情视频在线观看 | www.久久久.com | 亚洲一二三区精品 | 国产精品入口麻豆www | 婷婷中文字幕在线观看 | 国产电影一区二区三区四区 | 91专区在线观看 | 欧美日韩一区二区在线观看 | 黄色av免费电影 | 亚洲国产精品视频 | 成人午夜电影在线观看 | 91热这里只有精品 | 亚洲小视频在线观看 | 亚洲黄在线观看 | 中文字幕资源站 | 在线观看黄色的网站 | 久久99久久99精品免费看小说 | 国产va在线 | 99视频在线免费看 | 91人人爽久久涩噜噜噜 | 国产高清在线免费观看 | 日韩免费一级电影 | 色国产精品 | 亚洲激情小视频 | 久久精品导航 | 人人爽人人爱 | 69亚洲乱| 人人干天天干 | 色狠狠久久av五月综合 | 九九视频精品免费 | 天天爽天天碰狠狠添 | 久久免费99精品久久久久久 | 亚洲一区二区高潮无套美女 | 91xav| 狠狠狠干狠狠 | 精品一区二区三区久久久 | 波多野结衣视频一区二区三区 | 亚洲经典精品 | 狠狠干在线 | 国产亚洲激情视频在线 | 高清视频一区二区三区 | 五月婷婷色综合 | 日韩av片在线 | 久久视频在线观看中文字幕 | 91在线超碰 | 精品91在线| 精品人妖videos欧美人妖 | 精品无人国产偷自产在线 | 久久国产网站 | 亚洲五月激情 | 四虎影视精品成人 | 久久国语露脸国产精品电影 | 午夜黄色一级片 | 欧美精品久久久久久久久免 | 亚洲视频一区二区三区在线观看 | 久久另类小说 | 日韩电影在线看 | 亚洲闷骚少妇在线观看网站 | 亚洲国产日韩精品 | 91视频 - v11av | 日韩一区二区免费播放 | 亚洲午夜av| 韩国av电影网 | 久久av伊人 | 久久久久久久久久久久久影院 | 91网站免费观看 | 久久影视网 | 娇妻呻吟一区二区三区 | 嫩嫩影院理论片 | 中文字幕在线观看视频一区二区三区 | 亚洲精品97 |