久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

Windows只讀內(nèi)存與懸浮HUD:看血工具源碼拆解

Windows只讀內(nèi)存與懸浮HUD:看血工具源碼拆解 簡(jiǎn)介這份面向《魔力寶貝》玩家與C逆向編程學(xué)習(xí)者的輔助工具資料聚焦游戲內(nèi)角色血量查看需求提供可運(yùn)行程序及配套工程源碼。壓縮包共18個(gè)文件、約207KB以C源文件與頭文件為主體輔以VS工程配置、資源腳本、圖標(biāo)和可執(zhí)行文件便于在Visual Studio 2005環(huán)境中打開、編譯和繼續(xù)研究其中程序基于Win32/MFC界面與網(wǎng)絡(luò)數(shù)據(jù)解析實(shí)現(xiàn)血量顯示涉及數(shù)據(jù)包抓取、通信協(xié)議分析與內(nèi)存、指針操作等知識(shí)點(diǎn)。已有9126人瀏覽學(xué)習(xí)說明該案例在游戲輔助與逆向入門圈具有一定參考價(jià)值。讀者可從中了解一個(gè)完整小型輔助工具的項(xiàng)目組織方式、界面與邏輯分層、協(xié)議字段識(shí)別思路及調(diào)試排錯(cuò)過程也可把源碼當(dāng)作網(wǎng)絡(luò)編程和逆向工程的練習(xí)樣本需注意此類工具可能違反游戲用戶協(xié)議應(yīng)僅用于技術(shù)學(xué)習(xí)并尊重游戲公平性。1. 一個(gè)看血工具為什么值得拆從只讀內(nèi)存到懸浮窗的最小閉環(huán)朋友把這份「看血工具及其源碼」丟給我時(shí)我第一反應(yīng)是這不就是個(gè)讀內(nèi)存的小玩意嗎。真把壓縮包解開順著源碼讀下去才發(fā)現(xiàn)它是一個(gè)相當(dāng)完整的 Windows 桌面開發(fā)切片進(jìn)程枚舉、OpenProcess拿句柄、模塊基址加多級(jí)偏移解引用、內(nèi)存區(qū)域掃描定位數(shù)值最后用分層窗口把血條畫在游戲畫面角落。整條鏈路不長(zhǎng)但每一環(huán)都能單獨(dú)拎出來講也每一環(huán)都能翻車。它適合三類人想入門 Windows 內(nèi)存讀寫的 C 新手、想搞懂懸浮 HUD 怎么貼在別人窗口上的桌面開發(fā)者、手里有老工具要維護(hù)的同學(xué)。這份源碼最大的技術(shù)邊界是「只讀」——它不寫目標(biāo)進(jìn)程的內(nèi)存改數(shù)據(jù)這條路根本沒鋪所以整篇筆記也都圍著「讀」和「畫」展開。2. 工程結(jié)構(gòu)與編譯一個(gè) Win32 小工具的模塊切分2.1 目錄結(jié)構(gòu)與文件職責(zé)這類工具最怕寫成一個(gè)幾千行的main.cpp讀到一半就迷路。這份源碼的目錄大致按職責(zé)切成了七塊邊界比較清晰我按常見組織方式還原一下LookHp/ ├── src/ │ ├── main.cpp // 入口命令行參數(shù)、單實(shí)例互斥、啟動(dòng)采樣與 UI │ ├── process_reader.h/.cpp // 進(jìn)程附著、內(nèi)存讀取、模塊基址、指針鏈解析 │ ├── scanner.h/.cpp // 內(nèi)存區(qū)域遍歷與數(shù)值篩選用來定位血量地址 │ ├── sampler.h/.cpp // 采樣線程按固定節(jié)奏讀當(dāng)前/最大 HP │ ├── overlay_window.h/.cpp // 分層透明窗口、GDI 雙緩沖繪制 │ ├── config.h/.cpp // 偏移鏈、窗口坐標(biāo)、刷新間隔讀寫 ini │ └── util/ │ ├── log.h/.cpp // OutputDebugString 滾動(dòng)文件日志 │ └── str.h/.cpp // 寬窄字符轉(zhuǎn)換、窗口標(biāo)題匹配 ├── config/ │ └── offsets.ini // 基址模塊名、偏移數(shù)組、血量合理區(qū)間 ├── build/ │ └── LookHp.sln // VS 工程x86 配置 └── README.md文件職責(zé)改動(dòng)頻率process_reader.cpp所有ReadProcessMemory的出口低scanner.cpp一次性調(diào)試工具定位地址用低sampler.cpp采樣節(jié)奏、數(shù)據(jù)緩存中overlay_window.cpp繪制與窗口樣式高offsets.ini偏移鏈、血量區(qū)間極高把「讀內(nèi)存」和「畫界面」拆成兩個(gè)模塊是這份代碼里最值錢的一點(diǎn)。采樣線程只管往一個(gè)小的共享結(jié)構(gòu)里寫數(shù)據(jù)UI 線程只管從里面取中間用std::mutex或者原子變量隔開。后續(xù)想換繪制框架比如換成 Direct2D 或 ImGui只要不動(dòng)process_reader風(fēng)險(xiǎn)就鎖在一個(gè)文件里。2.2 技術(shù)棧與依賴選擇純 Win32 GDI沒有 MFC、沒有 Qt、沒有 ImGuiC11 就夠。這個(gè)選擇在 2024 年看著有點(diǎn)土但對(duì)這類工具是合適的最終 exe 只有一兩百 KB啟動(dòng)無依賴改顏色改布局也就是幾行FillRect。真上 ImGui光是引入imgui_impl_win32和imgui_impl_dx11就得多帶幾 MB 運(yùn)行庫收益并不對(duì)等。日志用OutputDebugStringW加一個(gè)文件句柄Release下編譯宏關(guān)掉輸出。配置用 ini 不用 JSON偏移鏈就那么幾個(gè)數(shù)字用GetPrivateProfileIntW讀一行就夠了還免了引第三方解析庫。這套組合的隱含要求是目標(biāo)客戶端必須是 32 位。工具跑 x86 配置讀出來的指針是 4 字節(jié)如果目標(biāo)進(jìn)程是 64 位指針變 8 字節(jié)偏移鏈上每一級(jí)都會(huì)錯(cuò)位讀出來的數(shù)字就是玄學(xué)。這一點(diǎn)后面避坑章節(jié)會(huì)再提一次。2.3 編譯與運(yùn)行的最小步驟環(huán)境準(zhǔn)備VS2019 或 VS2022安裝「使用 C 的桌面開發(fā)」工作負(fù)載。注意平臺(tái)一定要選 x86、配置選 ReleaseDebug 版在某些環(huán)境下和采樣線程配合會(huì)明顯掉幀。# 1. 用 VS 打開工程也可以走命令行 MSBuild msbuild build\LookHp.sln /p:ConfigurationRelease /p:PlatformWin32 # 2. 先以普通權(quán)限啟動(dòng)工具會(huì)自己枚舉進(jìn)程 build\Release\LookHp.exe # 3. 若日志里出現(xiàn) OpenProcess failed, err5右鍵以管理員身份重新運(yùn)行err5是ERROR_ACCESS_DENIED十有八九是目標(biāo)客戶端本身以管理員權(quán)限在跑權(quán)限低的進(jìn)程讀不了權(quán)限高的進(jìn)程這在 Windows 上是硬規(guī)則不是代碼 bug。msbuild那行里的/p:PlatformWin32不要省略很多人直接敲msbuild xxx.sln會(huì)默認(rèn)走 AnyCPU 或 x64編譯出來的 exe 一掛上去就讀不到數(shù)據(jù)。運(yùn)行起來之后工具會(huì)先讀一次配置里的偏移鏈成功就在游戲窗口左上角浮出一塊半透明面板。如果面板出來但數(shù)字是 0說明偏移鏈?zhǔn)Я巳onfig/offsets.ini檢查基址模塊名是不是寫錯(cuò)比如把Client.exe寫成了client.exe——GetModuleBaseNameW匹配區(qū)分大小寫時(shí)是比較嚴(yán)格的我一般統(tǒng)一轉(zhuǎn)小寫再比。3. 進(jìn)程附著與內(nèi)存讀取句柄、模塊基址與偏移鏈怎么走通3.1 打開進(jìn)程與權(quán)限的坑所有內(nèi)存讀取的第一步都是OpenProcess這一步錯(cuò)了后面全白搭。源碼里通常封裝成Attach(pid)bool ProcessReader::Attach(DWORD pid) { Detach(); // 先釋放舊句柄避免多開切換時(shí)句柄泄漏 m_handle OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, // 只讀夠用 FALSE, pid); if (!m_handle) { DWORD err GetLastError(); // 5 ERROR_ACCESS_DENIED權(quán)限不足 // 87 ERROR_INVALID_PARAMETERPID 已經(jīng)退出 LOGW(LOpenProcess failed, pid%lu err%lu, pid, err); return false; } m_pid pid; return true; }權(quán)限掩碼是關(guān)鍵參數(shù)。PROCESS_VM_READ決定能不能讀內(nèi)存PROCESS_QUERY_INFORMATION決定能不能查模塊信息。有人圖省事直接傳PROCESS_ALL_ACCESS在開啟了部分防護(hù)的系統(tǒng)上反而更容易失敗因?yàn)橐淮涡陨暾?qǐng)全部權(quán)限更容易被拒。只申請(qǐng)需要的那兩位成功率明顯高。如果目標(biāo)進(jìn)程權(quán)限更高就得給自己的進(jìn)程提權(quán)。常見做法是啟動(dòng)時(shí)嘗試打開SE_DEBUG_NAMEbool EnableDebugPrivilege() { HANDLE token nullptr; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, token)) return false; TOKEN_PRIVILEGES tp{}; tp.PrivilegeCount 1; LookupPrivilegeValueW(nullptr, SE_DEBUG_NAME, tp.Privileges[0].Luid); tp.Privileges[0].Attributes SE_PRIVILEGE_ENABLED; BOOL ok AdjustTokenPrivileges(token, FALSE, tp, sizeof(tp), nullptr, nullptr); CloseHandle(token); // AdjustTokenPrivileges 返回 TRUE 也可能沒生效必須再查一次 GetLastError return ok GetLastError() ERROR_SUCCESS; }這個(gè)函數(shù)有個(gè)經(jīng)典陷阱AdjustTokenPrivileges返回TRUE并不代表權(quán)限真的加上了必須再檢查一次GetLastError()是否等于ERROR_SUCCESS。我第一次寫這個(gè)函數(shù)時(shí)就被坑過日志顯示成功實(shí)際還是讀不到數(shù)據(jù)查了半天才發(fā)現(xiàn)是賬戶本身沒被授予調(diào)試特權(quán)。所以更穩(wěn)的做法是提權(quán)失敗不阻斷流程只在日志里記一條然后引導(dǎo)用戶用管理員身份重啟。3.2 模塊基址與多級(jí)指針拿到句柄后要解決「血量在哪」的問題。現(xiàn)代客戶端幾乎不會(huì)把血量放在固定絕對(duì)地址上因?yàn)槊看螁?dòng)模塊基址都會(huì)變ASLR。通用做法是先找模塊基址再沿偏移鏈逐級(jí)解引用uintptr_t ProcessReader::ModuleBase(const wchar_t* name) const { HMODULE mods[256]; DWORD needed 0; if (!EnumProcessModulesEx(m_handle, mods, sizeof(mods), needed, LIST_MODULES_ALL)) return 0; for (DWORD i 0; i needed / sizeof(HMODULE); i) { wchar_t path[MAX_PATH]{}; if (GetModuleBaseNameW(m_handle, mods[i], path, MAX_PATH) _wcsicmp(path, name) 0) { return reinterpret_castuintptr_t(mods[i]); } } return 0; } uintptr_t ProcessReader::ResolvePointer(uintptr_t base, const std::vectoruintptr_t offsets) const { uintptr_t addr base; for (size_t i 0; i offsets.size(); i) { uintptr_t next 0; if (!Read(addr, next)) return 0; // 任意一級(jí)失敗就返回 0交給上層判斷 addr next offsets[i]; } return addr; }ModuleBase里的LIST_MODULES_ALL是為了把 32 位模塊也一起列出來不加這個(gè)標(biāo)志在某些 64 位進(jìn)程里會(huì)漏掉模塊。ResolvePointer的語義要講清楚它從base開始讀一次內(nèi)存拿到指針值加上偏移再讀再加直到偏移鏈走完返回最終地址。偏移鏈通常形如[[[base 0x1A2B3C] 0x10] 0x24]在 ini 里就存成0x1A2B3C,0x10,0x24三個(gè)數(shù)字。注意Read的模板寫法要按目標(biāo)位數(shù)來。32 位進(jìn)程里指針是 4 字節(jié)所以next應(yīng)該聲明為uint32_t如果工具編譯成 64 位程序去讀 32 位目標(biāo)用uintptr_t會(huì)一次讀 8 字節(jié)把相鄰字段也讀進(jìn)來偏移鏈立刻錯(cuò)位。這就是前面強(qiáng)調(diào)必須編 x86 的原因不是玄學(xué)是字節(jié)數(shù)。3.3 內(nèi)存掃描定位血量偏移鏈不是天上掉的是掃出來的。源碼里scanner.cpp就是那個(gè)「一次性調(diào)試工具」先知道血量當(dāng)前值然后在目標(biāo)進(jìn)程的可讀寫內(nèi)存里找這個(gè)數(shù)改一下血量再篩一次直到候選地址收斂到個(gè)位數(shù)。// 首次掃描遍歷目標(biāo)進(jìn)程所有已提交且可讀寫的內(nèi)存區(qū)域 std::vectoruintptr_t ScanInt32(HANDLE h, int32_t target) { std::vectoruintptr_t hits; MEMORY_BASIC_INFORMATION mbi{}; uintptr_t addr 0; const size_t kChunk 64 * 1024; std::vectoruint8_t buf(kChunk); while (VirtualQueryEx(h, reinterpret_castLPCVOID(addr), mbi, sizeof(mbi))) { uintptr_t regionEnd reinterpret_castuintptr_t(mbi.BaseAddress) mbi.RegionSize; bool readable (mbi.State MEM_COMMIT) (mbi.Protect (PAGE_READWRITE | PAGE_WRITECOPY | PAGE_EXECUTE_READWRITE)); if (readable) { for (uintptr_t p reinterpret_castuintptr_t(mbi.BaseAddress); p regionEnd; p kChunk) { SIZE_T want static_castSIZE_T( minuintptr_t(kChunk, regionEnd - p)); SIZE_T got 0; if (!ReadProcessMemory(h, reinterpret_castLPCVOID(p), buf.data(), want, got)) continue; // 區(qū)域中間可能有空洞跳過即可不要中斷整輪掃描 for (size_t off 0; off sizeof(int32_t) got; off 4) { int32_t v *reinterpret_castint32_t*(buf.data() off); if (v target) hits.push_back(p off); } } } addr regionEnd; } return hits; }VirtualQueryEx的返回值和mbi.RegionSize是循環(huán)的兩個(gè)關(guān)鍵前者為 0 表示走到地址空間末尾后者告訴你這一段的長(zhǎng)度addr regionEnd就是往下一段推進(jìn)。mbi.State MEM_COMMIT過濾掉未提交的保留區(qū)Protect里帶PAGE_READWRITE才是候選數(shù)據(jù)區(qū)只讀區(qū)和代碼段基本不用掃。ReadProcessMemory在一整段里也可能失敗比如中間夾著保護(hù)頁。失敗時(shí)直接continue而不是break否則一個(gè)區(qū)域的頭部失敗會(huì)讓后面幾十 MB 全被跳過掃描結(jié)果里就會(huì)莫名其妙地少一堆候選。步長(zhǎng)用 4 是因?yàn)檠炕臼?32 位整型對(duì)齊訪問命中率最高有些客戶端血量是浮點(diǎn)或int64那就得把步長(zhǎng)和比較方式一起改。掃完之后還不是終點(diǎn)幾十萬候選地址里怎么收斂到真地址靠「值變化再篩」讓血量掉一點(diǎn)用新值在候選集里過一遍反復(fù)兩三次通常就剩兩三個(gè)。剩下的地址再反查是誰指向它一層層倒推回模塊基址得到的就是偏移鏈。這個(gè)過程沒有捷徑純手工加耐心屬于典型的血淚經(jīng)驗(yàn)。3.4 一個(gè)夠用的 Reader 封裝把上面這些揉在一起ProcessReader對(duì)外其實(shí)只需要四個(gè)方法Attach、Detach、ReadT、ResolvePointer。所有讀取都走同一個(gè)出口好處是錯(cuò)誤處理只需要寫一遍日志里也能帶上統(tǒng)一的 PID 和地址出問題時(shí)排查路徑非常短。template typename T bool Read(uintptr_t addr, T out) const { if (!m_handle) return false; SIZE_T got 0; BOOL ok ReadProcessMemory(m_handle, reinterpret_castLPCVOID(addr), out, sizeof(T), got); return ok got sizeof(T); }got sizeof(T)這個(gè)判斷別省。ReadProcessMemory返回TRUE但只讀了一部分的情況是存在的跨頁邊界此時(shí)out里是半截臟數(shù)據(jù)直接拿去算血量比例會(huì)得到離譜的數(shù)字。加上長(zhǎng)度校驗(yàn)讀失敗就整條鏈判廢比事后對(duì)著屏幕上詭異的數(shù)值發(fā)呆強(qiáng)。4. 懸浮窗與采樣節(jié)奏讓 HUD 貼在別人窗口上還不卡4.1 分層透明窗口與點(diǎn)擊穿透懸浮窗的核心是三個(gè)擴(kuò)展樣式WS_EX_LAYERED負(fù)責(zé)透明度WS_EX_TRANSPARENT負(fù)責(zé)鼠標(biāo)點(diǎn)擊穿透WS_EX_TOPMOST負(fù)責(zé)置頂。少任何一個(gè)體驗(yàn)都會(huì)崩沒有穿透面板擋住的地方點(diǎn)不動(dòng)沒有置頂切一下窗口面板就被蓋住。HWND OverlayWindow::Create(HINSTANCE hInst) { m_hwnd CreateWindowExW( WS_EX_LAYERED | WS_EX_TRANSPARENT | WS_EX_TOPMOST | WS_EX_TOOLWINDOW, kClassName, LLookHp HUD, WS_POPUP, // 無邊框純自繪 0, 0, 320, 96, nullptr, nullptr, hInst, nullptr); // 整體 alpha232 左右既能看清字又不至于完全擋住畫面 SetLayeredWindowAttributes(m_hwnd, 0, 232, LWA_ALPHA); ShowWindow(m_hwnd, SW_SHOWNOACTIVATE); // 不要搶焦點(diǎn) return m_hwnd; }WS_EX_TOOLWINDOW的作用是讓面板不出現(xiàn)在任務(wù)欄和 AltTab 列表里工具感更強(qiáng)。SW_SHOWNOACTIVATE保證窗口顯示時(shí)不搶焦點(diǎn)否則游戲會(huì)瞬間失去前臺(tái)狀態(tài)有些客戶端會(huì)因此暫停渲染看著就像工具把游戲搞卡了。窗口位置需要跟隨目標(biāo)窗口。常見做法是起一個(gè) 500ms 的定時(shí)器用GetWindowRect拿目標(biāo)窗口的客戶區(qū)坐標(biāo)再用SetWindowPos把 HUD 挪過去。這里要注意 DPI顯示器縮放 125% 或 150% 時(shí)GetWindowRect拿到的是物理像素如果進(jìn)程沒聲明 DPI 感知Windows 會(huì)幫你做一次虛擬化縮放坐標(biāo)就對(duì)不上。在工程里加一個(gè)SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2)位置偏移的問題基本就消失了。4.2 采樣線程與刷新節(jié)奏讀內(nèi)存和畫界面必須分線程。放在 UI 線程里ReadProcessMemory偶爾的幾十微秒延遲會(huì)直接反映成面板抖動(dòng)拆成獨(dú)立線程采樣節(jié)奏和渲染幀率就各管各的。void Sampler::Run() { while (!m_stop.load(std::memory_order_relaxed)) { HpPair v{}; uintptr_t cur m_reader.ResolvePointer(m_base, m_offsets); // cur 0 表示偏移鏈任意一級(jí)讀失敗這一輪直接跳過 if (cur m_reader.Read(cur, v.current) m_reader.Read(cur 4, v.maximum)) { if (v.maximum 0 v.current 0 v.current v.maximum) { std::lock_guardstd::mutex lk(m_mtx); m_latest v; // 只有通過合理性校驗(yàn)的數(shù)據(jù)才寫進(jìn)共享區(qū) } } std::this_thread::sleep_for(std::chrono::milliseconds(m_intervalMs)); } }m_intervalMs一般取 150 到 200。取 16 跟著 60 幀刷新沒有意義血量不是每幀都變的量讀得太勤只會(huì)白燒 CPU還增加被目標(biāo)進(jìn)程察覺的概率。cur 4這種「結(jié)構(gòu)體相鄰字段」的寫法依賴具體客戶端的內(nèi)存布局源碼里把它抽成常量改的時(shí)候只改一處。m_latest的寫入條件加了合理性校驗(yàn)current不能小于 0也不能大于maximum。這條校驗(yàn)救過很多次因?yàn)橹羔樻湺虝菏r(shí)讀到的可能是堆上的隨機(jī)值不做校驗(yàn)就會(huì)在屏幕上畫出超過 100% 的血條看著像工具算錯(cuò)了實(shí)際是讀到了臟數(shù)據(jù)。用原子變量替換 mutex 也行HpPair是 8 字節(jié)在 x86 上不能保證原子所以這里老老實(shí)實(shí)用鎖開銷可以忽略。4.3 繪制與雙緩沖GDI 直接往窗口 DC 上畫會(huì)有閃爍標(biāo)準(zhǔn)解法是內(nèi)存 DC 雙緩沖先畫到CreateCompatibleBitmap最后一次BitBlt貼回去。void OverlayWindow::OnPaint(HDC hdc) { RECT rc; GetClientRect(m_hwnd, rc); HDC mem CreateCompatibleDC(hdc); HBITMAP bmp CreateCompatibleBitmap(hdc, rc.right, rc.bottom); HGDIOBJ old SelectObject(mem, bmp); // 背景半透明黑和窗口整體 alpha 疊加后大概 60% 不透明 HBRUSH bg CreateSolidBrush(RGB(16, 16, 16)); FillRect(mem, rc, bg); HpPair v{}; { std::lock_guardstd::mutex lk(m_mtx); v m_latest; } float ratio v.maximum 0 ? float(v.current) / float(v.maximum) : 0.f; RECT bar { 8, 40, 8 int(304 * ratio), 74 }; HBRUSH fill CreateSolidBrush(ratio 0.3f ? RGB(64, 190, 100) : RGB(210, 70, 70)); FillRect(mem, bar, fill); FrameRect(mem, bar, (HBRUSH)GetStockObject(GRAY_BRUSH)); wchar_t text[64]; swprintf_s(text, LHP %d / %d, v.current, v.maximum); SetBkMode(mem, TRANSPARENT); SetTextColor(mem, RGB(240, 240, 240)); DrawTextW(mem, text, -1, rc, DT_LEFT | DT_TOP | DT_SINGLELINE); BitBlt(hdc, 0, 0, rc.right, rc.bottom, mem, 0, 0, SRCCOPY); DeleteObject(bg); DeleteObject(fill); DeleteObject(bmp); SelectObject(mem, old); DeleteDC(mem); }血量低于 30% 換紅色是個(gè)很小的細(xì)節(jié)但對(duì)可用性幫助很大——余光掃一眼顏色就知道該不該撤不用去讀數(shù)字。每次CreateSolidBrush都要配對(duì)DeleteObjectGDI 對(duì)象泄漏在長(zhǎng)時(shí)間運(yùn)行的工具里是會(huì)累積的跑一整天之后面板開始變慢甚至畫不出來八成就是這里漏了。渲染觸發(fā)不要用WM_TIMER加InvalidateRect全量重繪直接開一個(gè) 250ms 定時(shí)器并只在數(shù)據(jù)變化時(shí)InvalidateRect(hwnd, nullptr, FALSE)。第三個(gè)參數(shù)給FALSE表示不擦背景配合雙緩沖就不會(huì)閃。4.4 多開場(chǎng)景下的窗口綁定多開玩家最常問的是「能不能一個(gè)面板顯示三個(gè)角色」。源碼默認(rèn)是單進(jìn)程綁定但改造空間留得挺足。常見做法是把「采樣線程 數(shù)據(jù)」打包成一個(gè)Session對(duì)象用一個(gè)std::vectorstd::unique_ptrSession管理每個(gè) Session 記自己的 PID、偏移鏈、窗口句柄。struct Session { ProcessReader reader; DWORD pid; HWND targetWnd; // 目標(biāo)客戶端主窗口 HWND hudWnd; // 自己創(chuàng)建的 HUD uintptr_t base; std::vectoruintptr_t offsets; };進(jìn)程枚舉用CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)遍歷配合Process32FirstW/NextW按可執(zhí)行文件名過濾就能一次抓到所有同名客戶端。每個(gè) Session 獨(dú)享一個(gè)句柄避免多線程共用一個(gè)ProcessReader時(shí)的狀態(tài)競(jìng)爭(zhēng)。這個(gè)改法不難難點(diǎn)在于 HUD 的排布——多塊面板疊在一起會(huì)互相遮擋我一般按窗口在屏幕上的相對(duì)位置自動(dòng)錯(cuò)開或者干脆只在一塊面板里堆疊多行文本。5. 避坑與常見問題句柄失效、偏移漂移、殺軟誤報(bào)5.1 句柄與權(quán)限類問題現(xiàn)象工具啟動(dòng)后日志里反復(fù)出現(xiàn)OpenProcess failed, err5或者初始能讀到數(shù)據(jù)切個(gè)角色之后數(shù)值就卡住不動(dòng)了。原因err5是權(quán)限不足通常是目標(biāo)客戶端以管理員身份運(yùn)行而工具沒有數(shù)值卡住多半是客戶端重啟過PID 變了舊句柄已經(jīng)失效但代碼還拿著它讀ReadProcessMemory會(huì)持續(xù)返回失敗。解決啟動(dòng)時(shí)先嘗試提權(quán)失敗就提示用管理員重啟采樣線程里加一個(gè)輕量的存活檢測(cè)WaitForSingleObject(handle, 0)返回WAIT_OBJECT_0就說明進(jìn)程沒了此時(shí)重新枚舉進(jìn)程、重新Attach、重新解析基址。重連邏輯一定要寫否則用戶每次重啟客戶端都得關(guān)一次工具體驗(yàn)非常糟。5.2 偏移鏈與版本漂移現(xiàn)象昨天還好好的客戶端更新一次之后血量全是 0 或者顯示離譜的數(shù)字。原因客戶端版本一更新結(jié)構(gòu)體布局和全局基址都會(huì)動(dòng)偏移鏈直接失效。這是這類工具最典型的「版本漂移」幾乎跟客戶端更新周期同步。解決把偏移鏈全部挪進(jìn)offsets.ini代碼里不寫死任何一個(gè)數(shù)字。再加一層校驗(yàn)讀到的最大血量是否落在合理區(qū)間比如 1 到 10 萬不滿足就判定為無效并打日志。更新后只需要用scanner重新掃一遍改 ini 就行不用重新編譯。我自己的習(xí)慣是給 ini 加一個(gè)version字段和客戶端版本號(hào)對(duì)上出問題時(shí)一眼能看出是不是配置過期。5.3 位數(shù)與字節(jié)對(duì)齊現(xiàn)象明明偏移鏈?zhǔn)菑牧硪慌_(tái)機(jī)器上抄來的對(duì)方能用自己這邊解出來是個(gè)固定但毫無意義的地址。原因工具編成了 x64目標(biāo)是 32 位進(jìn)程。指針從 4 字節(jié)變成 8 字節(jié)每一級(jí)偏移都錯(cuò)位最終算出來的地址自然到處亂飛。解決工程配置鎖死 Win32代碼里所有指針中間變量用uint32_t而不是uintptr_t并在Attach時(shí)用IsWow64Process檢查一次位數(shù)不匹配就在日志里明確提示。多花這十行代碼能省掉后面幾個(gè)小時(shí)盯著地址發(fā)呆。5.4 殺毒軟件誤報(bào)現(xiàn)象自己編譯出來的 exe雙擊就沒了或者被攔下來提示可疑。原因OpenProcessReadProcessMemory這套組合本身就是大量灰色工具的標(biāo)準(zhǔn)動(dòng)作行為特征很扎眼加上個(gè)人編譯的 exe 沒有數(shù)字簽名啟發(fā)式引擎容易直接判可疑。解決最穩(wěn)的是自己從源碼編譯別用來源不明的成品 exe給工具目錄加白名單如果做團(tuán)隊(duì)內(nèi)部分發(fā)走代碼簽名。這類問題沒有根治辦法只能降低誤傷概率。順帶說一句這類工具在聯(lián)網(wǎng)對(duì)戰(zhàn)環(huán)境里使用會(huì)破壞公平性也可能違反用戶協(xié)議拿來做內(nèi)存讀寫的技術(shù)驗(yàn)證、自己搭的單機(jī)環(huán)境里跑跑是更合適的使用姿勢(shì)。5.5 懸浮窗的位置漂移現(xiàn)象HUD 明明跟著游戲窗口走但換到高分辨率或副屏上之后面板總是偏出一段距離。原因進(jìn)程沒有聲明 DPI 感知系統(tǒng)做了虛擬化縮放GetWindowRect返回的邏輯坐標(biāo)和實(shí)際物理坐標(biāo)之間差了一個(gè)縮放系數(shù)。解決進(jìn)程啟動(dòng)最早期調(diào)用SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2)然后在WM_DPICHANGED里重新計(jì)算窗口尺寸。副屏坐標(biāo)可能是負(fù)數(shù)主屏左側(cè)的顯示器所有坐標(biāo)計(jì)算統(tǒng)一用LONG不要用UINT否則負(fù)數(shù)會(huì)被當(dāng)成一個(gè)巨大的正數(shù)窗口直接飛到屏幕外。6. 二次開發(fā)的改造思路從「看血」擴(kuò)成狀態(tài)面板把這份源碼跑通之后真正有意思的是往下擴(kuò)。它現(xiàn)在只讀一對(duì)current/maximum但偏移鏈機(jī)制是完全通用的只要你能定位到某個(gè)字段的地址就能把 MP、經(jīng)驗(yàn)、坐標(biāo)、背包數(shù)量一并讀出來做成一塊多行 HUD。改造路徑我建議按這個(gè)順序走風(fēng)險(xiǎn)從低到高。步驟改動(dòng)點(diǎn)驗(yàn)證方式1offsets.ini增加一組鍵值對(duì)改完直接重啟工具看日志是否解析成功2Sampler從讀一個(gè)字段擴(kuò)成讀一個(gè)結(jié)構(gòu)體在面板上多加一行文本數(shù)值與游戲內(nèi)對(duì)得上3Session化支持多 PID同時(shí)開兩個(gè)客戶端兩塊 HUD 各自獨(dú)立刷新4繪制換成可配置布局改 ini 里的坐標(biāo)和字號(hào)面板跟著變第 1 步純配置零風(fēng)險(xiǎn)。第 2 步要注意結(jié)構(gòu)體跨頁的問題如果血量、魔法值在內(nèi)存里隔得比較遠(yuǎn)別用一次ReadProcessMemory讀一大塊分開讀更穩(wěn)每次讀之前都做一次ResolvePointer雖然多幾微秒但某一級(jí)失效時(shí)不會(huì)把整塊數(shù)據(jù)帶臟。第 3 步是最容易翻車的地方。多個(gè) Session 共用一個(gè)std::vectorSession本身沒問題但每個(gè) Session 內(nèi)的ProcessReader持有獨(dú)立句柄絕對(duì)不能在采樣線程和 UI 線程之間共享同一個(gè) Reader——m_handle一旦在多處被Detach和Attach交錯(cuò)調(diào)用讀出來的東西就是隨機(jī)數(shù)這類問題在日志里幾乎沒有痕跡是個(gè)黑匣子。我的做法是給每個(gè) Reader 加一個(gè)std::atomic_flag做「使用中」標(biāo)記調(diào)試期一旦檢測(cè)到并發(fā)訪問就直接斷言退出上生產(chǎn)再關(guān)掉。驗(yàn)證方法也要配套。改完偏移鏈之后別只盯著面板看加一個(gè)隱藏的調(diào)試模式比如啟動(dòng)參數(shù)帶--dump每 5 秒往日志里打一行「地址、原始字節(jié)、解析值」和游戲內(nèi)數(shù)值人工比對(duì)三次以上。血量滿值、受傷、切圖、死亡各看一次四種狀態(tài)下都對(duì)得上才敢說這條鏈?zhǔn)欠€(wěn)的。只測(cè)一次滿血很容易漏掉指針在中途被重新分配的情況。繪制層面還有一個(gè)容易忽略的點(diǎn)HUD 窗口是置頂?shù)娜绻w住了目標(biāo)窗口的關(guān)閉按鈕或者輸入框用戶會(huì)很煩。給面板加一個(gè)可拖拽區(qū)域拖拽時(shí)臨時(shí)去掉WS_EX_TRANSPARENT松手再恢復(fù)這個(gè)小功能實(shí)現(xiàn)起來不到三十行但對(duì)日常使用的體感提升很明顯。從那以后我每次改偏移相關(guān)的東西都會(huì)強(qiáng)制先跑一遍--dump在四個(gè)狀態(tài)下比對(duì)再回頭看面板——直接盯著 UI 改是最容易騙自己的數(shù)字看著差不多就以為對(duì)了實(shí)際可能只是巧合。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
大吊色| 国产黄片在线免费观看| 国产激情综合| 夜夜精品视频一区二区| 18禁美女裸体无遮挡啪啪| 天天操av懂色| 免费一级性爱久久| 欧洲精品一区二区三区| 久久双插| 牛牛久久国产精品视频一二三| 婷婷涩嫩草鲁丝久久午夜精品| 色墦五月丁香| 欧美色图电影| caorenqi shipin| 99re99| 东京热亚洲一区二区| 九九热av| 久久女人一区二区三区| 青青草日逼视频| 久久啊啊| 肉丝网站91| yw尤物av无码点击进入麻豆| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 日韩情色视频| 国产精品人妻无码久久久老鸭窝 | 熟女人妻精品一区二区视频| 蜜桃视频精品一区二区| 亚洲国产精品无码AV久久久| 国偷自 一区二区| 欧亚乱色熟女一区二区| 高清孕妇孕交 交孕妇| 福利色色| 欧美综合网| 亚洲精品一二三四区| 人妻性爱一区二区| 欧美日韩婷婷中文| 国产美女高潮叫床视频| 性色综合网| 密臀在线免费观看| 国精精品无码一二三区水多多| 欧美高潮| 欧苏综合色综合| 东京热天堂网| 一直超碰| 999狠狠综合| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日韩精品1区2区中文字幕| 亚洲AV色图一区| 午夜福利视频在线一区| 爱爱动态60秒| 蜜臀一二三| 超碰人人干| 成人精品无码| 欧美日本视频一区| 亚洲美女30b| 伊人久久综合精品欧美| 激情五月综合网| 亚洲av青草久久一区二区| 91欧美美女日韩国产婷婷| 淫荡少妇免费| 91人妻在线视频| 夜草欧美| 亚洲丝袜色图| 五月天大香蕉| 国产绿奴视频在线观看| 久久久四区| 嗯嗯啊啊好疼| 五月天激情综合网| ..日韩av毛片精品久久久| 99热欧美| 和协影院中文字幕三区| 亚洲精品蜜桃久久久一区二区三区| 国产精品成人无码a v毛片| 999色欧美中文字幕| 美女高潮视频91| 久草免费在线一区二区| 色天使亚洲综合在线观看| 91美女小视频| 大香蕉99re| 五月天色图| 乱色视频中文字幕| 久久黄色性爱视频| 成人无码在线视频网站| 94色色电影网| 97久久天天综合色天天综合色电影| 啊啊啊啊啊啊啊国| 啊啊啊啊一区| 色丁香五月婷婷| 亚洲欧洲综合av在线| 亚洲欧美另类图片| 亚洲极品| 操淫穴亚洲五月丁香| 神马福利久草| 国产欧美伊人| 欧美视频在线第3页| 殴美在线AⅤ| 天天懆天天日| 99久国产精品午夜性色福利| 思思热国产高清| 啊啊啊啊啊舒服| 亚州久久9| 亚洲少妇色| 四虎影院成年人片| 久久高清欧美国产| 久久 国产精品 一区| 久久人人爽爽人人爽人人片αV| 中文字幕欧美丝袜07资源| 国产精品色约约| 91天天爱| 精品国产乱码久久久兰草影视| 99热色这里只有精品| 国产67194| 国产美女高潮叫床视频| 囯产操逼片| 草草网站影院白丝内射| 亚洲成aⅴ人片不卡无码| 美女久久久久久久久久久| 激情av| 男人的天堂一区三区| 日韩卡一卡二卡三在线| 国产粉嫩出水在线播放| 2020国产精品| 一区在线观看中文字幕| 成人短视频在线观看| 欧美在线播放aaaa| 丁香九月激情| 亚洲五区熟女| 伊蕉97蜜桃97狠狠综合干| 精品人妻一区二区免费蜜桃| 精品一区二区三区四区女| 亚洲色图欧美色图制服丝袜| 神马久久久久久久久久| 欧美72网页| 欧美久久久| 97超碰人操| 四虎影视永久在线观看精品免费网站 | 天美AV片| 色香伊人| 9精品久久久久| 国产91丝袜 在线播放| 97se亚洲综合自| 91色婷婷综合久久中文字幕二区| 亚洲九九九| 蜜臀无码视频在线观看 | 欧美日韩黄片精品在线| 99re公开精品免费视频| 一起草av| 东北女人的毛片| 超碰地址97| 亚洲天天精品| 大香久久| 91丨九色丨国产丨人妻在线 | 在线观看不卡一区二区三区| 国产精品自在自拍视频| 激情开心五月天| 青娱乐亚洲热| 欧美日韩97在线| 日日骚一区二区三区| 91制服丝袜| 中文操逼字幕| 我要看免费韩日黄片| 长长久久曰曰夜夜成人网| 欧美三级不卡| 97精品网站| 9丨久久九九九| 色吧 综合| 国产亚洲精品农村妇女 | 色综合久久88色综合久久天天| 蜜桃av综合网发布| 激情文学 国产一二三aV| 一级黄碟| 91肉丝| 亚洲成熟国产精品美女| AV一二区| 美女t无毒不卡不卡| 免费AV中文网在线观看| 麻豆这里只有精品| 97色涩| 亚洲欧美另类小说| 嫖老熟女A片一二三区| 99国产精品人妻人伦| 亚洲欧洲色情高清| 欧美 亚洲 在线| 综合 欧美 亚洲 日本| 欧美一级色| 2025亚洲男人天堂| 亚洲欧美碰碰| 国产精品亚洲美女久久久久| 欧美在线视频播放| 日婷婷| 99久re热视频精品98| 亚州色图狠狠干| 亚洲Av诱惑| 午夜福利激情在线视频| 伊人大香蕉在线| 久久精品女同亚洲女同13| 色激情综合网站| 亚洲欧美精品福利在线| 亚洲色图 图片| 日韩肏逼视频| 成人综合色网| 欧美亚洲首页| 久久HD| 国产久久久久影院老熟女| 亚洲春色一区二区三区| 丝袜六区| 欧美+日产+中文| 亚洲AV无码国产精品久久久久| 九九热五区| 97日韩| 91狠狠色丁香婷婷综合久久精品| 91色射| 国产一区二区三区导航| 精品人妻视频一区二区在线播放 | 亚射在线| 日韩av免费一级电影| 精品国产少妇高潮视频| 欧美碰碰综合色| 国产成人免费观看在线视频| 日韩视频小说在线观看| 日韩无码黄色片| 伊人伊人LD| 小视频国产| 国产专区路线| Sekablack无码一区| 天天影视综合网欧美精品| 国产免费内射视频| 天天操女人| 欧美天天| 日韩精品人妻中文字幕久久久| 亚洲欧美高清无码| 欧美 传媒 麻豆 日韩 偷拍| 看免费一级在线播放毛片| 91在线美女| 久久久新亚洲AV| 欧美日韩夜夜| 中文?日韩?免费?精品| 九九玖玖精品| 无码高清少妇久久| 先锋音影AV| 秋霞成人做爱| 安微少妇操BBB| 麻豆久久一区二区三区| 91爽啪| 97视频在线播放| 玖玖色综合| 天天久久| 久久97资源 网| 内射老妇BBWX0C0CK| 人人操人人精品影片| 91Chinese在线| 天天看,天天做| 蜜桃一区二区三区| 蜜乳AV色欲AVAV无码| 97超色| 男人的天堂一区三区| 亚洲AV色图一区| 天天色播亚洲综合网站| 日韩欧美加勒比| 精品妇女一区二区三区| 亚洲97成人在线观看| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 一区二区三区麻豆| 九九精品美女高溯喷水| 人人做天天爱| 夜夜嗨TV| 玖玖97综合 | 亚洲性图91| 福利在线黄片| 伊人热综合| 99RE在线视频精品,这里只有精品| 老熟女乱伦一区| 91欧美丨精品丨入口| 国产99精品一区二区三区免费| 久久亚州大香蕉| 五月婷婷深深爱| 亚洲网站一区二区在线| 中文一区在线日| 极品色www影院| 亚洲第一男人天堂| 女同亚洲欧美一二三区久久电影| 中文日本免费高清| 欧美精品成人一区二区在线观看 | 超碰在线综合97| 国产精品交换一区二区| 欧美五十路熟| 99少妇内射| 国产自产91区13区| 五月丁香激情综合网| 国产捆绑一区| 欧美色图自拍| 欧美中文字幕一区| 97干在线视频| 強姦亂倫a| 精品少妇高潮久久| 亚洲永久永久永久永久一级一级一级精品 | 国产精品白领在线观看| 97射欧美| 91色噜噜狠狠| 亚洲综合色网| xxx0国产在线播放| 国产超碰AV在线精品| 91痴汉| 97超碰色屌| 一区二区三区激情在线观看| 在线有码中文字幕| 啪啪啪亚欧美视频| 日韩精品影视| 91色图片| 日韩中字av一区| 亚洲中文字母在线播放| 国产午夜福利电影免费在线观看 | 日本阿v天堂在线观看| 激情小说亚洲视频| 午夜性| 五月天色色色| 欧美十八禁导航成人| 1769一区| 综合色91| 国产精品一区二区三区四区五区| 伊人在线大香蕉视频久久| 色综合潮| 日韩中文字幕熟妇人妻| 天天干天天干天天干| 18禁的网站在线| 手机在线免费看的av| 精品久9| 中文字幕一区二区三区四五区| 国产偷仑| 欧美日本天堂| 91丝袜美腿网站| 久久亚洲婷婷| 日韩精品碰碰| 成人aⅴ一区二区三区| 亚洲AV成人无码一二三久久| 亚洲欧洲av影音| 欧美日韩资源| 麻豆天美在线| 欧美大片91| 高清视频一区| 91精品丝袜久久久久久| 伊人97| 亚洲国产97在线精品一区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 99re在线| 激情五月天中文字幕色| 91综合色噜噜| 青青免费在线视频一区| 97超碰磁| 天天草夜夜草高潮片| 成人无遮挡毛片免费看| 欧美日韩午夜精品一区二区三区| 丰满美女一级毛片在线播放| 国产美女口爆吞精视频| Sekablack无码一区| 欧美一级AAAAAAA| 亚洲无992tv| PMv在线观看| 高清有码一区二区| 国产最火爆久久国产网站网站| 视频国产欧美在线播放| 国产91av在线播放| 欧美亚洲天堂| 欧洲亚洲国产综合在线| 国产亚洲精品美女久久久久久2021| 亚洲欧美日韩免费电影| 激情国产乱伦Av| 欧美组图日韩亚洲中文字幕| 国产精品麻豆免费视频| 黑人操一区二区| 色久桃花影院在线观看| 亚洲欧洲日韩国产自在线| 亚洲成人福利电影免费| 日韩精品国产精品五码一区二区| 91在线免费观看处女| 亚洲国产综合久久天堂| 欧美久久婷婷| 91精品免费| 国产熟码AV| 国产农村妇女毛片精品久久| 久久性爱视频免费看| 成人av在线播放| 91丨豆花丨熟女| 人人扣人人操| 久久精品欧美一区蜜桃| 九九成人精品| 色色青青久久| 天天综合中文字幕 91| 18禁止看精品中文字幕| 亚乱色| 99无码视频| 国产欧美伊人| 欧洲精品人妻| 天天操妹子| 日韩一级性爱无码| 丁香五月性| 亚洲熟妇无码一区二区三区| 大香蕉手机在线| 加勒比综合| 久久黄色性爱视频| 欧美内射少妇| 五十路熟女,国产欧美精品区一区二区三区| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 啪啪视频亚洲第一| 亚洲欧美精品91| 日韩精品作爱导航| 欧美大片91| 性影在线视频| 国产蜜臀精品一区免费尤物| 999熟女精品| 内射夫妻三片| 五月丁香影院| 久久熟女久| 超碰97亚洲| 国产亚洲日韩在线三区黑人| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 麻豆AV短剧| 人妻第一页| 天堂а√在线最新版在线| 可以免费观看的av| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 狠狠超| 六月丁香久久| 玖玖爱伊人玖玖爱| 精品无码一区二区三区色欲| 色五月大香蕉| 风骚少妇视频中文字幕| 国产在线激情视频| 国产原创精品| 日本三级精品| japan日本高清乱xxxx| 99国产在线绯色一区| 全国男人天堂网| 天天插夜夜操| 清清一区二区三区四区不卡视频| 亚洲色婷婷综合久久一区二区三区| 国产精品网址| 天天做天天爱天天爽AV| 99热在线观看| 婷婷尹人大香蕉免费| 熟女网站最新| 性爱边摸边日免费AV| 久久综合乱子伦国产免费| 夜夜欧美 | 久久久久久日韩| 国产天天骚| 欧美色人| 热久久91婷婷| 亚洲国产熟妇综合色专区| 国产AV超爽| 九九人妻| 99熟女| 国产丁香精品露脸视频| 在线国产一区二区av| 黑人精品久久97| 一级黄色视频网| 9精品在线| 亚洲啪啪视频免费| 国产乱弄免费在线视频。 | 久久直播国产| 蜜臀av中文字幕| 色综合久久88色综合久久天天| 长久操视频| 国产麻豆福利av在线播放| 97伪v| 国产精品国产自产高清AV| 麻豆黄色五月天| 天天射天天| 午夜呻吟欧美| 乱伦一区二区三区‘| 天堂麻豆天美| 亚洲综合中文字幕有码| 夜夜嗨免费视频| 5月婷婷6月六月丁香| 蜜臀一二三区| 激情四射五月天| 日韩欧美女求操每天更新| 五月丁香网站| 精品99999| 久久人妻97久久久久久久| 亚洲阿v天堂在线| 超碰天天久久79| 中文字幕一区二区日韩网| 久草精品视频| **一级毛片国产| 精品久久97| 中文久久一区| 免费强奸av| 九九九久久久W精品| 欧美精品99久久久| 干超碰碰熟女| 免费网站观看www在线观| 亚洲第一精品在线视频| 啊啊啊啊,啊啊好多水| 色五月av| 黄色av网站在线播放| 久久久精品久久| 婷婷五月天激情网| 男女日B国产| 日韩无码服务区| 精品超碰中文在线| 青娱乐欧美激情一区二区| 天天躁夜夜躁狠狠躁AV| 天天操女人| 美女午夜福利免费视频| 日本布卡一区二三区| 旡码电影特区| 中文字幕精品资源在线| 亚洲欧美人妻| 亚州色图片在线色| 蜜桃色色网站视频三区| 东京热视频网| 国产一二三福利视频网| 69精品人人人人| 丁香五月天激情网站| 成人线上超碰| 女人18精品一区二区三区| 91精品国产综合久久久蜜臀| 亚洲一卡2卡3卡4卡乱码网站| 亚洲高清欧美总合| 果冻传媒A片一二三区| 天天影视网综合少妇| 亚洲国产尤物yw在线观看| 国产白丝AV| 亚洲欧洲激情| 大香蕉欧美伊| 亚洲综合色网| 国产精品成人蜜臀AV在线| 欲香欲色| 大香蕉人妻久久| 2025年A片视频精品| 色欧美色交综合| 午夜性| 激情五月天婷婷| 国产欧美亚洲精品a第2页| 桃花色综合影院| 大鸡巴久久| 亚州欧美综合| 性色国产东北露脸精品视频| 天天色悠悠激情| 国产精品无码AV网站| 夜夜草我| 欧美亚洲自拍另类人妻| 久操免费观看| 白嫩妹子国产骚| 九九九九免费高| 人妻啊啊人妻啊| 亚欧高清v| 国产成人欧美一区二区三区的国产| 97国产超碰| 夜夜免费视频| 中文日韩欧美熟| 精品国产99| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 五月天婷婷成人网| 亚洲福利中文字幕在线| 日本性爱不卡视频| 国产探花精品在线| 密乳无码| 亚洲**2021在线观看| 视频国产欧美在线播放| 青青草一区二区高清无码视频| 国产成人精品一区| 久久精品中文字幕女同| 久久超碰、| 日本亚洲vr欧美不卡高清专区| 伊人久久88国产女| 蜜臀av一区二区三区免费观看| 欧美日韩操逼嗦吊| 九九Av| 国产这里只有精品| 婷婷丁香五月综合| 久久一二区四| 少妇诱惑视频| 日本97久久久精品| 精品国产72| 乱子伦一区二区三区国产精品| 精品一国2| 美女干逼2| www.男人天堂| 欧美97av| 欧美日韩1234| 男女性无套 免费九一| 日韩欧美大力操| 岛国在线免费视频| 操逼啊啊啊91| 激情五月天丁香社区| 热久久这里只有精品| 狠狠五月天| 亚州宗合另类| 97精品视频免费| 欧美在线综合| 精品美女少妇一区二区| 四方色播| 日B操| 韩国成人精品久久久免费看| 日本在线视频导航| 中文字幕在线播放2中文字幕在线观看2| 99国内精品| 国产丰满熟夫69mpp| 色偷综合| 97 国产精品| 天天综合网~91| 色吧5亚洲| 日韩欧美tv一区二区在线观看| 国产福利第一视频| 青青草日本无码| av亚洲天堂资源网站| 加勒比人妻综合| 亚洲天堂2020| 18啪啪手机免费性爱| 丝袜美腿制服人妻二区中文字幕| 一本道综合色图| 宗合情欲网| 欧美骚少妇| 97亚洲欧美| 美中日韩无码| 天堂蜜桃无码视频一区二区| 国产九区| 97伊人超碰| 久久黄片国产一区二区| 国产欧美日韩在线不卡第一页| 色嘟嘟人妻天堂网| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产精品亚洲高清在线| 在线精品福利免费播放| 麻豆天美国美国产| 成人日本片久久久蜜桃| 电家庭影院午夜69久久夜色精品国产69乱| 思思热国产在线视频| 色综合98| 欧美偷偷网| 日本久久女同性恋视频| 1769精品一区二区三区| 在线黄色污污网站| 青草精品视频日本久久久久网站在线| 久操凹凸视频| 色婷婷综合久久久久中文一区二区| 天天爽入口| 亚洲欧洲中文日韩女优乱码| 亚洲精品a人片在线观看视| 激情图片亚洲色图| 青青草原伊人网| 国产日产精品久久快鸭的功能介绍| 国产熟女少妇一区| 热G综合热G中文| 国产又黄又粗的视频| xxx亚洲午夜天堂| 欧美第五页| 欧美十八禁导航成人| 裸体女人草逼视频播放一区,二区,三区,四区,五区| 青青草原香蕉日本Ap| 熟女这里只有精品6| 天天综合色电影| 99操逼| 久久久久久国产无码精品| 曰本精品久久久| 91熟女视频网| 日韩AV熟女乱伦| 久干网| a亚洲欧美色欲| 天天干一区二区| 亚洲天堂资源在线| 国产原创剧情在线丝袜| 久操视频在线| 久久无码电影| 亚洲凸凹超碰成人| 日本欧美一区二区三区免费| 成人色女网| 真实高潮91| 欧美骚少妇| 97在线视频观看网站| 青青草视频在线观看一区二区| 午夜超碰| 日本免费不卡二区| 亲子敌伦对白在线播放| 天天欧美欧美亚洲网| 精品午夜福利| 色色色色色色色色色色色色色色综合| 国产区在线| 久草网站免费在线观看| 天天情欲宗合网| 国产乱码精品一区二区三区四川| 都市激情人妻一区二区青青操视频| 亚洲中文字幕久久人妻| 国产视频大全| 黄色一区二区秘书性感| 青青草一区二区三区四| 免费a在线播放v| 999九九九九国产动| 成人国产精品三级A片| 在线 欧美 亚洲| a级理论午夜日本| 99热一区二区三区四区| 综合熟女| 97超碰超碰| 亚洲人精品久久久喷水| 精品蜜乳AV免费观看| 黄色二级片网站| 国产传媒午夜理伦精品| 另类成人首页一区| 欧美在线观看综合国产| 操久久久久| 操我啊啊啊啊啊| 国产精品永久免费10000| 精品人妻一区二区三区视频| 熟妇操花| 美女9118禁| 久久久久精| 亚洲精品性爱片| 欧美激情亚洲情色| 亚洲激情AV| 干我久操| 国产99999久久精品| 性爱av在线免费观看| 精品九九九九| 久久久久密臀一区二区| 国产激情av女片自拍| 密臀在线一区尤物| 色噜噜国产在线| 91在线视频观看国产| 欧美性夜| 综合 青草 伊久久 影院 综合| 亚洲AV噜噜狠狠网址蜜桃动漫| 91欧美www| 天天操女人| 日韩亚洲国产视频| 91麻豆天美传媒在线| 嗯嗯啊啊操死我| 久久精品国产亚洲AV嘿嘿| 999久久久国产精品| 久久伊人网视频一区二区三区 | 午夜久久一区二区无码中出| 岛国视频免费在线观看| 999精品乱码| 日本A级视频| 99re在线观看| 18啪啪手机免费性爱| 后入精品| 青青草乱入乱欲视频在线观看| 91呆哥人妻| 黄色大片视频在线免费看| 加勒比av网| 啪啪视频mP4| 久久99午夜精品一区人妻| 人人操人人93| 中文字幕熟女人妻丝袜丝| 精品国产一区二区久久| 丰满人妻无码一区二区三区| 亚州性色| 大香蕉伊然在亚洲91| 98色网| 美女尤物人人操| 夜夜爽夜夜爽| 国产一二三福利视频网| 婷婷美人网| 玖玖人人爱| 色欲天天综合网| 成人麻豆av电影网站| 天美传媒AV在线| 亚洲精品九九九九九九| 好看的久久不射无码影视影院| 亚洲男人bt天堂| 中文字幕性感少妇av| 啪啪啪东京| 国产精品自拍视频| 伦理第一页| 久艹99| 久久久久ab| 丝袜综合色图| 天天干少妇| 欧美人妻久久精品二区三区 | 影音先锋日本乱伦| 亚洲日韩国产精品| 亚洲天天自拍| 亚洲熟女少妇免费视频| 国产久久久久影院老熟女| 欧洲射精91| 精品一二三区久久AAA片| 国产 日韩 欧美高清| PMv在线观看| 国产在线能看的你懂的| 中文字幕乱码在线| 深喉吞精| 97资源站日韩| 啊啊啊啊,啊啊好多水| 亚洲性少妇| 男人 天堂 日 亚洲| 国产人伦精品一区二区三区| 亚洲高潮少妇| 2020中文字幕| 日韩啪啪啪啪啪| 国产精品色| 激情自拍 校园春色| 丁香五月成人| 亚洲精品视频在线| 亚洲天堂热| 九九综合久久| 亚洲欲色9532548967一区| 夜夜爽33333| 丁香五月影院| 九九热免费国产视频婷婷伊人五月| 狠狠狠狠狠| 人人操AV| 肉丝网站91| 欧美内射少妇| 亚洲国产丝袜在线观看| 久久久久元码视频| 亚洲日韩欧美一区二区| 大但人体久久久久| 天美av在线| 2017,超碰| 99人妻| 另类亚洲一区二区三区| 国产精品美女久久久久AⅤ国产馆| 99这里只有精品国产| 国产操逼视频在线观看| 国产精品无码在线| 91人妻Pr| 天天操天天插| 国产又大又粗又长视频在线| 91黑丝美女| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 97人人模人人爽人人| 色五月首页| 91 丝袜在线| 欧美 牲| 欧美大干日韩| 蜜臀久久99精品久久久久久酒店| 啊啊啊想要| 神马久久久久久| 精品无码不卡视频| 日本污ww视频网站| 91N五十路| 欧美日韩青操| 五月天日日操夜夜操| 亚洲第一视频 欧美风情 日韩| 亚洲女人91| 国产在线视频午夜精华在| 久久久久亚洲AV无码专区少妇| 91操人| 久久精彩视频| 91艹逼精品| 97亚洲国产| 中文字幕欧美日韩三级| 欧美精品成人在线播放| 色色亚洲| 91高跟美女在线播放| 91精品操美女| 操啊国产| 亚洲图片偷拍视频区| 天天看片天天爽| 少妇内射视频| 亚洲牲交| 超碰人人超在线观看| 精品 码产区一区二-1080P高清在线www-B029AV | 人妻久热在线| 欧美玖玖爱免费玖玖| 91亚洲色图| 最新日产中文在线麻豆| 四虎AV在线观看| av久日| 日韩在线国产字幕| 日本123区操B视频| 高树玛利亚无码流出| 亚洲色棕合| 2017人人操,人人摸| 97人人射| 亚洲欧美日韩电影网站一区 | 13小男生GAY自慰脱裤子| 九九视频黄色片| 日亚韩精品视频二区三| 青娱乐 成人娱乐在线| 97超视频在线观看| 人妻丝袜一区二区三区在线| 日韩高清黄片| 婷婷综合激情| 久久久久9999精品九九九| 91男同| 婷婷婷婷婷婷久久久久| 国产一级作爱毛片| 麻豆福利视频导航| 亚洲Av诱惑| 日韩精品永久在线观看| 日韩一级二级在线| 97亚洲中文| WWW操逼| 天天爽爽爽爽| 天堂成人网| 久久亚洲精品成人av| 亚洲欧洲色情高清| 欧美日本成人一区二区| 综合色啪| 91制服丝袜| 亚洲最大无码中文字幕网站 | 国产午夜福利电影免费在线观看 | www.操| aV中亚| 日韩精彩免费| 久久人妻| 亚洲成人精品久久久| 青娱乐淫乱1314| 欧美日韩222| 精品免费视频国产一区| 亚洲国产综合久久久性感熟妇| 91精品网站| 国产精品一二三免费网站| 999久久久国产精品| 红杏大香蕉| 国产综合日韩伦理| 欧美狠狠弄| 天天草夜夜草高潮片| 日本欧美色| 99精品久久久久久久婷婷| 玖玖超碰熟| 99热免费| 婷婷超| 婷婷五月天无码 | 国产原创剧情在线丝袜| 精品97久久| 久久久久无码| 看一级特黄a大一片| 老司机福利社视频在线观看| 婬女免费一二三区A片| 91精品国产一区三一| 97色爱| 日本视频在线观看污污污| 一区二区三区看视频| 色性荡荡荡荡视频| 欧美日韩香蕉| 青青在线视频日韩欧美| 小骚逼被操的爽不爽| 久久婷婷亚洲| 中文字幕美女91| 青青草原av| 久久日本熟妇熟色高清 | 久久国产乱子伦精品免费女人| 97chaopenrihan| 四虎视频在线观看| 六月婷婷综合| 天天色天天干天天射| 亚洲欧美骚| 97欧美色综合| 欧美日韩免费专区在线| 日骚逼视频| 色综合潮| 亚洲宅男天堂| 国产一级做a爰大片免费久久| 中文字幕成人理论在线| 欧美精品久久96人妻无码| 欧美日韩小说| 97热视频在线观看| 另类 综合 日韩 欧美 亚洲| 婷婷色在线| 性爱乱伦一区| 淫荡熟女乱伦网| 9色国产精品一区粉嫩| 天天肏夜夜肏| 国产美女高潮视频| 骚货 中文字幕 av| 98精品国产乱码久久久久久| 日韩av三四区| 九九拍拍精品视频在线播放 | 高清无码学生妹高潮| 亚洲成人妻日韩在线| 91九九九小逼| 日本97久久久精品| 大香蕉一人在线| 啊啊啊不要好爽日韩无码一区| 欧美色图片91| 欧洲与亚洲欧美精品中文字幕| 欧美有码亚洲中文字幕一区二区三区四区| 激情五月婷| 婷婷情色综合网| 在线观看一卡二卡| 天天添天天干电影| 色盈盈影院| 宗合情欲网| 欧亚日韩三区| 午夜后入| 可乐操亚洲蜜911| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 国产一区在线看| 中文字幕精品探花视频| 日本欧美一区二区三区视频麻豆| 国产一进一出视频网站| 手机在线视频国内精品| 99操碰| 欧美在线官网| 人妻超碰青青草98| 亚洲天堂另类| 国产综合永久精品日韩鬼片| 干少妇视频| 99热超碰| 久久久久久电影| 欧美五十路熟| 在线A日本| 国产女性无套 免费观看| 丝袜剧情| 色婷婷丁香五月天| 国产精品视频在线播放| 亚洲日韩美女丝袜美腿人妻视频| 超清福利精品视频在线| 91操碰| 91天天日| 色妇综合网| A片 AV一级在线播放观看免费 | 黄色高清无码无码破解免费暗网| 涩五月婷婷| 丰满人妻一区二区三区免费,| 久久视频少妇美女| 美女91色黄18| 亚洲色图欧美色图另类图片| 97精品视频| 肥臀熟女一区二区三区视频| 精品无码久久久久久久杏吧| 日韩99精品视频综合区| 国产福利影视| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 少妇天堂| 91free福利| 亚洲日本天堂| AV乱伦专区| 嗯啊啊啊轻点视频 | 激情五月综合网| AV天黑人| 最新av网站在线观看| 99热这里都是精品| avav青青草久久夜| 自拍偷拍 高清无码| 粉嫩小泬久久久一区二区| .精品人妻一区二区三| 亚洲情色电影网| 色综合91好| 尻女朋友一夜| 中文字幕丰满人妻日本| 六月天婷婷| 国产精品久久久 | 成功精品影院| 亚洲人妻色图| 大香蕉婷婷| 青青色在线观看| 熟女丰满人妻一区| 曰韩人妻中文字幕在线| 67194无码不卡| 国产狂喷潮在线精品| 日韩 欧美 校园一区| 亚洲第一狼人丝袜美女另类| 加勒比AV天堂| 日本国产成人亚洲精品无码| 久久久精品一区二区| 国产91久久九九免费精品无码| 天天综合网亚洲综合网| 亚洲激情久久| 五十路熟女人妻一区二区在线观看| 91粉芽高清在线一区二区| 精品三级在线专区| 在线观看A啊啊啊| 浪人综合网| 国产精品扒开腿做爽爽爽视频| 精品国产少妇高潮视频| 国产一级特黄大片处女| 91丝袜人妻| 狠狠久久亚洲欧美专区| 中文字幕一区二区三区字幕| 日本三级日本三级三级人妇四虎| 美女视频尤物网在线看| 啊啊啊操死我了| 91色爽欧美| 91精品伊人久久久大香线蕉91| 99热一区二区三区四区| 天天激色| 九九热精品免费视频| 黑人无码一区二区| av一区二区三区不卡| 秘书高跟黑色丝袜国产91在线| 99青青草国产视频| 伊人97超碰| 色一色综合网| 久久精品日韩| 亚洲在线网站| 蜜臀久久99精品久久久久久无删减 | 秋霞Av理论一级在线| 欧美中字不卡| 国产美女口爆吞精| 97精品久久久久久久| 丁香六月天| 99热这里只有精品9| 无码视频黄色网战| 成人性爱视频在线看| 囯戸精品高潮呻吟旡码| 91看黄片| 97久久精品| 国产呦精品系列在线观看| 秋霞Av理论一级在线| 91肉片| 污色区网站| 亚洲性爱乱操x| 国产最新小视频在线播放下载| 白丝被操91| a男人的天堂久久一级A毛片| 大香蕉视频一二三区| 99在线免费公开视频| 欧美探花网| 日本精品无码三级网站| 韩国午夜理伦三级好看| 日韩人成网站在线播放| 久久一区二区三区入口| 日韩精品1区2区中文字幕| 最新国产亚洲精品精品国产亚洲综合| 亚洲强奸乱伦影视网| 久久久夜夜嗨免费视频| 色丁香五月婷婷| 天天日日舔舔| 狠狠躁天天躁日日躁| 日本一线产区和二线产区伦理片| 67914在线兔费成人视频| 一区二区三区一亚洲中文字幕、综合区灬 | 啊啊啊好爽快点啊啊啊嗯嗯| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 日韩干B| 日韩av不卡在线观看| 爆操无码| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 人人干人人操人人..com| 日本污ww视频网站| 一区二区三区蜜桃成人撸久久东京热 | 久久综合九色综合欧洲98| 家庭乱伦国产| 色爱综合网| 欧美日动态视频| 美女t无毒不卡不卡| 秋霞一集毛片观看| 99热精品免费| 五月天春色激情网| 情色大香蕉| 亚洲第2页| 熟女中出视频| 欧美情色亚洲| 欧美成人A√在线一区二区| 探花一区在线| 神马久久久久久久久久久久| 国产久久天堂资源| 日逼国产| 伊人网在线视频| 激情 欧美 亚洲 小说| 天天干天天爽| 国语精品av| 色色色色电影网| 69久久久久久久久久久久久| 一级二级在线观看| 日本在线一二| 神马九九| 欧美精品第3页| 伊人性在线视频| 综合色图区| 亚洲男人天堂手机版| 五月天激情视频| 天天综合色图| 红杏大香蕉|