色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

手動映射加載EXE:內(nèi)存中運行程序的實現(xiàn)源碼解析

手動映射加載EXE:內(nèi)存中運行程序的實現(xiàn)源碼解析 簡介一套圍繞內(nèi)存DLL與內(nèi)存加載EXE的完整源碼包面向熟悉Windows編程、希望深入進程注入與PE加載原理的開發(fā)者可用于學習如何擺脫傳統(tǒng)磁盤路徑直接在內(nèi)存中加載并執(zhí)行EXE同時以DLL接口形式對外提供調(diào)用。包內(nèi)共17個文件主要包含cpp、h源碼和rc資源腳本另有dsp、dsw工程文件、def導出定義、lib/exp鏈接文件及一個可運行的樣例DLL/EXE整體約942KB。已有192人學習過。源碼展示了從內(nèi)存中解析PE結(jié)構(gòu)、處理重定位、申請內(nèi)存并創(chuàng)建線程執(zhí)行入口點的關(guān)鍵步驟也給出了封裝接口函數(shù)的具體實現(xiàn)參考價值較高。通過閱讀工程代碼讀者可掌握CreateRemoteThread、VirtualAllocEx等API的典型用法并為自行開發(fā)內(nèi)存加載或安全分析工具打下基礎(chǔ)。1. 從磁盤啟動到內(nèi)存執(zhí)行這份DLL源碼到底在解決什么問題有一次我在排查一個進程頻繁閃退的問題查了半天發(fā)現(xiàn)根本不是程序自身的問題——是有人把另一個EXE當成DLL直接塞進了這個進程的地址空間里執(zhí)行。當時我就意識到內(nèi)存DLL、內(nèi)存加載EXE這套玩法在實際項目中遠比教科書寫得要復雜得多。這份“DLL源碼啟動”壓縮包就是這么一套完整的工程調(diào)用方宿主、被加載的EXE、簽名庫全配齊適合想做PE加載器、調(diào)試注入邏輯、研究手動映射技術(shù)的人。它的核心價值在于讓你不再依賴 CreateProcess 去拉起一個新進程而是把 EXE 當作一組二進制數(shù)據(jù)在當前進程里完成裝載、修復、執(zhí)行。這套技能在接口封裝、功能改造、逆向調(diào)試和特殊場景部署里都繞不開。2. 為什么不用 LoadLibrary手動映射的原理與選型2.1 LoadLibrary 的硬限制路徑、落盤和加載回調(diào)傳統(tǒng)的 LoadLibrary / LoadLibraryEx必須給一個磁盤路徑。Windows 會沿著這個路徑找到文件讀入系統(tǒng)緩存再交給裝載器做映射。在這個過程中文件路徑會出現(xiàn)在進程模塊列表里DLL 的加載事件會被 ETW 記錄而且 DLL 里的 DllMain 會因為進程線程狀態(tài)的變化被多次調(diào)用參數(shù)從 DLL_PROCESS_ATTACH 到 DLL_THREAD_ATTACH 輪番上陣。如果你只是想“在當前進程里跑一段現(xiàn)成的 EXE 邏輯”LoadLibrary 這條路根本行不通——它只能加載 DLL加載不了 EXE。就算你把 EXE 強行改名成 DLL裝載器會因為校驗 PE 頭、檢查 Subsystem 字段等原因拒絕加載。就算你用 LoadLibraryEx 加 LOAD_LIBRARY_AS_DATAFILE 把它當數(shù)據(jù)文件讀入那也只是把二進制讀進內(nèi)存并不能執(zhí)行。這就要一個更底層的方案手動映射也就是業(yè)內(nèi)常說的 Manual Map。手動映射的本質(zhì)是繞開系統(tǒng)的加載流程自己把 PE 文件的每個節(jié)區(qū)復制到內(nèi)存里修復重定位表和導入表然后直接跳到入口點。整個過程里磁盤上可以沒有這個 EXE。2.2 手動映射的六個標準步驟第一步讀取文件內(nèi)容。直接用 CreateFile ReadFile 把 EXE 的二進制讀進一塊緩沖區(qū)這塊緩沖區(qū)只是原始數(shù)據(jù)不參與執(zhí)行。第二步解析 DOS 頭和 PE 頭。校驗 e_magic 是否為 MZ、Signature 是否為 PE\0\0從這里拿到節(jié)區(qū)表、可選頭的入口點地址、鏡像基址、數(shù)據(jù)目錄。第三步按 SizeOfImage 分配一塊可讀可寫可執(zhí)行的內(nèi)存。這里有個容易踩的坑分配粒度要按 SectionAlignment 對齊不能直接拿文件大小來分配。第四步按節(jié)區(qū)表的 VirtualAddress 和 PointerToRawData把每個節(jié)區(qū)從文件偏移復制到內(nèi)存偏移同時把文件頭復制到鏡像起始位置。第五步判斷模塊被加載到的新地址是否和 ImageBase 一致。不一致就遍歷重定位表把所有絕對地址加上一個 Delta 值。第六步遍歷導入表逐個 LoadLibrary 和 GetProcAddress把導入地址表 IAT 替換成真實函數(shù)地址。最后跳到 AddressOfEntryPoint 執(zhí)行。整個流程看起來不復雜但每一步都有很多細節(jié)。一旦某一步寫錯程序不會給你報錯只會靜默崩潰。而且崩潰點往往不在出錯的那一步而是拖到執(zhí)行入口點之后才爆發(fā)排查起來非常難受。我做這個功能時習慣在每個步驟后加一個狀態(tài)輸出把 Section 數(shù)量、ImageBase、入口點地址、重定位表大小這些關(guān)鍵參數(shù)先打出來確認每一步都有據(jù)可查。2.3 三個關(guān)鍵選型點入口點、重定位、導入表入口點要不要作為線程啟動常見做法是 CreateThread傳入入口地址作為起始地址。好處是加載器線程可以立即返回不會阻塞調(diào)用方壞處是如果 EXE 的 WinMain 里做了大量初始化線程生命周期就脫離了加載器的控制。我一般傾向用 CreateThread 啟動然后 WaitForSingleObject 等待入口點函數(shù)返回這樣不會出現(xiàn)加載器線程已經(jīng)退出、入口點還在另一個線程里跑的情況。但要注意如果目標 EXE 內(nèi)部調(diào)用了 ExitProcess那整個進程還是會結(jié)束這一點沒得商量。重定位是否必須做如果 EXE 的 ImageBase 和 VirtualAlloc 分配到的地址恰好一致重定位理論上可以跳過。但這么想的基本都會翻車——VirtualAlloc 能分到的地址由系統(tǒng)決定不能保證一致。尤其是開啟了 ASLR 的系統(tǒng)EXE 頭里聲明的 ImageBase 基本不可能被滿足。所以重定位處理是所有內(nèi)存加載器里最不能省的邏輯。導入表修復則是另一個生死線它決定了 EXE 里能不能調(diào)用系統(tǒng) API。如果導入表不修復加載出來的 EXE 只要碰到一個外部函數(shù)調(diào)用就會瞬間崩掉而且崩在 ntdll 里看起來像是系統(tǒng)問題。2.4 手動映射和進程注入的區(qū)別很多人把手動映射和進程注入混為一談。實際上進程注入強調(diào)的是“把代碼放進別人的進程空間”手法可以是 CreateRemoteThread、SetWindowsHookEx、APC 注入而手動映射強調(diào)的是“不通過系統(tǒng)加載器來裝載 PE”兩者可以結(jié)合使用。比如把手動映射出來的 DLL 通過遠程線程注入到目標進程那就是一套完整的注入方案。但如果只是在自己進程里加載一個 EXE那只需要手動映射不需要遠程線程。這份資源里的做法更接近后者宿主和加載目標都在同一進程里。3. 壓縮包內(nèi)的文件布局PotPlayer 工程、HWSignature 與 SGDownload 的分工打開這個壓縮包第一眼看上去文件很多其實大部分是編譯生成物。怎么把它們分層、找出來源是能不能看懂這份源碼的關(guān)鍵。3.1 文件清單與角色判斷從文件后綴和命名看這是基于 Visual C 6.0 工程.dsp / .dsw的一套方案。我把文件分成幾類分類文件角色宿主源碼PotPlayer.dsp / PotPlayer.dsw / PotPlayer.cpp / StdAfx.cpp / StdAfx.h調(diào)用方工程主體資源與定義Potplayer.rc / resource.h / Potplayer.def界面資源與導出符號定義編譯生成物Release\HWSignature.exp / HWSignature.lib / HWSignature.dll簽名庫的導入庫和 DLL目標與臨時Bin\HWSignature.dll / Bin\temp / Release\SGDownload.exe運行時依賴與目標加載對象清理腳本刪除臨時文件.bat清理運行后殘留PotPlayer 是這個工程的宿主名字。為什么叫 PotPlayer一種可能是它借了播放器的外殼實際干的卻是加載器的活。PotPlayer.cpp 是主入口里面應該封裝了內(nèi)存加載邏輯和接口調(diào)用。注意 Potplayer.def 這個文件它在 DLL 工程里用來聲明哪些函數(shù)可以被外部程序調(diào)用如果一個 EXE 工程里出現(xiàn)了 .def很可能是想讓 EXE 也導出函數(shù)給別的模塊使用或者用它來重定向入口點。HWSignature.dll 從名字看是“硬件簽名”相關(guān)模塊可能的作用是校驗被加載的 EXE 是否合法或者在加載完成后做簽名檢查。這一塊在調(diào)試時可以直接忽略但務必保證它存在因為宿主程序加載時很可能通過 LoadLibrary 依賴了它。SGDownload.exe 是典型的目標程序——被加載者。從命名看它可能是一個下載器程序這里被當成內(nèi)存加載的對象。在真實使用場景里這個文件不應該常駐磁盤而是由宿主程序在內(nèi)存中直接執(zhí)行。3.2 調(diào)用方與被加載方的連接方式內(nèi)存加載和普通 DLL 調(diào)用最大的不同在于DLL 可以通過 GetProcAddress 找導出函數(shù)而內(nèi)存加載的 EXE 沒有標準的導出機制。那么調(diào)用方怎么和 SGDownload.exe 溝通常見做法是在調(diào)用方里定義接口結(jié)構(gòu)體。比如定義一個結(jié)構(gòu)體 SGDOWNLOAD_INTERFACE里面放函數(shù)指針。然后調(diào)用方在內(nèi)存加載完成后找到 EXE 的入口點給它傳一個結(jié)構(gòu)體地址讓它把自身的函數(shù)指針填入這個結(jié)構(gòu)體。這樣調(diào)用方就能像調(diào)用本地函數(shù)一樣調(diào)用加載到內(nèi)存中的 EXE 功能。這個思路在工程里可能以 PotPlayer.cpp 里的一段全局結(jié)構(gòu)體形式存在// InterfaceDef.h typedef struct _SGDOWNLOAD_INTERFACE { int nStructSize; // 結(jié)構(gòu)體大小用于版本協(xié)商 DWORD dwFunctionFlags; // 支持的功能位掩碼 BOOL (*SetSourceURL)(const char* lpszUrl); // 設置下載地址 BOOL (*StartDownload)(const char* lpszSavePath, DWORD dwTimeout); BOOL (*StopDownload)(void); DWORD (*GetProgress)(void); // 返回下載進度百分比 void (*Release)(void); // 釋放內(nèi)部資源 } SGDOWNLOAD_INTERFACE;這段代碼定義了調(diào)用方和內(nèi)存中 EXE 之間的接口契約。nStructSize 用于版本協(xié)商避免兩邊結(jié)構(gòu)體對齊方式不一致導致字段錯位dwFunctionFlags 讓調(diào)用方在調(diào)用前先確認目標支持哪些功能。SetSourceURL 和 StartDownload 是業(yè)務函數(shù)。通過這種結(jié)構(gòu)體傳參方式內(nèi)存加載的 EXE 也能像 DLL 一樣提供清晰的函數(shù)入口。參數(shù)里我沒有寫路徑和文件句柄因為內(nèi)存模式下不依賴落盤所有地址都是函數(shù)指針。3.3 哪些文件是源碼、哪些是生成物去掉 Release、Debug、Bin 這些目錄后純凈的源碼其實只有十來個文件。當你拿到這樣的壓縮包時第一件事是重建工程結(jié)構(gòu)新建一個目錄從 dsp / dsw 恢復 VC6 工程把 cpp / h / rc / def 放進去再編譯。編譯時注意 HWSignature.lib 要能鏈接上否則會報“無法解析的外部符號”。Release 目錄下那幾個 .exp / .lib 是為了和 HWSignature.dll 一起鏈接用的如果只是看加載器的邏輯不需要深究它的簽名算法。還要留意 PotPlayer.plg 這個文件它是 VC6 的編譯日志記錄的是某一次編譯的輸出信息。這個文件基本沒有保留價值但有時能從里面看到工程文件的編譯順序和依賴關(guān)系比如要不要先編譯 HWSignature 再編譯 PotPlayer。刪除臨時文件.bat 這個文件值得多說一句。它清理的是 Bin\temp 目錄下的臨時文件。內(nèi)存加載雖然不需要目標 EXE 常駐磁盤但在某些方案里為了配合下載流程會先把 EXE 寫到臨時目錄再立即用內(nèi)存方式讀入并刪除。這個批處理就是把沒刪干凈的殘骸清理掉。4. 手寫一版內(nèi)存加載器從 PE 解析到入口點執(zhí)行這一章是落地章節(jié)用 C 把整個手動映射流程拆開寫一遍。代碼以 Windows API 為主編譯環(huán)境可以是 VS2022也可以退回 VC6核心邏輯不變。4.1 把 EXE 讀進內(nèi)存并校驗 PE 頭// LoadFile.cpp HANDLE hFile CreateFileA(SGDownload.exe, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if (hFile INVALID_HANDLE_VALUE) { return FALSE; // 文件不存在或沒有權(quán)限 } DWORD fileSize GetFileSize(hFile, NULL); BYTE* pBuffer new BYTE[fileSize]; DWORD bytesRead 0; ReadFile(hFile, pBuffer, fileSize, bytesRead, NULL); CloseHandle(hFile); // 校驗 DOS 頭和 PE 頭 IMAGE_DOS_HEADER* pDos (IMAGE_DOS_HEADER*)pBuffer; if (pDos-e_magic ! IMAGE_DOS_SIGNATURE) { // MZ delete[] pBuffer; return FALSE; } IMAGE_NT_HEADERS* pNt (IMAGE_NT_HEADERS*)(pBuffer pDos-e_lfanew); if (pNt-Signature ! IMAGE_NT_SIGNATURE) { // PE\0\0 delete[] pBuffer; return FALSE; }這里把 EXE 整體讀成一塊緩沖區(qū)然后強轉(zhuǎn)成 IMAGE_DOS_HEADER 并校驗 e_magic再通過 e_lfanew 跳轉(zhuǎn)到 NT 頭校驗 Signature。注意 e_lfanew 這個字段是 DOS 頭里指向 PE 頭的文件偏移不能直接假設它固定是 0x80。用 ImageNtHeaders 宏也能做轉(zhuǎn)換但這里手動寫更直觀也方便打印中間變量。讀文件時我用了 FILE_SHARE_READ這樣即使目標 EXE 被其他進程打開了也不會因為共享沖突讀失敗。4.2 按節(jié)區(qū)分配內(nèi)存并復制數(shù)據(jù)// AllocImage.cpp IMAGE_OPTIONAL_HEADER32* pOpt pNt-OptionalHeader; BYTE* pImageBase (BYTE*)VirtualAlloc(NULL, pOpt-SizeOfImage, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); if (pImageBase NULL) { delete[] pBuffer; return FALSE; } // 復制文件頭部分 memcpy(pImageBase, pBuffer, pOpt-SizeOfHeaders); // 遍歷節(jié)區(qū)表并按節(jié)區(qū)實際數(shù)據(jù)大小復制 IMAGE_SECTION_HEADER* pSec IMAGE_FIRST_SECTION(pNt); for (int i 0; i pNt-FileHeader.NumberOfSections; i) { memcpy(pImageBase pSec[i].VirtualAddress, pBuffer pSec[i].PointerToRawData, pSec[i].SizeOfRawData); }分配內(nèi)存用的是 VirtualAlloc分配大小是 SizeOfImage 而不是文件大小。SizeOfImage 是加載到內(nèi)存后整個鏡像的虛擬大小包含節(jié)區(qū)對齊后的空隙和頭部對齊所以它一般會比文件大小大。如果只分配文件大小PE 頭里所有基于 VirtualAddress 的地址都會越界等執(zhí)行到入口點附近就會觸發(fā)訪問沖突。節(jié)區(qū)復制時用 PointerToRawData 去文件里取數(shù)據(jù)寫入 VirtualAddress 對應的位置。這里特意用了 PAGE_EXECUTE_READWRITE是為了避免節(jié)區(qū)權(quán)限不同導致后續(xù)寫入時崩潰正常做法是后面按節(jié)區(qū)屬性重新設置保護屬性。4.3 修復重定位表// FixReloc.cpp DWORD delta (DWORD)((BYTE*)pImageBase - pOpt-ImageBase); if (delta ! 0) { DWORD relocRVA pOpt-DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress; DWORD relocSize pOpt-DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].Size; if (relocRVA ! 0) { DWORD offset 0; while (offset relocSize) { IMAGE_BASE_RELOCATION* pReloc (IMAGE_BASE_RELOCATION*)(pImageBase relocRVA offset); DWORD count (pReloc-SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(WORD); WORD* entries (WORD*)((BYTE*)pReloc sizeof(IMAGE_BASE_RELOCATION)); for (DWORD j 0; j count; j) { if ((entries[j] 0x3000) IMAGE_REL_BASED_HIGHLOW) { DWORD* pAddr (DWORD*)(pImageBase pReloc-VirtualAddress (entries[j] 0x0FFF)); *pAddr delta; } } offset pReloc-SizeOfBlock; } } }delta 是實際加載地址和 PE 頭里聲明的首選基址之間的差。重定位表里的每一項都是一個塊結(jié)構(gòu)VirtualAddress 指明這個塊作用于哪個頁面SizeOfBlock 是這個塊的總字節(jié)數(shù)后面的 WORD 數(shù)組每一項的高 4 位表示重定位類型低 12 位是頁面內(nèi)的偏移。HIGHLOW 類型表示這是一個 32 位地址需要加上 delta。如果 EXE 沒有重定位表也就是 Base Relocation Directory 的 Size 為 0那這個 EXE 就只能加載到它的 ImageBase 上否則一定會崩。這種情況在 VC6 編譯的 Release EXE 里比較常見遇到時不要硬加載要么用 LoadLibrary 走正常路要么給工程加上 /DYNAMICBASE 重新編譯。4.4 修復導入表// FixImport.cpp DWORD importRVA pOpt-DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress; if (importRVA ! 0) { IMAGE_IMPORT_DESCRIPTOR* pImp (IMAGE_IMPORT_DESCRIPTOR*)(pImageBase importRVA); for (; pImp-Name ! 0; pImp) { char* dllName (char*)(pImageBase pImp-Name); HMODULE hDll LoadLibraryA(dllName); if (hDll NULL) { continue; // 依賴的 DLL 不在系統(tǒng)路徑或當前目錄 } IMAGE_THUNK_DATA* pThunk (IMAGE_THUNK_DATA*)(pImageBase pImp-FirstThunk); IMAGE_THUNK_DATA* pOrig (IMAGE_THUNK_DATA*)(pImageBase pImp-OriginalFirstThunk); for (; pThunk-u1.AddressOfData ! 0; pThunk, pOrig) { if (pOrig-u1.AddressOfData 0x80000000) { // 按序號導入的函數(shù) DWORD ordinal pOrig-u1.AddressOfData 0x7FFFFFFF; pThunk-u1.Function (DWORD)GetProcAddress(hDll, (char*)ordinal); } else { // 按名稱導入的函數(shù) IMAGE_IMPORT_BY_NAME* pName (IMAGE_IMPORT_BY_NAME*)(pImageBase pOrig-u1.AddressOfData); pThunk-u1.Function (DWORD)GetProcAddress(hDll, pName-Name); } } } }導入表修復的邏輯是把 EXE 里聲明的導入函數(shù)從“函數(shù)名稱”替換為實際加載到進程空間的函數(shù)地址。OriginalFirstThunk 指向原始導入名稱表FirstThunk 是 IAT兩者在編譯時可能指向同一塊數(shù)據(jù)但修復時只能改 IAT不能動 OriginalFirstThunk 指向的內(nèi)容。按序號導入時AddressOfData 的最高位為 1低位就是函數(shù)序號GetProcAddress 可以直接用序號查找。按名稱導入則要解析 IMAGE_IMPORT_BY_NAME里面是 Hint 加函數(shù)名字符串。如果 LoadLibrary 返回 NULL說明目標 EXE 依賴的這個 DLL 不在系統(tǒng)的搜索路徑里這時候要自己先 LoadLibrary 一個絕對路徑或者把 DLL 目錄加到當前進程的搜索路徑中。4.5 執(zhí)行入口點并管理線程生命周期// RunEntry.cpp BYTE* entryPoint pImageBase pOpt-AddressOfEntryPoint; HANDLE hThread CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)entryPoint, (LPVOID)pInterface, // 傳給入口點的參數(shù) 0, NULL); if (hThread NULL) { VirtualFree(pImageBase, 0, MEM_RELEASE); delete[] pBuffer; return FALSE; } WaitForSingleObject(hThread, INFINITE); CloseHandle(hThread); // 線程結(jié)束后再釋放鏡像 VirtualFree(pImageBase, 0, MEM_RELEASE); delete[] pBuffer;入口點地址是 AddressOfEntryPoint 相對于鏡像基址的偏移。對于 EXE 來說這個入口點一般會經(jīng)過 C 運行時初始化最終調(diào)用 WinMain。用 CreateThread 而不是直接函數(shù)調(diào)用的好處是線程有自己的??臻g入口點里即使對棧做了大量操作也不會污染加載器所在線程的棧。另一個好處是可以在外部等待線程結(jié)束便于管理生命周期。這里我傳入了 pInterface 結(jié)構(gòu)體指針也就是上一章定義的接口結(jié)構(gòu)目標 EXE 在入口點階段往里面填充函數(shù)指針。注意VirtualFree 釋放鏡像內(nèi)存必須在所有相關(guān)線程退出之后否則就是在代碼還沒有停止執(zhí)行的時候先把代碼卸載了。4.6 參數(shù)怎么傳、返回值怎么拿傳參數(shù)給內(nèi)存加載的 EXE 是一個容易忽略的問題。CreateProcess 可以通過命令行傳參數(shù)而內(nèi)存加載的入口點函數(shù)簽名理論上只有一個參數(shù)也就是我們常說的 lpParameter。這個自由度其實很大——你可以傳一個整數(shù)可以傳一個字符串指針也可以傳一個結(jié)構(gòu)體指針。我一般把所有參數(shù)包成一個結(jié)構(gòu)體里面放業(yè)務需要的 URL、保存路徑、超時時間、回調(diào)函數(shù)等。返回值通過結(jié)構(gòu)體里的指針帶回來比如結(jié)構(gòu)體里放一個 int* pResult目標程序執(zhí)行完把結(jié)果寫到這個地址。如果目標 EXE 的入口點是標準 WinMain那它的返回值要通過 ExitProcess 或者 return 返回。在線程場景下入口點 return 的值會變成線程退出碼可以通過 GetExitCodeThread 拿到。注意拿返回值要在 WaitForSingleObject 之后調(diào)用線程沒結(jié)束就拿退出碼結(jié)果是不確定的。5. 常見問題與排錯加載器翻車的五條血淚經(jīng)驗5.1 加載后進程活著但主窗口沒出現(xiàn)現(xiàn)象加載返回成功線程也創(chuàng)建了但目標 EXE 的主窗口沒彈出來進程卻在后臺跑著任務管理器里能看到進程存在。原因最常見的是入口點用的不是正常的 WinMain 入口流程。很多 EXE 在 WinMain 被調(diào)用前有一大段 CRT 初始化邏輯包括解析命令行、初始化全局變量、設置錯誤模式。如果直接跳到 AddressOfEntryPoint這些初始化步驟就被跳過了導致窗口創(chuàng)建失敗或者窗口類沒有注冊。解決確認目標 EXE 是否使用動態(tài)鏈接 CRT。如果是它的入口點通常是 mainCRTStartup 或 wWinMainCRTStartup這類入口點會調(diào)用 _cexit 清理邏輯。在調(diào)試器里設斷點看第一次異常發(fā)生在哪一步如果停在 CRT 源碼里就說明初始化路徑不對。另一個排查方向是檢查目標 EXE 是否依賴當前目錄下的 DLL如果 DLL 沒找到入口點可能在 LoadLibrary 階段就失敗返回了。5.2 一執(zhí)行就報 0xC0000005 崩潰定位到重定位段現(xiàn)象加載成功但入口點執(zhí)行不到三行就崩潰調(diào)試器停在一條 mov 指令上崩潰地址指向一個明顯不屬于任何模塊的地址。原因大概率是重定位被跳過了。如果 EXE 的 ImageBase 是 0x400000而 VirtualAlloc 返回的是 0x1A0000那么所有絕對地址都指向了錯誤的位置。還有一種情況是重定位表解析循環(huán)寫錯了比如 SizeOfBlock 計算錯誤導致跳過了某些塊修復了錯誤地址。解決打印 delta 值確認它不為 0。同時在重定位修復后把導入表地址隨機抽幾個打印出來和 GetProcAddress 的結(jié)果比對。如果發(fā)現(xiàn) AddressOfData 指向的地址不在 pImageBase 到 pImageBase SizeOfImage 的范圍內(nèi)基本就是重定位沒修對。還有一種玄學情況目標 EXE 是 x64 的你用了 32 位重定位邏輯去解析類型值根本匹配不上。遇到這種就先確認目標架構(gòu)和加載器架構(gòu)一致。5.3 頁面權(quán)限導致的訪問沖突RWX 段被 DEP 攔截現(xiàn)象重定位和導入表都修了運行時依然會偶發(fā)崩潰尤其是調(diào)用一些全局變量或者回調(diào)函數(shù)的時候。有時候加載器自己沒問題換了臺機器就崩。原因有的 EXE 代碼段和數(shù)據(jù)段對權(quán)限要求不同。全部用 PAGE_EXECUTE_READWRITE 雖然能跑但某些 API 比如 VirtualProtect 或 DEP 策略會對 RWX 段做特殊處理導致執(zhí)行到代碼段時被強制攔截。尤其是開啟了 CFG控制流保護的系統(tǒng)對間接調(diào)用目標有校驗RWX 內(nèi)存塊不在白名單里就會被拒絕。解決按節(jié)區(qū)屬性分別設置內(nèi)存權(quán)限。節(jié)區(qū)表里每個 Section 有 Characteristics 字段IMAGE_SCN_MEM_EXECUTE 表示可執(zhí)行IMAGE_SCN_MEM_READ 表示可讀IMAGE_SCN_MEM_WRITE 表示可寫。分配內(nèi)存時先用 MEM_RESERVE 保留整個 SizeOfImage 地址空間再按節(jié)區(qū)用 MEM_COMMIT 逐段提交然后根據(jù) Characteristics 用 VirtualProtect 設置對應權(quán)限。這樣代碼段是 PAGE_EXECUTE_READ數(shù)據(jù)段是 PAGE_READWRITE更接近系統(tǒng)正常加載的行為。5.4 殺毒軟件隔離 Bin 目錄下的 DLL 和 EXE現(xiàn)象編譯好的 Bin 目錄里HWSignature.dll 和 SGDownload.exe 偶爾會神秘消失或者被隔離到病毒隔離區(qū)。重新編譯后過一陣子又出現(xiàn)同樣情況。原因手動映射是一種高級監(jiān)控技術(shù)很多殺毒軟件會把“在內(nèi)存中分配 RWX 內(nèi)存 寫入代碼 跳轉(zhuǎn)到入口”識別為后門行為。工程里的 HWSignature.dll 如果做了簽名校驗邏輯也容易被靜態(tài)特征誤判。這不算加載器的邏輯錯誤但會直接影響復現(xiàn)。解決本地做加載器研發(fā)時把整個工程目錄加入殺毒軟件白名單或者干脆在虛擬機里做測試。不要在裝有重要資料的機器上反復編譯這類工程。如果你的目標是做正常的功能封裝建議優(yōu)先考慮標準 LoadLibrary GetProcAddress只有確實需要內(nèi)存加載時才動用這套方案。5.5 刪除臨時文件.bat 把正在運行的目標 EXE 刪了現(xiàn)象加載器運行過程中執(zhí)行一次批處理之后目標程序突然閃退或者下次運行提示找不到 SGDownload.exe。原因批處理清理的是 Bin\temp 目錄。如果加載器把 EXE 寫進 temp 后還沒來得及讀入批處理就先把它刪了加載自然就失敗。如果加載器運行完后批處理立刻清理又可能刪掉一個還在被映射到內(nèi)存的文件。更隱蔽的問題是第一次加載沒有釋放文件句柄批處理刪不掉文件但把它標記為“待刪除”進程退出后文件就消失了第二次運行就找不到。解決延遲清理時機。批處理里加一段 timeout 等待加載器完全退出或者讓加載器自己負責刪除臨時文件而不是依賴外部腳本。我現(xiàn)在的習慣是凡是需要落盤再讀入的場景文件刪除統(tǒng)一放在加載函數(shù)返回之后用 try-finally 的結(jié)構(gòu)保證任何分支退出時都會執(zhí)行清理同時清理前校驗句柄已關(guān)閉。6. 進階用法把加載器封裝成帶接口的 DLL到這一步手動加載已經(jīng)能跑通了。但實際項目里不會把加載邏輯寫死在 EXE 里而是封裝成 DLL對外暴露接口讓宿主程序通過普通 LoadLibrary 調(diào)用。這樣既方便復用也讓內(nèi)存加載的黑匣子只對調(diào)用方開一個小口。接口設計大概是這樣// MemLoader.h typedef struct _MEMLOADER_PARAMS { const char* lpFilePath; // 目標 EXE 路徑 void* lpReserved; // 保留參數(shù) HANDLE hThread; // 返回的主線程句柄 DWORD dwLoadFlags; // 0 表示只用內(nèi)存加載1 表示加載后落盤清理 } MEMLOADER_PARAMS; BOOL __stdcall MemLoadExe(MEMLOADER_PARAMS* pParams); BOOL __stdcall MemUnloadExe(HANDLE hThread);MemLoadExe 內(nèi)部完成整條加載鏈路成功返回 TRUE同時把主線程句柄存到參數(shù)里。MemUnloadExe 負責通知目標 EXE 退出并等待線程結(jié)束。如果需要更復雜的狀態(tài)反饋可以再加一個回調(diào)函數(shù)指針讓宿主主動感知加載進度。調(diào)用方只需要HMODULE hLoader LoadLibraryA(MemLoader.dll); typedef BOOL(__stdcall *PFN_Load)(MEMLOADER_PARAMS*); PFN_Load pfnLoad (PFN_Load)GetProcAddress(hLoader, MemLoadExe); MEMLOADER_PARAMS params {0}; params.lpFilePath SGDownload.exe; params.dwLoadFlags 0; BOOL bOK pfnLoad(params);封裝之后還有一個好處可以把接口結(jié)構(gòu)體版本化。如果目標 EXE 升級了函數(shù)指針數(shù)量變化了通過 nStructSize 判斷兩邊版本是否匹配不匹配直接返回錯誤而不是等到調(diào)用時崩潰。這些話聽起來簡單但真去封裝的時候你會發(fā)現(xiàn)內(nèi)存加載和 DLL 生命周期管理糾纏在一起。比如卸載時不能在目標 EXE 的線程內(nèi)部調(diào)用 VirtualFree 釋放鏡像否則會先把自己正在執(zhí)行的代碼釋放掉。正確做法是從外部線程釋放而且要先讓目標 EXE 的所有子線程退出。從那以后我每次封裝加載器都會強制走一遍“加載 → 運行 → 卸載 → 再次加載”的回歸測試特別是卸載后馬上再加載同一份鏡像的場景。這個流程能暴露絕大多數(shù)內(nèi)存管理問題希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品69久久久久久久| www.yeyecao| 国产一区二区在线播放量| 日韩激情啪啪| 欧美黑人日韩少妇色情| 日本三级日本三级99| 久热精品色情| 欧美Ⅴ性爱| 少妇二级| 国产尤物在线三区| 亚洲欧美日韩夜夜| 久久久久婷婷精品av电影| 国产精品黑人一区二区三区| 白嫩嫩一区| 日本大香蕉综合网红本杳社区| 91综合网在线| 日韩免费a级毛片无码a∨| 无码聚合| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 欧洲亚洲人人爽爽视频| 久久精品国产99精品亚洲蜜... | 亚洲图片欧美在线视频| 色哟哟精品1精品2| 国产亚州精品美女久久久免费| 国产超碰在线一区| 国产精品久久久 | 777AV电影| 久久久久久久久久久97| 亚洲国产精品无码AV在线| 97精品综合久久网| 日韩,欧美,中文在线| 躁躁日曰躁2020| A片A5445444| 狠狠图片青青草| 伊人久久综合影院精品久久久 | 国产精品久久久久久 百度| 美女淫穴| 久久高清欧美国产| 色路综合| 国产13区| 人人贴人人摸| 亚州五月| 啊啊啊啊啊在线视频| www久久国产精品| 欧洲亚洲人妻无码中字久久三区四区| 欧亚性爱视频免费看| 精人妻无码一区二区三区伊人直播| 欧洲欧美视频一区二区| 91操人| 全球成人中文在线| 色臀AV| 国产高清1234区| 无码一区免费在线不卡| 日本999精品| 全球成人中文在线| 东北毛片| 粉嫩小泬久久久一区二区| 无码在线亚洲| 九九九精品成人免费视频小说| 亚洲91亚洲| 人妻少妇被猛烈进入中| 上床啊啊啊| 一区中文字幕二区日韩| 国产亚洲精品玖玖玖在线观看| 97久久超碰日韩精品| www鬼畜国产男人的天堂| 欧美日韩大黄片| 精品人妻久久久久一区二区三区| 成人色女网| 秋霞影音一区二区三区| a级免费在线观看| 91 丝袜在线观看| 男人天堂2019亚洲| 亚洲综合小说另类图欧美视频激情小说色五月天 | 国产精品粉嫩福利在线| 情色日播放AV| 久久综合激情| 免费作爱一级视频| 沈阳熟女高潮对白视频| 婷婷午夜清品久久久久久久性色视频观| 久久久久久久久久久人妻| se01国产在线视频| 69精品| 久久噜| 天美av在线观看| 日韩欧美亚洲一区二区三区影院| 国产一区自拍欧美日韩| 97免费在线| 乱操9999| 欧美色图20P| 97久久久精品| 超碰碰97| 五十路熟女工口 | 日夜啪电影| 囯产操逼片| 超碰国产精品久| 亚洲精品97| 久久青娱乐| 久久久18禁| 综合网,亚洲,欧美| 激情自拍 校园春色| 操逼视频免费日韩无码| 国产综合网站在线播放 | 五月丁香六月综合缴清无码| 丰满人妻一区二区三区免费| 欧美亚州综合网图片| 精品九九九九九九九九九| 东北黄色电影| 99九九久久| 久久久影院| 国产亚洲99久久精品| 国产92麻豆天美精品色欲5| 国产性久久久| 强奸乱伦动态污图免费| 成人性爱电影网| 综合免费无码中文| 亚洲美女自拍偷拍视频| 成人三级片无码| 在线一道啪| 黄色电影在线播放综合网站| 天天操天天干一区二区| 无码精品人妻一区二区三区妖精| 国产小黄片在线免费观看| 日韩人妻一二三区视频| 精品一区二区成人| 色婷婷成人| 亚洲啪啪性视频| 人人操人人大香蕉| 色色色综合| 亚洲中文制服诱惑| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚 | 中字幕人妻一区二区三区| 国产在线综合福利网站| 91爱网| 激情小说亚洲| 午夜一区二区三区国产| 美女自卫慰黄网站免费| 天天综合网~69| 有码免费观看| 加勒比人妻综合| 日韩中文9| 神马久久免费电影观看| 夫妻天天操岛国视频| 国产呦精品系列在线观看| CCYY草草影院地址入口| 18禁超污无遮挡无码免费网| 久久人妻丝袜一区二区三| 中文字幕在线观看第二页| 日日干夜夜操视频h| 四季AV综合网址| 走光一区92下载| 狠狠干妹子| 久久爱97| 亚洲一曲日韩精品| 久草婷婷| 99热18这里只有精品| 久久精品国产97欧美精品亚洲 | 久久婷婷电影网| 少妇无码av专区线| 91九九| 丝袜制服字幕在线| 欧美91色| 都市久久精品激情亚洲| 一二三啪啪专区| 国产吹潮女在线观看| 欧美色另类| 韩国手机不卡无码三级视频| 欧美九9 9 9| 草蕉影视亚洲无码| 美女9118禁| 国产av波波国产精品| 亚洲欧美经典一区二区| 国产熟女| 人人爱人人乐人人操| 日韩无码黄色片| 99精品在线| 国产一区二区三区久久精品太古里| 欧美精品系列| 日韩三级天堂在线观看| 宗合情欲网| 天美av在线| 国产亚洲欧美每日在线| 伊人色综合超碰| 亚洲脚交| 黄色高清无码无码破解免费暗网| 爱干爱射网啊啊啊| 精品国产AV一区天美传媒| 国产97在线视频| 欧美东京热精品A∨| 蜜臀av中字字幕网站| 91成人亚洲色图| 亚洲成aⅴ人片不卡无码| 天天干天天干天天| 大香蕉日亚洲日本亚大| 天天弄天天操| 歐美一級亂黃99在綫精品| 日韩内| 免费av大片| 亚洲999综合| 天天日天天干天天色| 久久,精品一二三| 亚洲图片 欧美电影| 密乳AV免费观看| 操我啊啊啊啊啊| 精品人妻一区二区三区不卡断| 91人妻尻屄视频| 久久久久久久久久久999| 三级日韩一区二区三区| 久久久久久久 九九九九九九九| 蜜桃网熟妇| 国产激情在线观看| 91麻豆天美国产欧美高潮| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 69视频福利导航| 大香蕉一级黄色片久久| 中文字幕91综合| 亚洲无 码A片在线观看麻豆| 97超碰无码网| 天堂а√在线最新版在线| 欧亚久久偷拍视频| 亚洲精品国产专区在线观看| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 婷婷深爱五月| 久久久精品网| 99国产在线绯色一区| 粉嫩av平台| 国产大片精久久久久久| 国产黄片精品在线| 国内外毛片在线观看| 一级久久久久久久久久久| 亚洲欧美91√| 久jiu久神马影院| 无码人妻一区二区三区色欲aⅴ| 99999精品成人| 国产一区在线观看无码AV| 亚洲日韩久久精品一区| 日韩人妻一区二区精品| 国产精品爆乳懂色蜜乳| 99超碰网| 天天α片| 久久婷婷色| 婷婷超| 美女主播色欲91抠b在线播放| 日本不卡高清视频| 亚洲色图片区| 欧美成人综合| 激情五月天婷婷| 国产97免费视频| 中国探花熟女| 国产偷拍网站| 中文字幕av片| 亚洲综合性感在线| 日本黄 R色 成 人网站| 亚洲图片另类| 91在线限制级| 夜色五月天| 国产欧美日本亚洲精品 | AV 少妇 人妻 偷拍| 国产精品久久久久久久久久梁医生| 老鸭窝日丰县女人| AV天堂丝袜| 国产黄色 A 片免费看| 男人的天堂1024| 国产91精品久久久久久久网曝门| 十八禁啪啦拍视频无遮挡| 免费岛国一级片| 欧美淫乱视频| 狠色婷婷久久一区二区三区_| av九九| 另类视频在线| 在线电影亚洲色图| 95人妻爽爽人人做人人澡 | 丁香六月婷婷| 午夜福利精品| 搡老熟女老女人老熟妇免费视频| 欧美Ⅴ性爱| 九九九精品美女| 欧洲亚洲人妻无码久久三区四区| 丰满人妻一区二区三区免费| 91无码人妻精品一区二区三区蜜桃| 黑丝日韩av丝袜av| 天天看高清麻豆| 好看的久久不射无码影视影院| 欧美制服另类丝袜| 亚洲18禁| 欧美人妻色| 操操操操网黑人| 91真人天天在线| 蜜臀99999| 青春草A| 美女毛片999| 呦女网站| 中文久久久| 91美女小视频| 在线有码中文字幕| 亚洲综合一区二区| 日韩一级二级在线| 亚洲精品黄码久久久久| 成人av在线播放| 亚洲精品久久久久久久蜜桃臀| 国产免费一区二区三区最新不卡| 久久伦理视频久久大香蕉视频| 色偷综合| 看大黄色大片原件| 91久久久久免| 麻豆天天躁天天揉揉AV| 国产免费操逼| 色悠久久久av| 2020中文在线一区二区三区| 国产妇女精品视频青青草| 精品人妻一区二区三区四区不卡在| 免费久久一级毛片大黄| 亚洲中文制服诱惑| 青青草五月份天| 日韩欧美中文日韩欧美色| 国产女人高潮视频| 九九五月天| 69少妇一区二区| 久久AV无码1区2区3区| 欧美日韩制服| 熟妇熟女亚洲天堂网| 日韩中文字幕精品一二三事国产精品| 思思热免费在线视频| 人妻精品综合中文字幕在线| 91美女视频| 国产成人无码久久精品| 97在线视频免费看| 天天干美少妇一区| 大JI巴好深好爽又大又粗视频| 看一级黄色视频| 97干在线视频| 亚洲中文字幕日产无码久久| 中文字幕中文字幕一区二区| 麻豆一区二区AV天美| 少妇啪啪自拍| 美欧色综合| 欧美色图片91| 国产精品久久久鸭无码的功能| 欧亚揄拍偷拍精品视频| 免费黄色片子| 国产人伦a片信息免费片| 后入式999| 国产亚洲99久久精品| 国产成人91一区二区三区| 久操 高清| 午夜黄色免费在线观看| 操b在线观看| 婷婷10月天青娱乐| 裸体美女久久久| 丁香五月天激情综合| 精品视频在线观看| 蜜臀aV午夜一区二区三区| 日韩天美| 天天躁日日躁AAAXX| 久9re热视频这里只有精品| 屁股久久久久久久久| 久久免费老司机精品| 三级网色| 尤物网址| 影音先锋乱伦资源| 综合伊人网12色| 亚洲,欧美,综合网| 久久久久96| 国产熟女少妇一区| 69人妻精品一区二区绯色| 成人八戒网站| 最新国产亚洲精品精品国产亚洲综合| 国产区日韩区在线观看| 日韩小电影| 欧美在线干| 日韩图区| 天天天乱色综合全| 麻豆国产成人精品| 青青草乱入乱欲视频在线观看| 97亚洲国产影视| 色综合98| 黄总AV色图| 中文字幕88av在线| 91综合国产精品| 97色色国产视频| 欧美熟妇操操视频| 国产第二页| 91路www| 99re28在线观看| 97视频播放| 日本成a人v网站在线观看| 先锋女优在线观看视频| 国产黄色小视频网站| 午夜视频好爽啊| 91狠狠综合久久久| 欧美精品成人亚洲| 黄色十八禁| 欧美色亚洲色| 欧美1区二区三区公司 | 成人区人妻精品一| 秋霞一集毛片观看| 另类图片五月天| 好湿好紧视频| 强奸乱伦亚洲第一页| 超碰人人妻| 欧美日韩人妻婷婷一区| 绯色一区二区三区不卡少妇 | 欧美日韩91| 97精品综合久久| 国产夜夜艹| 欧亚日韩中文在线| 伊人久久综合精品欧美| 亚洲成人一二三区| 国产综合久久久麻桃个| 视频分类 国内精品| 欧美日韩大陆黑人少妇99| 亚洲国产熟妇综合色专区| 婷婷中文网| 五月天色电影| 成人av在线播放| 九九精品美女高溯喷水| 日韩小电影| 人人人人人人少妇| 五月天伊人网| 91逼逼女人91| 成全动漫视频观看免费下载| 中文三一区| 九九热AV| 亚洲成人日韩小说| 成人一级二级| 夜夜操二区| 女色综合| 亚洲熟女一区| 亚洲色 国产 欧美 日韩| 91N综合在线| 91爆操视频| 国产精品69久久久久久久| 国产亚州精品美女久久久免费| 欧美综合 站| 综合欧美激情网| 啊啊啊慢点| 国产精品对白内射| 乱欲一区二区| 中文字幕青青草| 97超碰天天爱天天爱| 国产一区自拍欧美日韩| 超碰欧美97资源| 色眯眯射| 人妻AV在线| 国产多人在线观看视频| 久久精品国产97欧美精品亚洲| 亚洲色图在线视频| 精品亚洲国产成人AV制服丝袜| 亚洲极品| 加勒比久久av| 91老熟女老女人国产老太| 簧片免费看视频| 乱操乱伦AV| 中文三一区| 国产丝袜高跟美女av免费观看| 嗯嗯啊中文字幕| 无码国产精品久久久久| 在线国产福利网址导航| 人妻性爱一区二区| 黄色工厂这里只有精品| 操逼无毒无码免费视频| 97网址97| 加勒比人妻综合| 天天看高清麻豆| 天天综合网91入口| 伊人97色天使| 欧美日韩资源在线| 日本天天人人狠狠在线日美女| 1024人妻| 日韩人妻少妇 一区二区三区| 成人性爱全视频观看| 国产传媒操逼视频| 在线观看无码三级少妇| 欧美性爱十八禁| 多乙久久久久久| 91精品女厕偷拍视频| 美女写真| 五月天婷婷欧美三区| 混色激情av| 中文字幕久久精视频久久大全| 久热色情精品| 中文字幕女同在线| 精品人妻一区二区三区免费视频| 香蕉综合网| www.99色| 日本午夜精品理论片A级APP发布| 国产精品99久久久www| 丁香六月婷婷久久综合| 亚洲丝袜色图| 四虎影视国产精品| 偷拍偷窥与盗摄视频专区| 国产精品ⅴ无码大片在线看.| av无线看| 国产91专区| 一区二区高清视频| 爆操无码| 97碰碰日本乱偷人妻中文的| 一二三区精品视频| 18禁中文字幕| 九月AV| 天天摸天天操视频| 亚洲网站一区二区在线| 日本99热| 日韩欧美中文字幕搭讪巨乳美人妻视频| 亚州男人天堂| 综合久| 日本最新1区2区3区| 成·人免费午夜在线观看| 亚洲国产成人精品久久久国产成人一区二区三. | 午夜福利免费福利视频| 国产二区三区粉嫩在线| 夜草网站| 日韩美女久久一区二区三区| 大香蕉丝袜一级片| 天天搞欧美| 高清肉丝中文无码| 高清无码91| 一本一道人妻久久一区二区三区 | 精品美女人人干| 亚洲欧美日韩精品久久久一区二区| 青草伊人网| 嗯嗯嗯嗯啊啊啊好紧好大| 密乳无码| 久久亚洲中文字幕视频| 啊啊啊啊啊啊啊啊啊在线观看| 99综合视频一体| 欧美一二三级精品在线| 久草免费在线视频| 风月影院男女十八禁| 久久国产三区| 99久在线精品99re8热| 欧美日韩啪啪电影| 国产老太乱伦一区| 东京热,男人的天堂| 天天香香欲综合| 2018色综合天天操| 免费亚洲黄色视频在线观看 | 亚洲无线码一区国产欧美国| 欧美性性性| 九七毛片九九毛片| A啊啊在线观看| 亚州色图第三区| 国产高潮AA片免费看| 亚洲激情综合另类男同| 九九九精品成人免费视频小说| 亚洲做性| 97久久精品不卡| a人欧美综合天堂麻豆| 国模无码一区二区三区在线| 超碰碰97资源站| 制服诱惑亚洲一区二区三区在线观看| 欧美 中文字幕 一区| 精品国产片亚洲一区| 美国日韩黄色片| 手机在线人成免费视频| 久久久久久亚洲中文| 一区二区免费电影久久| 国内毛片欧美香蕉精品| 婷婷婷婷婷婷久久久久| 精品国产乱码久久| 亚洲中文字幕在现观看| 亚洲av青草久久一区二区| 91日韩国产欧美亚洲另类精盘州至城都| 日韩欧美久久婷婷网站| 日韩 女同 综合| 风月影院男女十八禁| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 人妻精品一区二区全免费| 日韩精品.久久精品.AV女优.天美传媒| 99ri视频| 淮穴色AV| 97激情97激情| 精品一久久久| 伦理日韩国产久久| 亚洲综人网| 久久一二三四五六七八九区| 怡春院久久| 综合夜夜| 美国黄片aaa| 可以免费观看的日韩av毛片| 久久久久亚洲Aⅴ无码| 日韩人妻一区二区精品| 九九精品热| 情色日播放AV| 亚洲熟女乱综合一区二区三区| 超碰在线第一页| 97资源站国产精品| 欧美综合另类| 为用户提供免费看黄网址在线观看| 国产精品毛片?v一区二区三区| 一本一道波多野毛片中文在线| 户外裸露刺激视频第一区| 久久久久久久久久久久久9999| 男人的天堂亚洲| 蜜桃久久久久久| 综合视频91| 校园春色AV天堂| 国产美女口爆吞精视频| 国产亚洲精品玖玖玖在线观看| 色色婷| 亚洲最大的黄色电影网站。| 大香蕉92| 国产成久久综合片| 国产综合网站在线播放 | 国产女人91精品嗷嗷嗷嗷| av日韩在线观看电影| 美女刺激久久国产欧美| 日韩中文字幕av在线播放| 香蕉一区二区三区在线视频| 色综合加勒比四四季| 欧美线天码中字| 免费观看网黄| 色婷婷电影| 99色骚| 久操视频在线观看| 亚洲欧美日韩夜夜| 久久偷拍人| 天堂性色| 九九aV| 欧美 牲| 欧美亚洲中文| 天天插天天操| 91少妇香蕉久久精品| 久久人| 欧洲熟妇xxXx欧美老妇裸体| 99啪啪| 中文字幕在线免费观看 | 欧美性特| 96国产精品| 久久91视频| 精爱久久| 亚洲熟妇一,二,三期| 97在线精品观看视频| 一级免费啪啪片| 天美av在线观看| 欧美图片色五月天| 日韩精品一区二区日韩| 亚洲男人的天堂AV| 国产一区二区成人av在线播放| 五月丁香六月婷| 国产91美女视频| 天天看,天天做| 无码人妻系列少妇| 91在线视频免费播放| 精品97久久综合| A片大香蕉在线| 少妇诱惑视频| 性色AV蜜色av色欲av| 99青草| 亚洲 暴爽 AV人人爽日日碰| 蜜臀av一区二区三区免费观看| 九九操久久国产免费视频| 一区在线观看中文字幕| 国产精品69久久久久孕妇欧美| 性爱乱伦网址| 精品国产乱码久久久久久免费| 国产91久久九九免费精品无码| 91欧美丝袜| 九九无码视频| 久久久久久十| 久都青青视频 | 少妇同性| 国产乱色国产精品免费视| 岛国人妻少妇av在线观看| 欧美性生活免费网| 91处女在线视频| 操美女高潮抽搐白浆| 青青草色AV| 日本有码影片下载 | 91国产精品熟女| 大香蕉乱级| 精品中文日韩字幕视频| 國產尤物AV尤物在線觀看| 91熟女视频网| 中亚av| 国模无码人体一区二区三| 60秒免费小视频| 熟妇操花| 欧美成人免费在线观看| 国产精品久久久777| 熟女字幕| 强歼乱伦资源网| 啊啊啊啊,啊啊好多水| 最新欧洲欧美日本激情网站| 亚洲欧洲日本精品中文a∨| 加勒比伊人综合| 久久久久久午夜男人的天堂| 91亚洲色人| 久久久无码精品人妻二区| 日本有码影片下载| 国产精品美女在线一区| 三四中文字幕| 亚洲精品蜜桃久久久久久久| 天天综合精品| 成人麻豆av电影网站| 国产一线二线三线av| 精久久久91| 九九亚洲| 国产 热久久久久国产精品| 国产精品久久久久久久久久久久久久吹| 色婷婷综合久久久久中文一区二区| 日韩性爱再线视频| 日本操逼视频在线| 97日韩欧美亚洲| 久久夜嗨| 欧美日韩高潮喷水91| 婷婷午夜成人色中色| 亚洲欧美色图片| 欧美熟妇亚洲版| 夜夜嗨一区二区| 色香色欲天天综合网天天来吧| 亚洲春色一区二区三区| 中文字幕国产| 亚洲十八禁止| 黄色十八禁网站| 97免费在线观看| 亚洲日韩欧美一区二区| 夜夜操二区| 日韩激情啪啪| 国产一区二区三区视频在线看| 本道综合精品| 96精品久久久| 乱子伦一区二区三区国产精品| 97色冈| 五月综合色| 探花一区在线| 亚洲天堂人妻熟妇视频| 日韩高清黄片| 青娱乐淫乱1314| 亚州综合色| 亚洲高清91| 亚洲在线观看| av日韩中文字幕| 亚洲大色鬼| 日本一久是| 色综合99999| 精品人妻一区二区三区视频| 超碰97色色| 欧美色66| 亚洲色图欧美色图制服丝袜| 精品一区96| 国产欧美一区二区| 95精品在线| 久久久久国产亚洲一区欧美色图日韩| 亚洲图片 91| 亚洲色图激情小说| 欧美一区91大爱| 91男女啊啊啊| 蜜桃中文字日产乱幕4区| 在线黄页看毛片| 人妻天天夜夜爽一区二区| 欧美成人9797| 欧美亚洲国产自久久| 中文字幕一区二区三区人妻少妇在线| 91国产精品熟女| 亚洲色欲一区二区三区| 中文字幕少妇色| 亚洲精品一区二区免费在线观看| 欧美激情久久久久| 久久久少妇诱惑精品视频| 我爱操| 欧美日韩中文字幕人妻| 天天色图| 无码丰满熟妇一区二区浪潮AV| 夜色AV无码手机在线影院| 婷婷亚洲五月***久久| 久久老子无码午夜伦不卡| 五月天激情四射| 97超碰美国| 亚洲欧洲无码97久久精品| 嫩草黄页| 日逼97| 亚洲欧美国产中文视频| 无码丰满熟妇一区二区浪潮AV| 国产尤物AV尤物在线观看不卡| 高清在线偷拍自拍视频| 色香阁在线| 99久在线精品99re8a| 天天综合91入口| 成人线上超碰| 国产区91柔拿会所技师| 中文字幕在线观看视频www| 夜夜无码| 屁股久久久久久| 强奸乱伦大香蕉| 97久久视频| 欧美亚洲一区二区久久久婷精品大包诱| 校园春色亚洲无码| 亚洲性天堂| 日韩人妻制服丝袜av| 99热18| 中文字幕人妻色偷偷久久皮| 国产精品丝袜在线| 免费的黄片有限公司| 久久这里只精品99re66图| 99热精品青草在线| 男生通女生屁股| 草草影院最新网址| 九九内射在线| 欧亚日韩综合精品国产| 91综合在线| 久久这里只精品99re66图| 91红杏| 91爱啪| 国产精品香蕉热久久新品| 成年男人的天堂| 四虎AV在线播放| 国产精品久久99日日| 99这里有精品| 色九九久九九| 凹凸视频在线观看伊人| 96AV久久久| 啊啊啊啊啊好多水| 黄片在线免费在线观看| 91精品国久久久久久无码| 男女性扦B| 国产精品点击进入在线影院| 99热亚洲天堂| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 啊啊啊啊啊在线观看网址 | 97在线精品观看视频| 久久久久久夜夜夜夜夜| 青青草好吊色| 婷婷久久综合| 一二区在线观看视频| 欧美日韩国产高清在线一二三区| 天天做天天爱天天爽AV| 欲香欲色| 91国产精品熟女| 综合久久97| 花野真衣| 亚洲本色精品一区二区久久| 97舔舔| 精品人妻一区二区三区四区不卡在| 亚洲精品三| 97视频一区| 久热超碰| 欧美日韩在线小说| 亚洲色偷偷色噜噜狠狠99网| 综合色一区三区二区| 日韩人妻少妇 一区二区三区| 男女啊啊啊| 中文字幕一区av| 精品九九九九九九| 97爱免费插| 欧美人与动性人交a| 成人网欧美风情| 成人av福利在线观看| 99蜜桃臀亚洲成人在线观看| 2017人人操,人人摸| 偷拍色图| 偷窥自拍亚洲天堂网爆| 亚洲高清色综合| 欧美嗯啊……在线观看视频免费| 超碰免费97| 人妻 欧美 中文| 国产精品自在线发布| 国产精品69久久久久孕妇欧美| 超碰在线国产| 婷婷五月天激情四射| av操操不卡| 国产精品一区午夜福利| 中文字幕精品亚洲熟女| 久99热| 国产成人在线观看网址| 中文字幕十五区| 国产精品午夜高潮呻吟久久av| 精品久久97| 第四色亚洲色图| 中日韩熟女| 啊v在线观看视频| 91成人在线| 国产CHASE男男GAYGA 毛多色婷婷| 国产AV中文| 美欧老女人97| 久久五月丁香| 在线综合 亚洲 欧美中文字幕| 在线播放中文字幕| 日本一二区免费| AV无码久久久精品| 翔田千里AV无码秘 三区| 日本蜜桃| 久久久人体| 色婷婷激一区二区三区| 七月丁香婷婷| 天操天操夜操夜月月年年操操| 国产黄a三级三级三级av在线看 | 色妇91| 东京热AV男人的天堂| 美女刺激久久国产欧美| 二男一女成人A片| 日夜精品| 狠狠2050在线观看| 久热婷婷| 日韩不卡在线一区二区| 精品视频一区二区| 啊啊啊在线看| 9 7超碰在线免费观看| 99自拍视频在线观看| 久久超碰国产一区二区三区| 情色大香蕉| 丝袜无码a片| 黄色乱论网站| 欧美在线干| 欧美A片中文字幕| 久久精品店| 一二区在线观看视频| 欧色综合| 99这里有精品| 亚洲各类熟们中文字幕| 亚洲第一狼人丝袜美女另类| 熟妇乱伦一区二区| 春色综合免费| 超碰97久久国| 国产亚洲一黄| 久久一区二区三区入口| 91九色蝌蚪在线观看| 欧美碰碰综合色| 蜜桃网熟妇| 97jingpin| 日本一天色道久久久精品视频| 欧美日日网| 天天影视色香欲综合网小说| 久久内射| 欧美情色亚洲| 久久成人午夜狠狠| 91影视亚洲| 96国产污污污丝袜| 欧美熟女激情| 综合 青草 伊久久 影院 综合 | 清纯唯美综合| 撸无码不卡免费视频| 国产精品久久久九九九| 日韩美女,国产传媒,视频一区| 蜜奶av| 99999精品视频| 欧美日韩夜夜| 黄片无码在线制服| 天天干天天狼在线视频| www.av在线观看| 欧美日韩香蕉| 99热这里只有精品地址| 亚洲色诱惑| 亚洲综合精品国产一区| 黄片在线免费在线观看| 日本高清_区二区三区 | 日韩99神马视频播放片在线播放| 欧美亚洲玖玖玖| 久久久工口| 国产丝袜美女诱惑| 亚洲AV高潮| AV中文在线可看| av婷婷色网| 金典av| 啊啊啊久久久视频| 极品出轨视频网站| 97视频免费播放| 酒色综合网| 日本羞羞的视频在线播放| 中文字幕高清精品一区| 日韩性爱视频在线免费观看| 乱伦AVxx| 一区二区视频在线播放| 日本理论在线| 夜夜爽爽爽| 蜜臀精品1区2区| 九9热伊人| 日韩精品午夜操呦呦不卡影院| 91精品导航| 亚欧美无遮挡| 91春色| 中文字幕精品一区二| 亚洲激情综合另类男同| 综合免费无码中文| 动漫爆乳3D奶水一区在线观看| 性吧在线视频| 999综合色| 久久久久熟女| 亚洲AV秘无码一区..| 国产树林里野战在线看| 九九热男人天堂| 日韩天天本| 免费视频一二三区| 国产极品99热在线播放69| 中国东北熟女老太婆内谢| 亚洲色鬼| a男人的天堂| 偷拍亚洲情色| 亚洲黄色视频在线观看视频| 日韩免费福利在线观看| 久草视频分类在线| 综合网欧| 91高清欧美| 亚洲三区视频| 狼人综合婷婷激情四射 | 久久有码视频| 日本免费一级AAA大片器| 日本3级一区二区免费| 97久久久精品| 亚洲天天操| 老司机老司机午夜影院| 用力操死我| 日韩欧美女求操每天更新| 精品亚洲一区在线观看| 五月丁香| 素人伊尹大香蕉免费下载视频| 亚洲天堂久久久久久粉红视频| 日韩中文字幕视频在线观看| 白 大 人妻 区 在线| 青娱乐91| 亚洲激情AV| 99在线精品观看视频中文| 日本成人免费一区二区三区| 午夜丁香婷婷| 夫妻AV网站| 国产福利视频精品视频| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 欧洲站一级二级三级h| 亚洲男人综合| 精品久久久av| 国产精品国产精品国产| 日韩性爱免费视频在线网站| 超碰综合色| 午夜福利1区2区3区| 69人妻精品一区二区绯色| 91欧美情色| 亚洲AV无码久久久国产精品| 69精品人人人人| 韩日色费| 日本97久久久精品| …亚洲黄色厕厕女女在线播…| 狠狠色婷婷7777久| 99热精品在线观看| 欧美午夜一区二区三区| 亚洲日韩XXX| 亚洲第2页| 国精综合一二三区影视| 国产AAAAAABBBBB| 中文字幕少妇色 | 天天操天天7| 久久久久久国产精品免费网站| 一区二区三区蜜桃成人撸久久东京热 | 综合亚洲欧美| 五月婷婷综合在线| 超碰色大香蕉| 男人天堂一区二区| 91人人| 999狠狠综合| 精品人妻免费观看| 精品176精品2| 牛牛操视频逼| 98超碰日本| 精品一区二区亚洲国产| 肉丝中文无码高清| 五月婷视频| 欧美色偷偷| 丰满欧美少妇| 97香蕉网| 欧美精品双插| 青椒国产97在线熟女| 日韩欧美水蜜桃人妻| 强奸乱伦资源| 欧美色图99| 久久丁香| 欧美精品69性爱| 亚洲男人的天堂网| 伊人丁香五月婷婷| 操逼短片| 国产精品一区人妻精品阁在线| 无遮挡又黄又刺激的视频| 精品无吗久久| 日韩人妻免费精品| 91中文字幕制服丝袜免费视频| 五月婷视频| 日韩黄片影院| 91老妇女| 92人人操人人| 极品销魂美女一区二区| 神马影院午夜福利久久久| 国模精品一区二区三区苹果色戒| 91大香蕉伊人| 国产精品久久久久绯色| 亚洲色 国产 欧美 日韩| 日本一卡二区在线| 中文字幕片| av凤凰久久久| 亚洲男人综合| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 中文字幕在线观看视频www| 久久av色| 亚洲夜夜欢无码一区二区| 日韩操啪| 欧美午夜熟妇黑人精品91| 日本在线不卡123| 伊人影院综合是一个与深夜成人在线| 91老司机在线| 欧美青青视频| 91精品电影18| 中文字幕 国产区| 无码 黑人一区二区三区| 国产午夜福利合集| 啊啊啊不要啊啊受不了了视频在线 | 中文字幕日韩人妻视频一区二区三区 | 日韩激情视频| 96久久精品一二三区色欲| 91老熟妇| 偷拍亚洲情色| 国产成自自拍在线观看| 婷婷五月av| 91精品女厕偷拍视频| 一区二区视频在看| 久久人体一区二区| 97看操| 熟妇熟女一区二三区| 26uuu国产免费观看| 乱伦a片视频| 亚洲性爱成人| 青青草久草AV| 99操| 欧美最婬乱婬爆婬性视频| 日韩一区二区精品视频| 中文字幕一区二区韩| 国产呦精品系列在线观看| 中出20p| 岛国不卡超碰护士AV在线播放| 欧美美女在线高潮999| 99999精品视频| 国产欧美一区激情交| 国产精品探花视频| 再深点灬舒服灬太大了添视频| 国产一国产一级毛片古装| 久久这里只| 超碰色97| 日韩猛交| 91超碰丝袜制服| 国产少妇内射| 精品人妻一区二区蜜桃视频 | 一级@啪啪视频| 亚洲成aⅴ人片不卡无码| 999热日韩精品| 大香蕉2017| 99re这里只有| 999精品女人| 老熟乱一区二区三区四区| 91天天综合在线观看| 亚洲双插| 久久久久国色αv免费观看| 亚洲中亚日激情视频| 我想要啊 啊 啊| 精品无人区麻豆乱码1区2区图片| 女上位精品在线| 少妇高潮喷水无套久久久久久| 久久久九九| 一二三区视频在线观看| 天天综合网~91| 中文字幕视频在线观看| 97超碰护士| 成人97人人超碰人人| 26UUU欧美激情一区二区| 久久久一区二区三区三州|