国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

Cpp2IL自定義處理層開發(fā)指南:從原理到實戰(zhàn)逆向分析

Cpp2IL自定義處理層開發(fā)指南:從原理到實戰(zhàn)逆向分析 1. 項目概述為什么我們需要自定義Cpp2IL處理層如果你接觸過Unity游戲的逆向分析或者研究過使用IL2CPP技術(shù)編譯的.NET程序那么Cpp2IL這個工具對你來說應(yīng)該不陌生。它就像一個“翻譯官”能把IL2CPP編譯后生成的C偽代碼和元數(shù)據(jù)重新轉(zhuǎn)換回我們更熟悉的.NET中間語言IL和程序集。但很多時候這個“翻譯官”的翻譯結(jié)果并不完美或者缺少了我們特別關(guān)心的某些信息。比如你可能想追蹤某個特定游戲?qū)ο蟮膬?nèi)存分配路徑或者想自動識別并標(biāo)注出所有與網(wǎng)絡(luò)通信相關(guān)的方法調(diào)用。這時候標(biāo)準(zhǔn)Cpp2IL的輸出就顯得有些“力不從心”了。這就是自定義處理層Custom Processing Layer的價值所在。你可以把它理解為給Cpp2IL這個翻譯官配備的“專屬插件”或“分析模塊”。它允許你在Cpp2IL的核心逆向流程中插入你自己的分析邏輯。當(dāng)Cpp2IL解析完一個方法、一個類型或者整個程序集后你的處理層可以立刻介入對解析出的數(shù)據(jù)進行二次加工、深度分析或者提取出你關(guān)心的特定模式。這不再是簡單地在Cpp2IL運行完后用另一個腳本去處理它的輸出文件而是深度集成在逆向流程內(nèi)部能訪問到最原始、最豐富的上下文信息。我最初開發(fā)自定義處理層是為了解決一個具體問題在一款大型MMO游戲的逆向中需要快速定位所有涉及角色屬性如攻擊力、防御力計算和更新的代碼邏輯。手動在成千上萬個方法里翻找效率極低且容易遺漏。通過開發(fā)一個專注于“屬性訪問分析”的自定義處理層我成功實現(xiàn)了自動化標(biāo)記將排查范圍從數(shù)萬縮小到了幾十個高度可疑的方法效率提升了幾個數(shù)量級。這個經(jīng)歷讓我深刻體會到掌握自定義處理層開發(fā)是從“使用工具”到“駕馭工具”的關(guān)鍵一步能讓你在面對復(fù)雜、獨特的逆向需求時擁有前所未有的靈活性和控制力。2. 核心概念與架構(gòu)解析處理層如何嵌入Cpp2IL工作流在動手寫代碼之前我們必須先理解Cpp2IL的內(nèi)部工作流程以及處理層在這個流程中的確切位置。這就像你要給一輛汽車加裝渦輪總得先知道發(fā)動機的進氣歧管在哪兒。2.1 Cpp2IL的核心逆向流程Cpp2IL的工作大致可以分為幾個階段元數(shù)據(jù)加載讀取IL2CPP生成的global-metadata.dat文件重建類型、方法、字段等基礎(chǔ)信息。二進制分析分析IL2CPP編譯后的二進制文件如GameAssembly.dll將機器碼或C偽代碼與元數(shù)據(jù)關(guān)聯(lián)起來。IL代碼生成基于關(guān)聯(lián)關(guān)系嘗試將底層的操作邏輯“翻譯”回.NET IL指令。程序集輸出將生成的IL代碼和元數(shù)據(jù)打包成標(biāo)準(zhǔn)的.NET程序集DLL文件。整個過程是一個復(fù)雜的管道Pipeline。而處理層就是掛載在這個管道上的“過濾器”或“處理器”。Cpp2IL定義了一系列關(guān)鍵的“處理階段”你的自定義層可以在這些階段被調(diào)用。2.2 處理層的類型與執(zhí)行時機Cpp2IL的處理層主要分為兩大類對應(yīng)不同的執(zhí)行時機和作用范圍第一類每程序集處理層Per-Assembly Processing Layer這類處理層在整個程序集Assembly級別的處理完成后被調(diào)用。它適合進行全局性的、跨類型的分析。例如重命名優(yōu)化根據(jù)某些規(guī)則批量重命名所有類型、方法、字段使其更具可讀性。全局模式掃描掃描整個程序集找出所有使用了特定API如Unity的GameObject.Find的方法并打上標(biāo)記。統(tǒng)計分析統(tǒng)計程序集中虛方法比例、接口實現(xiàn)數(shù)量等元信息。第二類每方法處理層Per-Method Processing Layer這類處理層在每個單獨的方法Method被處理完成后被調(diào)用。這是最常用、最強大的類型因為你可以在最細(xì)粒度上操作。例如指令流分析分析一個方法內(nèi)的IL指令序列識別特定模式如屬性設(shè)置器、事件訂閱??刂屏鲌DCFG構(gòu)建基于生成的IL為方法構(gòu)建控制流圖用于更復(fù)雜的路徑分析。內(nèi)聯(lián)與優(yōu)化嘗試對簡單的IL模式進行內(nèi)聯(lián)或等價替換簡化輸出代碼。注意處理層接收到的“方法”對象已經(jīng)包含了Cpp2IL初步還原出的IL指令流、本地變量表、異常處理塊等完整信息。但此時的IL可能還比較“原始”包含一些Cpp2IL特有的臨時變量或占位符指令。2.3 處理層的注冊與執(zhí)行順序多個處理層可以同時存在它們按照注冊的順序依次執(zhí)行。這意味著你需要考慮處理層之間的依賴關(guān)系。例如一個負(fù)責(zé)“重命名”的處理層應(yīng)該在一個負(fù)責(zé)“基于名稱的模式分析”的處理層之前運行否則分析層可能無法匹配到正確的名稱。Cpp2IL通過命令行參數(shù)來加載處理層。你需要將編譯好的處理層DLL文件放在指定位置并通過--additional-processing-assembly參數(shù)來指定。處理層DLL本身就是一個標(biāo)準(zhǔn)的.NET庫它通過實現(xiàn)特定的接口如IPerAssemblyPostProcessingLayer來聲明自己的功能。理解了這些我們就知道該從哪里“下刀”了。接下來我們將從零開始搭建開發(fā)環(huán)境并創(chuàng)建第一個處理層。3. 開發(fā)環(huán)境搭建與項目初始化工欲善其事必先利其器。開發(fā)Cpp2IL處理層本質(zhì)上是在開發(fā)一個.NET庫它需要引用Cpp2IL的核心庫。這里我推薦使用.NET 6 SDK因為它具有更好的跨平臺性和性能。IDE方面Visual Studio 2022、JetBrains Rider或VS Code with C# Dev Kit都是絕佳選擇。3.1 創(chuàng)建項目與引用核心庫首先我們創(chuàng)建一個新的類庫項目。打開終端執(zhí)行以下命令dotnet new classlib -n MyCpp2ILProcessor -f net6.0 cd MyCpp2ILProcessor接下來是最關(guān)鍵的一步獲取并引用Cpp2IL的核心庫。你無法通過NuGet直接安裝因為Cpp2IL的核心庫并未發(fā)布到公共倉庫。你需要手動獲取。方法一推薦確保版本匹配從Cpp2IL的GitHub倉庫https://github.com/SamboyCoding/Cpp2IL克隆或下載源代碼。使用你喜歡的IDE打開Cpp2IL的解決方案.sln文件。找到名為Cpp2IL.Core的項目并單獨編譯它。你可以在Release配置下使用dotnet build Cpp2IL.Core.csproj -c Release。編譯成功后在Cpp2IL.Core/bin/Release/net6.0或?qū)?yīng)框架目錄下找到Cpp2IL.Core.dll文件。在你的處理層項目目錄下創(chuàng)建一個libs文件夾將Cpp2IL.Core.dll復(fù)制進去。編輯你的處理層項目的.csproj文件添加引用ItemGroup Reference IncludeCpp2IL.Core HintPathlibs\Cpp2IL.Core.dll/HintPath /Reference /ItemGroup方法二使用已發(fā)布的版本 如果你下載了Cpp2IL的發(fā)布版如Cpp2IL-[version]-Windows.zip在解壓后的文件夾里通常也會包含Cpp2IL.Core.dll。同樣地將其復(fù)制到你的libs目錄并引用。實操心得強烈建議將你使用的Cpp2IL核心DLL版本與你的處理層項目一起納入版本控制如Git。這能保證任何克隆你項目的人都能使用完全相同的依賴版本進行編譯避免因Cpp2IL版本更新導(dǎo)致接口不兼容的問題。3.2 實現(xiàn)第一個“Hello World”處理層讓我們先實現(xiàn)一個最簡單的每方法處理層它會在控制臺輸出每個處理的方法名以此驗證我們的環(huán)境是否工作正常。首先安裝一個必要的NuGet包用于命令行參數(shù)解析Cpp2IL的處理層接口會用到dotnet add package McMaster.Extensions.CommandLineUtils然后創(chuàng)建我們的處理層類MethodTracerLayer.csusing System; using Cpp2IL.Core.Api; using Cpp2IL.Core.Model.Contexts; using McMaster.Extensions.CommandLineUtils; // 1. 為我們的處理層定義一個命令行選項可選用于配置 public class MethodTracerOptions { [Option(-f|--filter NAME_PATTERN, Description Only trace methods whose name contains this pattern.)] public string? FilterPattern { get; set; } } // 2. 實現(xiàn)每方法處理層接口 [Command(method-tracer, Description Traces and logs processed methods.)] public class MethodTracerLayer : CommandLineApplication, IPerMethodPostProcessingLayer { private readonly MethodTracerOptions _options new(); public MethodTracerLayer() { // 配置命令行參數(shù)綁定 this.OnExecute(() { /* 命令執(zhí)行邏輯由Cpp2IL調(diào)用 */ }); this.ConfigureFromMethodTracerOptions(_options); } // 3. 實現(xiàn)接口屬性處理層的唯一標(biāo)識和描述 public string Id method-tracer; public string Name Method Tracing Layer; public string Description Logs the name of every method processed by Cpp2IL.; // 4. 實現(xiàn)核心方法在每個方法處理后被調(diào)用 public void Process(MethodAnalysisContext context) { // 獲取方法名 string methodName context.Method.Name; // 如果設(shè)置了過濾器則進行匹配 if (!string.IsNullOrEmpty(_options.FilterPattern) !methodName.Contains(_options.FilterPattern, StringComparison.OrdinalIgnoreCase)) { return; // 不匹配過濾條件跳過 } // 輸出到控制臺 Console.WriteLine($[MethodTracer] Processed: {methodName}); // 注意此時你可以訪問 context.Method 的所有信息 // 包括它的IL指令 (context.Method.MethodBody?.Instructions), // 所屬類型 (context.Method.DeclaringType) 等。 // 但在這個簡單示例中我們只打印名字。 } // 5. 可選實現(xiàn)初始化方法在開始處理任何方法前調(diào)用一次 public void Init(CommandLineApplication app) { Console.WriteLine($[MethodTracer] Initialized. Filter: {_options.FilterPattern ?? (none)}); } }3.3 編譯與集成測試編譯處理層在項目根目錄運行dotnet build -c Release。定位輸出DLL編譯生成的MyCpp2ILProcessor.dll位于bin/Release/net6.0/目錄下。同時確保其依賴項如Cpp2IL.Core.dll和McMaster.Extensions.CommandLineUtils.dll也在同一目錄或者能被Cpp2IL主程序找到。運行Cpp2IL并加載處理層 假設(shè)你的Cpp2IL主程序是Cpp2IL.exe目標(biāo)Unity游戲文件是GameAssembly.dll元數(shù)據(jù)是global-metadata.dat。運行命令如下.\Cpp2IL.exe --game-path . --exe-name GameAssembly.dll --metadata-path global-metadata.dat --additional-processing-assembly path\to\MyCpp2ILProcessor.dll如果你為處理層添加了自定義參數(shù)可以這樣使用.\Cpp2IL.exe ... --additional-processing-assembly path\to\MyCpp2ILProcessor.dll --method-tracer --filter Update這個命令會只輸出方法名中包含“Update”的方法。如果一切順利你將在Cpp2IL的標(biāo)準(zhǔn)輸出中看到大量[MethodTracer] Processed: ...的日志行這證明你的自定義處理層已經(jīng)成功集成并運行注意事項處理層的輸出如Console.WriteLine會與Cpp2IL自身的輸出混在一起。對于復(fù)雜的處理層建議考慮將日志寫入獨立文件或者使用更高級的日志庫如Microsoft.Extensions.Logging并配置不同的輸出通道便于后續(xù)分析。4. 實戰(zhàn)開發(fā)一個“屬性訪問分析”處理層現(xiàn)在我們來點真格的。假設(shè)我們要分析一個Unity游戲目標(biāo)是找出所有讀取或?qū)懭胩囟ㄓ螒驅(qū)嶓w屬性的代碼。例如找到所有修改玩家“血量”Health或“金幣”Gold的地方。這在經(jīng)濟系統(tǒng)分析、漏洞挖掘或外掛檢測邏輯逆向時非常有用。我們將創(chuàng)建一個更復(fù)雜的每方法處理層它不僅打印信息還會分析IL指令流識別字段訪問和屬性調(diào)用。4.1 設(shè)計目標(biāo)與思路我們的PropertyAccessAnalyzerLayer需要實現(xiàn)以下功能可配置目標(biāo)允許用戶通過命令行參數(shù)指定要追蹤的字段或?qū)傩悦Q支持模糊匹配。IL指令分析在每個方法中掃描其IL指令流。模式識別對于實例字段識別ldfld(加載字段)、stfld(存儲字段) 指令。對于靜態(tài)字段識別ldsfld、stsfld指令。對于屬性識別call或callvirt指令且調(diào)用的方法是屬性的get_或set_訪問器。上下文關(guān)聯(lián)當(dāng)發(fā)現(xiàn)訪問時記錄訪問類型讀/寫、所在方法、所屬類以及字段/屬性的完整名稱。結(jié)果輸出在處理完所有程序集后將分析結(jié)果以結(jié)構(gòu)化的格式如JSON或CSV輸出到文件。4.2 核心代碼實現(xiàn)以下是該處理層的核心部分代碼using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.Json; using Cpp2IL.Core.Api; using Cpp2IL.Core.Model.Contexts; using Cpp2IL.Core.Model.CustomAttributes; using Cpp2IL.Core.InstructionSets; using McMaster.Extensions.CommandLineUtils; public class PropertyAccessAnalyzerOptions { [Option(-t|--target NAMES, Description Comma-separated list of field/property names to track (supports * wildcard).)] public string TargetNames { get; set; } ; [Option(-o|--output PATH, Description Path to the output JSON file.)] public string OutputPath { get; set; } ./property_access_report.json; } [Command(prop-analyzer, Description Analyzes access to specific fields and properties.)] public class PropertyAccessAnalyzerLayer : CommandLineApplication, IPerMethodPostProcessingLayer { private class AccessRecord { public string AccessType { get; set; } // Read or Write public string MemberType { get; set; } // Field or Property public string MemberFullName { get; set; } // e.g., Player::health public string MethodContainingAccess { get; set; } // e.g., Player::TakeDamage public string? InstructionOffset { get; set; } // IL offset for precise location } private readonly PropertyAccessAnalyzerOptions _options new(); private readonly ListAccessRecord _accessRecords new(); private Liststring _targetPatterns new(); public PropertyAccessAnalyzerLayer() { this.OnExecute(() { }); this.ConfigureFromPropertyAccessAnalyzerOptions(_options); } public string Id prop-analyzer; public string Name Property Access Analyzer; public string Description Finds and logs reads/writes to specified fields and properties.; public void Init(CommandLineApplication app) { // 解析目標(biāo)模式 if (!string.IsNullOrEmpty(_options.TargetNames)) { _targetPatterns _options.TargetNames.Split(,, StringSplitOptions.RemoveEmptyEntries) .Select(s s.Trim()) .ToList(); Console.WriteLine($[PropAnalyzer] Tracking targets: {string.Join(, , _targetPatterns)}); } else { Console.WriteLine([PropAnalyzer] Warning: No target names specified. Layer will do nothing.); } } public void Process(MethodAnalysisContext context) { if (!_targetPatterns.Any()) return; if (context.Method.MethodBody?.Instructions null) return; var instructions context.Method.MethodBody.Instructions; string methodFullName ${context.Method.DeclaringType?.FullName}::{context.Method.Name}; for (int i 0; i instructions.Count; i) { var instr instructions[i]; string? memberName null; string? memberType null; string? accessType null; // 1. 檢查字段訪問指令 if (instr is IFieldInstruction fieldInstr fieldInstr.Field ! null) { memberName fieldInstr.Field.Name; memberType Field; // 判斷是加載讀還是存儲寫 if (instr.OpCode.Name.Contains(ld)) accessType Read; else if (instr.OpCode.Name.Contains(st)) accessType Write; } // 2. 檢查方法調(diào)用指令可能是屬性訪問器 else if (instr is ICallInstruction callInstr callInstr.Method ! null) { string methodName callInstr.Method.Name; // 檢查是否是屬性訪問器get_XXX 或 set_XXX if (methodName.StartsWith(get_)) { memberName methodName.Substring(4); // 去掉 get_ memberType Property; accessType Read; } else if (methodName.StartsWith(set_)) { memberName methodName.Substring(4); // 去掉 set_ memberType Property; accessType Write; } } // 如果識別出成員訪問且匹配目標(biāo)模式 if (!string.IsNullOrEmpty(memberName) IsTargetMember(memberName)) { _accessRecords.Add(new AccessRecord { AccessType accessType!, MemberType memberType!, MemberFullName ${context.Method.DeclaringType?.FullName}::{memberName}, MethodContainingAccess methodFullName, InstructionOffset $0x{i:X4} }); } } } private bool IsTargetMember(string memberName) { foreach (var pattern in _targetPatterns) { // 簡單的通配符匹配支持結(jié)尾* if (pattern.EndsWith(*)) { if (memberName.StartsWith(pattern.TrimEnd(*), StringComparison.OrdinalIgnoreCase)) return true; } else if (memberName.Equals(pattern, StringComparison.OrdinalIgnoreCase)) { return true; } } return false; } // 新增實現(xiàn)一個在全部處理完成后被調(diào)用的方法需要借助其他機制這里演示一種方式 // 注意標(biāo)準(zhǔn)IPerMethodPostProcessingLayer接口沒有PostProcess。我們可以通過實現(xiàn)IDisposable或監(jiān)聽事件來模擬。 // 更規(guī)范的做法是同時實現(xiàn)IPerAssemblyPostProcessingLayer在PostProcess中輸出。 // 這里為了簡化我們添加一個Finish方法并在Cpp2IL運行后手動調(diào)用需修改Cpp2IL代碼不推薦。 // 替代方案我們將記錄存儲在內(nèi)存列表中并在程序集處理層或通過外部觸發(fā)來輸出。 // 本例中我們修改為同時實現(xiàn)IPerAssemblyPostProcessingLayer。 } // 為了在最后輸出報告我們讓同一個類實現(xiàn)兩個接口需要Cpp2IL支持或拆分為兩個層。 // 更清晰的架構(gòu)是拆分成兩個協(xié)同工作的層一個分析方法一個輸出報告。 // 但為了示例完整我們展示一個簡化版在每方法層中收集數(shù)據(jù)在程序集層中輸出。 [Command(prop-analyzer-assembly, Description Assembly-level coordinator for property analyzer.)] public class PropertyAccessAnalyzerAssemblyLayer : CommandLineApplication, IPerAssemblyPostProcessingLayer { // 假設(shè)我們能訪問到同一個實例的數(shù)據(jù)實際中需要通過靜態(tài)變量或依賴注入共享狀態(tài)這里簡化 // 更好的設(shè)計是使用一個獨立的服務(wù)類來存儲共享數(shù)據(jù)。 private static readonly ListPropertyAccessAnalyzerLayer.AccessRecord SharedRecords new(); public string Id prop-analyzer-assembly; public string Name Property Access Analyzer (Assembly Output); public string Description Outputs the analysis report after all processing.; public void PostProcess(ApplicationAnalysisContext context) { string outputPath ./property_access_report.json; // 應(yīng)從配置讀取 if (SharedRecords.Any()) { var json JsonSerializer.Serialize(SharedRecords, new JsonSerializerOptions { WriteIndented true }); File.WriteAllText(outputPath, json); Console.WriteLine($[PropAnalyzer] Report generated: {outputPath} ({SharedRecords.Count} records)); } else { Console.WriteLine([PropAnalyzer] No matching field/property accesses found.); } } // 提供一個靜態(tài)方法供方法層添加記錄 public static void AddRecord(PropertyAccessAnalyzerLayer.AccessRecord record) SharedRecords.Add(record); }然后需要修改PropertyAccessAnalyzerLayer.Process方法在添加記錄時調(diào)用// 在 Process 方法內(nèi)部的 _accessRecords.Add(...) 處替換為 PropertyAccessAnalyzerAssemblyLayer.AddRecord(new AccessRecord { ... });4.3 使用與結(jié)果分析編譯并集成這兩個處理層后運行Cpp2IL.\Cpp2IL.exe --game-path . --exe-name GameAssembly.dll --metadata-path global-metadata.dat --additional-processing-assembly path\to\MyCpp2ILProcessor.dll --prop-analyzer --target health,Gold,m_* --prop-analyzer-assembly這個命令會追蹤所有名為“health”、“Gold”的成員以及所有以“m_”開頭的成員這是Unity中常見的私有字段命名約定。運行結(jié)束后會在當(dāng)前目錄生成一個property_access_report.json文件。內(nèi)容大致如下[ { AccessType: Write, MemberType: Field, MemberFullName: Player::m_health, MethodContainingAccess: Player::TakeDamage, InstructionOffset: 0x001A }, { AccessType: Read, MemberType: Property, MemberFullName: Inventory::Gold, MethodContainingAccess: UI::UpdateGoldDisplay, InstructionOffset: 0x0005 } ]這份報告立刻告訴你在Player::TakeDamage方法的IL偏移0x001A處寫入了m_health字段。在UI::UpdateGoldDisplay方法的IL偏移0x0005處讀取了Inventory::Gold屬性。你可以根據(jù)這個報告快速在反編譯工具如dnSpy、ILSpy中定位到具體的代碼位置極大地縮小了分析范圍。實操心得在實際逆向中字段名可能被混淆。此時--target參數(shù)可以結(jié)合通配符使用或者你的處理層可以變得更智能例如通過分析字段的類型如果是int且名稱類似*Health*、或通過分析其被哪些已知方法如Heal()、Damage()訪問來動態(tài)推斷其角色。這需要更復(fù)雜的啟發(fā)式規(guī)則但處理層的框架為此提供了可能。5. 高級技巧與性能優(yōu)化當(dāng)你開始編寫更復(fù)雜的處理層時性能和穩(wěn)定性就成為必須考慮的問題。一個未經(jīng)優(yōu)化的處理層可能會讓Cpp2IL的逆向過程慢上數(shù)倍甚至數(shù)十倍。5.1 性能優(yōu)化策略減少不必要的對象分配在Process方法中避免在循環(huán)內(nèi)創(chuàng)建大量臨時字符串或?qū)ο蟆@缟厦娴氖纠衜ethodFullName可以在循環(huán)外計算一次。對于復(fù)雜的字符串操作考慮使用StringBuilder。使用高效的集合與查找_targetPatterns的匹配如果很頻繁可以考慮將模式預(yù)編譯為正則表達(dá)式或使用HashSetstring進行精確匹配。對于模糊匹配可以考慮使用Trie樹等數(shù)據(jù)結(jié)構(gòu)。選擇性啟用不是所有方法都需要分析??梢酝ㄟ^命令行參數(shù)讓用戶指定要分析的命名空間、類名正則或者在Process方法開頭進行快速判斷if (!context.Method.DeclaringType?.FullName?.StartsWith(GameLogic.) ?? true) { return; // 只分析 GameLogic 命名空間下的方法 }并行處理考慮Cpp2IL自身可能并行處理多個方法。確保你的處理層是線程安全的。如果使用共享狀態(tài)如我們示例中的靜態(tài)列表必須使用鎖lock語句或線程安全集合ConcurrentBagT。private static readonly ConcurrentBagAccessRecord SharedRecords new(); // 添加記錄時直接調(diào)用 SharedRecords.Add(record)它是線程安全的。5.2 處理層間的通信與協(xié)作有時一個分析任務(wù)需要多個處理層協(xié)作完成。例如一個層負(fù)責(zé)重命名另一個層負(fù)責(zé)基于新名稱進行分析。它們之間需要共享數(shù)據(jù)。通過文件系統(tǒng)一個層將中間結(jié)果寫入臨時文件另一個層讀取。簡單但效率低且需要處理文件鎖和清理。通過內(nèi)存共享靜態(tài)變量如上例所示使用靜態(tài)類或單例來共享數(shù)據(jù)。這是最高效的方式但必須嚴(yán)格管理線程安全和生命周期。通過Cpp2IL上下文高級ApplicationAnalysisContext或TypeAnalysisContext等對象可能提供存儲自定義數(shù)據(jù)的空間如果Cpp2IL API支持。這需要查閱最新版的Cpp2IL源碼或文檔。5.3 錯誤處理與日志處理層中的異常如果未被捕獲會導(dǎo)致整個Cpp2IL進程崩潰。務(wù)必進行健壯的錯誤處理。public void Process(MethodAnalysisContext context) { try { // 你的核心處理邏輯 } catch (Exception ex) { // 記錄到獨立日志文件避免污染Cpp2IL主輸出 File.AppendAllText(processor_errors.log, $[ERROR] in {context.Method}: {ex}\n); // 或者如果你希望繼續(xù)運行可以只記錄并跳過當(dāng)前方法 // Console.Error.WriteLine($[{Id}] Error processing {context.Method}: {ex.Message}); } }同時為你的處理層提供不同級別的日志輸出如--verbose、--quiet參數(shù)方便調(diào)試和部署。6. 調(diào)試自定義處理層調(diào)試是開發(fā)過程中不可或缺的一環(huán)。調(diào)試一個運行在Cpp2IL進程內(nèi)的處理層與調(diào)試普通應(yīng)用略有不同。方法一附加到進程Attach to Process在IDE中設(shè)置好你的處理層項目。正常啟動Cpp2IL命令行并加載你的處理層DLL。在Cpp2IL開始執(zhí)行關(guān)鍵逆向步驟前它會有一些初始化輸出。在初始化輸出后、大量處理開始前快速切換到你的IDE。在IDE中選擇“調(diào)試” - “附加到進程”。在進程列表中找到Cpp2IL.exe進程或dotnet進程如果Cpp2IL是.NET發(fā)布版本并附加。在你的處理層代碼中設(shè)置斷點。當(dāng)Cpp2IL執(zhí)行到你的處理層代碼時斷點將會命中。這個方法需要手速快因為Cpp2IL處理小型程序集可能很快。對于大型游戲初始化時間較長給你留出了足夠的窗口期。方法二使用調(diào)試器啟動Debugger.Launch在你的處理層代碼入口如Init方法處插入以下代碼#if DEBUG if (!System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Launch(); #endif當(dāng)Cpp2IL加載你的處理層并執(zhí)行到Init時會彈出一個對話框讓你選擇調(diào)試器。選擇你正在運行的IDE即可。這種方法非??煽康浀迷诎l(fā)布版本中移除或禁用這段代碼。方法三單元測試將核心的分析邏輯如指令匹配、模式識別抽取到獨立的、不依賴于Cpp2IL運行時的類庫中。為這些邏輯編寫單元測試。這能確保你的業(yè)務(wù)邏輯正確且調(diào)試起來非常方便。只有與Cpp2IL上下文交互的部分Process方法才需要集成測試。7. 常見問題與排查實錄在實際開發(fā)中你肯定會遇到各種問題。以下是我踩過的一些坑和解決方案問題1處理層DLL加載失敗Cpp2IL報“無法加載文件或程序集”原因依賴項缺失或版本不匹配。你的處理層DLL可能依賴特定版本的Cpp2IL.Core或其他NuGet包。排查使用ildasm或dotnet peek工具查看你的DLL的依賴清單。確保所有依賴的DLL特別是Cpp2IL.Core.dll都位于Cpp2IL可執(zhí)行文件的同級目錄或者能被探測到。最簡單的方法就是把所有依賴DLL和你自己的處理層DLL放在一起然后用--additional-processing-assembly指定完整路徑。檢查Cpp2IL版本與你編譯處理層時使用的Cpp2IL.Core版本是否一致。問題2處理層被加載但Process方法從未被調(diào)用原因最常見的原因是接口實現(xiàn)不正確或者處理層沒有正確注冊。排查確保你的類同時繼承了CommandLineApplication并實現(xiàn)了IPerMethodPostProcessingLayer或IPerAssemblyPostProcessingLayer接口。確保類有[Command]屬性。在Init方法中加入Console.WriteLine確認(rèn)是否被調(diào)用。如果Init都沒調(diào)用說明注冊有問題。檢查命令行參數(shù)你是否正確使用了--additional-processing-assembly并指向了正確的DLL是否在參數(shù)中指定了你的處理層的命令名如--method-tracer問題3處理過程極其緩慢原因你的處理層邏輯可能過于復(fù)雜或者在每個方法中進行了昂貴的操作如頻繁的文件IO、復(fù)雜的正則匹配。優(yōu)化使用性能分析工具如JetBrains dotTrace、Visual Studio Profiler附加到Cpp2IL進程找到熱點。應(yīng)用本章第5節(jié)提到的優(yōu)化策略減少分配、使用高效數(shù)據(jù)結(jié)構(gòu)、選擇性分析。將結(jié)果緩存起來。例如如果某個判斷邏輯基于類型信息而該信息在多個方法中重復(fù)使用可以預(yù)先計算并緩存。問題4分析結(jié)果不準(zhǔn)確漏報或誤報原因IL模式識別邏輯有缺陷。Cpp2IL還原的IL可能包含一些非標(biāo)準(zhǔn)或優(yōu)化后的指令序列。排查對比驗證用一個你知道肯定會觸發(fā)訪問的簡單方法進行測試。用dnSpy等工具查看該方法原始的IL如果是托管DLL或反編譯的C#代碼與你的處理層識別的結(jié)果進行對比。輸出調(diào)試信息在處理層中將可疑方法的完整IL指令流打印出來人工檢查你的識別邏輯在哪里出了問題。考慮邊緣情況屬性可能是顯式接口實現(xiàn)名稱包含.字段可能是只讀的initonly訪問可能通過指針ldflda等。確保你的識別邏輯覆蓋了這些情況。開發(fā)自定義處理層是一個迭代的過程從簡單的日志開始逐步增加復(fù)雜的分析邏輯并輔以嚴(yán)格的測試和性能剖析最終你就能打造出專屬于自己逆向工作流的強大工具在面對任何復(fù)雜的IL2CPP應(yīng)用時都能游刃有余。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
伊人宅男大香蕉| 日本熟妇人妻一区二区三区| 偷拍伦理视频| av日韩国产一区二区| 97碰碰色| 秋霞一区二区三区四区五区六区七区| 99热色精品| 亚洲欧美国产中文视频| 一本色道久久综合精品婷婷| 伊人精品视频| 亚洲综合射| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 91人妻素女| 色臀AV| 91女优在线观看| h无码动漫在线观看| 精品97久久| 亚洲天堂美臀在线| 大肉棒导航| 一级啊性爱在线视频| 全国男人天堂网| 久久久国产三级黄色片| 国产福利一区二| 少妇久久久久久久| 亚洲精品蜜桃久久久| AV污污污污| av大香蕉网站| 日韩不卡在线一区二区| 青草精品视频一日本久久久久网站| 色一射色一射| 国产精品精品系列在线观看| 久久一二三四五六七八九区区| 美女t无毒不卡不卡| 精品人妻伦一区二区三区久久| 日韩小电影| 黑人精品成人一区二区三区| 久久精品人人做人人看| 豆花视频操逼网址| 亚洲av国产av综合av卡| 久久黄片国产一区二区| 秋霞一级鲁丝片A片| 亚洲男人的天堂va亚洲男人社| 日日操天天操| 思思热在线| 欧美性爱一级操| 成人八戒网站| 国产AV久久野战精品| 92性色国产午夜福利在线661| 啊啊啊好大好深| 乱理日韩中文| 欧美 亚洲 另类 综合| 一区二区 日韩 欧美 国产 传媒| 人妻精品综合中文字幕在线| 一个人在线看的黄色电影网站| 人妻久热在线| AV色五月| 秋霞一区二区三区四区五区六区七区| 亚洲综合九| 丁香五月激情综合| 口爆综合网| 在线无码操| 乱操9999| 日日97| 亚洲色图尤物视频| 国产一级舔足在线观看| 综合亚洲情色| 91欧美另类| 黑人精品久久97| 97国产伦理| 超碰偷拍| 女人天堂av在线播放| 探花视频免费观看国产专区| 亚洲一区二区久久久久| 顶级丝袜熟女一区二区三区 | 精国久久一区二区三区98| 金典av| 国产丸一视频| 免费观看性欧美一级| 欧美亚洲| 天天综和| 96国产精品| 99999精品| 天天射天天| 老司机深夜影院18未满| 爽爽淫人网| 精品人妻一区二区免费蜜桃| 日韩人人精品| 日本操逼视频免费| 国内毛片婷婷六月色| 99超碰网| 天天操天天射青青草| 一级特级aaaa毛片免费观看| 国产日韩在线播放av| 超碰91在线| 校园春色美腿丝袜 | 9美女超碰在线免费观看| 亚洲自拍一区夜夜操| 人妻人人做人人澡人人爽欧美一区| site:sinbotex.com| 人人妻天天做天天爽| 欧美熟妇乱码在线一区| 玖玖在线视频| 精品性爱无码在线播放| 日本大香蕉| 亚洲色人妻综合| 欧美伊人久久综合网| 9久精品| 亚洲第一页色网| 国产情色第一第二页在线观看| 欧美制服另类丝袜| 99熟女| 久久久久久久久成人av解说| 日本免费人成视频播放120秒| 不卡中文字幕aⅴ在线| 亚洲日韩天堂| 91综合中文字幕| 蜜桃臀AV在线| 久久久成人精品| 夜夜福利| 久热99999| 射丝袜大香蕉| 九九九九一级| 老鸭窝成人| 91少妇香蕉久久精品| 97超碰逼| 午夜毛片高清免费不卡| 久草资源在线视频官方总站日韩丝袜美腿 | 欧美精品三区| 碰人碰碰人人开房人肉| 蜜臀99久久国产| 天天干18禁| 丝袜AV一区二区三区| 日韩小电影| 日本在线一二| 中文字幕丰满子伦无码专区在线视频最新| 黄色大片一区二区密桃丝袜| 嫩草美女久久| 天天情欲宗合网| 2018天天干在线视频| 黄久在线| 亚洲自拍青操视频| 亚洲无码一二三区| 免费视频一二三区| 日韩强奸av| 成人av福利在线观看| 色综合天天| 亚州一区二区成人片免费| 岛国激情视频在线观看| 国产热RE99久久6国产精品首 | 性性欧美| 97精品免费视频网站| 欧美 色 亚洲| 亚洲成人性爱在线观看| 91是天天| 小电影欧美91| 91操熟女视频 | 日韩天美| 亚州中文字幕超碰97| 超碰 国产熟女精品一区| 青青草女人天天干| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 欧美性天天影视| 久草色悠悠在线视频| 精品一国2| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 中日亚韩免费视频| 四虎影视在线| 久久久专区| 日本布卡一区二三区| 床戏久久久av一区二区麻豆| 美女尤物人人操| 青草青草久热| 久久最新视频免费观看| 成人日韩中文字幕| 欧美人妻制服| 国产精品熟女AV中文字幕在线播放| 蜜屁Av| 欧美青青草视频| 偷拍精品一区二区三区| 国产原创剧情在线丝袜| 日日干男人的天堂| 国产区日韩区在线观看| 亚洲一区日韩| 一二三四视频在线社区中文字幕| 强被迫伦姧在线观看无码网站| 人人插人人搞人人操| 久久婷婷热| 亚洲性猛| 欧美日韩另类在线播放| 日韩内射视频| 在线免费观看高清无码视频 | 91丝袜美女视频| 欧美系列在线一区二区| 国产人妻精品久久久一区二区三区 | 深夜福利黄片| 五月天综合在线| 日韩少妇丰满亚洲| 日韩欧无码一区二区三区免费不卡 | 日本三级韩三级99久久| 亚洲第一页色网| 天天综合精品| 亚州欧美色图| 艹我哪美一区无码| 中文三一区| 极品美女福利在线观看| 物业黑人 AV一区| 超碰人人操97碰| 麻豆精品A片免费观看| 男人的天堂日韩| 伊人网在线观看| 亚洲国产精品无码AV久久| 婷婷爱五月| 久久久精品无码亚免费| 女人爽到高潮潮喷18禁网站| 热天堂一区二区| 国产久久视频| 免费?级毛片无码?∨蜜芽试看| 久久综合18p| 日本精品五区| 91网亚洲| 精品日日人妻| 天天爱天天操| 91久久久久久久久18| 色婷五月天| 欧美不在线| 亚洲AV无码国产成人| 999九九精品| 国产69精品久久久久99尤物| 秋霞男人网| 国产精品一二三区18| 怡红院视频在线| 水多多映视AV| 日韩人妻无码精品系列| 国产精品女生av| 热热色色综合| 色狠狠色| 欧美性爱综合,免费| 干B| 国产av又色又爽又黄| 91精品国| 婷婷精品视频| 日本精品一级二级三级| 亚洲男人的天堂在线看| 成人日本视频人妻在线| 美女诱惑一区| 91爱做| 国产在线激情视频| 97资源站国产精品| 亚洲一区二区三区麻豆传媒| 亚洲一卡2卡3卡4卡乱码网站 | 日韩中文字幕精品一区在线| 人妻少妇久久| 亚洲综合色男人网| 综合五月婷婷亚洲一区| 97Ai亚洲| 亚洲精品黑丝| 成人无码专区精品视频| 久久婷婷亚洲| 人妻人人做人人澡人人爽欧美一区| 色吊丝 日日骚 清纯唯美| 99re不伦| 亚洲高潮少妇| 99热99在线播放激情| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 97内射偷拍| www网站黄| 超清福利精品视频在线| 97日韩超碰超碰中文字幕| 97超久碰| 肥臀熟女一区二区三区视频| 久久久久精| 亚洲av淫乱| 强奸乱伦AV一天堂网| 亚洲熟妇综合久久久久久| AV天堂丝袜| 日本精品第一视频在'| 久久伊人最新网址视频| 人妻娇喘 激情视频| 青青草日本中文字幕| 女人高潮大叫一级毛片| 亚洲欧美国产日本一区二区三区| 艹精品| 97这里只有精品| 亚洲图片偷拍欧美| 伊人成人情色综合| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 国产91精品久久久久久久网曝门| 岛国A V在线免费看| 精品中文一区二区| 久久综合久色欧美综合狠狠| 亚洲第一狼人丝袜美女另类| 一中国女人毛片水真多| 久久少妇| 2019天天干| 亚洲Av诱惑| 亚洲蜜臀精品视频久久| 99最新日韩偷拍视频| 97超碰资源网| 曰本熟女视频| 美女91在线观看| 日本少妇va7777| 九色97| 天天色综合天天操| 岛国片在线观看视频亚洲| 人人操,操人人| 干日本人少妇午夜寂寞影院| 日韩卡一卡二卡三在线| 手机在线A片| 91伊人久| 殴美在线AⅤ| 亚洲国产丝袜熟女av| 亚洲性高潮| 亚洲高清91| 欧美91变态| 美女黄站| 国产精品第一页国产大屁股视频免费区| 老女人碰碰在线碰碰视频| 欧美拳交在线播放| 欧美日韩第一页| 人妻中文字幕日韩电影| 日本精品不卡一二三区| 久久曰曰| 五月天伊人| 欧美老妇女内射网址| 亚州综合图片| 噜噜瑟| 成人三级片一区二区三区视频| 亚洲无码一区成人免费午夜| 日韩熟女操逼| 欧美亚洲日本视频久久久 | 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 超碰97人妻免费在线| 成全在线观看免费观看| 国产日韩欧美三级片| 婷婷月色| 啊啊啊啊操死我了| 欧美人妻熟女在线| 91丝袜美女视频| 国产粉嫩蜜臀av一区二区三区| 素人一区二区三区日韩| 亚洲最大的综合性av| 麻豆福利视频导航| 啊啊啊啊好疼| 日本免费中文一区二区三区四区 | 三上制服丝AV| 久久是精品| 麻豆成人AV| 熟女乱3伦999| 国产区91柔拿会所技师| 成人片在线播放| 鲁鲁色综合网| 亚洲乱色熟女一区| 亚洲成人美女无吗| 亚洲免费精品一区| 无码二级三级| 色操逼网| 99爱精品| 日本天堂在线播放| 永久免费av无码网站国产app | 天堂亚洲精品| 亚洲国产精品无码AV久久久| 亚洲一区二区精品福利| 日本九九久久99播| 91美女视频直播| 亚洲国产另类在线中文| 极品色www影院| 亚洲精品丝袜-不卡成人免费……| 天天舔天天日天天射| 亚洲天堂男| 欧美性爱18观看| www.色五月| 人妻免费观看| 老熟女乱伦一区| 天天淫人人妻日日色| 久久精品久久九九精品| 嗯嗯不要视频| 色香天天| 超碰国产在线| 国产精品高朝久久久久久久| 一区二区三区免费视频入口| 狠狠综合网| 中字一区| 九月丁香综合网| 欧美一区二区情色| 久久久精品网站| 26uuu国产免费观看| 亚洲情色在线| 免费看片黄| 色97| www网站黄| 欧美人人曰人人操人人射射| 色999亚洲人成色| 久久草视频污视频| 免费观看国产小粉嫩喷水精品午| 大香蕉伊利av| 国产400孕妇孕交群| 无码自拍SM| 久久精品国产精品| 男男H黄动漫啪啪无遮挡网站| 熟妇人妻一区二区三在线| 无遮挡男女激烈动态图| 91 丝袜在线| 天天影视色香欲综合网小说| 按摩中文字幕| 日韩强奸av| 日韩av熟女一区二区三区成人| 久九色| 约操熟妇| 女上位精品在线| 国产精品久久久久久久毛片1| 97色欧州| 成人5码视频| 国产99999久久精品| 国产AV激情无码久久无码| 天综合网欧美| 色综合久久88色综合久久天天| 青娱乐手机日韩在线视频| 高清国产性猛交xxxx乱大交| 久久动漫精品视频这里只有精品| 日韩人妻中文视频| 俞拍久久国应视频| 色婷婷aV一区二区三区麻豆综合| 国产精品一区二区亚洲人成毛片| 国产亚洲日本| 99久久久无码国产精品性男| 校园激情狠狠四射| 夜夜高潮夜夜爽| AV一起草在线| 欧美色图在线视频少妇| 色色五月天婷婷| 久久久久女教师免费一区 | 午夜毛片高清免费不卡| 日韩av不卡在线观看| 欧美瑟综合| 99re6久热只有精品6在线直播| 中文AV制服乱伦| 夜夜操2028| 免费福利视频中文字幕| 伊人9| 欧美1727免费观看视频| 99这里只有精品国产| 成熟熟女国产精品一区二区| 欧美论理片| 欧美黄色片AAAAA| 久久精品国产亚洲av水密被窝| 97在线免费看| 激情视屏国产乱伦强奸| 精品黄色电影| 97超碰免费生活| www99热| 中文字幕人成乱码熟女香港| 青青草这里只有精品| 久久精品免费| 中文字幕在线观看二区三区| 久久香蕉国产线看观看亚洲女人 | 久久久久13| 一区不卡在线观看av| 久久 亚洲 日韩 人妻| 亚洲最大的综合性av| 葡萄牙性视频一二区| 久久这里| 91在线欧色| 91久精品| 少妇天堂| 欲色啪| 久久精品一区| 大香蕉综合在线| 国内97干免费看| 五月天色综合| 亚洲 欧美 偷拍 唯美| 一区二区视频在看| 伊人大香蕉在线| 天天干天天狼在线视频| 黄色人人| 婷婷av在线中文字幕| 久草综合网| av线电影| 人妻人妻天天碰| 欧美有码亚洲中文字幕一区二区三区四区 | 丁香六月激情| 久热免费视频| 亚洲玖玖爱| 麻豆精品A片免费观看| 伊人久久大香大香线蕉中文 | 天天插天天射| 欧美日韩第一页| 99久久e免费热视| 色妹子A V| www色日本| 超碰人人在线| 九九久久一区二区三区| 美女91AV| 丝袜美腿亚洲| 精品国产91av一区二区三区| 日韩欧美蜜桃精品久久中文字幕久久 | 日逼视频日本| 久草尤物| 亚洲日本激情| 久操com| 天天综合中文字幕 91| 91大香蕉伊人| 亚洲天堂电影网99999| 91精品久久久久久77777| 国产日韩精品一区二区三区| oumeisetu综合| 欧美精品四区| 欧美亚洲综合色| 在线 制服丝袜中出 人妻| 99热啪啪| 啊a一区在线| 中文字暮97| 天天综合在线4| 日韩美一区| 日本亚洲vr欧美不卡高清专区| 天天看综合网| 暖暖精品二区三区观看| yiren97| 麻豆国产成人精品| 最新9久久久9免费视频| 综合激情97| 日韩欧美偷拍美女视频| 9999久久久久| 玖玖爱视频网站| 野狼福利社区| 人人摸.人人色| 每日更新AV| 97超碰超| 91激情网| 五月婷婷六月天| 久久精品人体AV| 中文字幕av亚洲在线| 99婷婷| 青青草原人妻| 色综合久久夜色精品国产天堂| 亚洲自拍欧美色综合| 久久久精| 亚洲一区二区三区在线激情| 国产精品直播在线观看直播| 99性爱在线观看| 人人爱操| 麻豆精品A片免费观看| 中文熟女五十乱码在线| 国产97在线播放| 九九碰九九爱97超| 97精品熟女少妇一区| 黄色av一区二区在线| 一二三四免费视频| 少妇500双飞99| 99超碰网| 日韩中文字幕国产| 狠狠操综合| 精品久久久久9999| 国产精品大屁股999| 国产精品美女| 日韩AV熟女乱伦| 99国内精品| 夜夜嗨绯色| 熟女乱伦二区| 激情五月天插| 国产精品久久99日日| 超碰人人干天天射| 国产女大学生AV| 秋霞蝌科网日本一区| 日韩人体偷拍| 我想要啊 啊 啊| 在线免费观看高清无码视频| 浪人综合网| 国产欧美美女免费观看视频| 51一区二区三区| 高清有码一区二区| 国产AV色黄看到爽| 伊人大香蕉在线| 67914在线兔费成人视频| 五十路六十路素人熟女| 亚洲五月丁香花狠狠干一区二区三区 | 超碰97人妻自拍| jk白丝没脱就开始啪啪| 99热思思| 日本二区不卡| 成人免费不卡在线视频| 偷拍在线观看视频| 男女日B国产| 日本三级久| 青青草一区二区高清无码视频| 熟妇的味道HD中文字幕| 国产视频三区四区| 久久九色| 95精品在线| 日韩综合97p| 婷婷综合网站| 日韩精品亚洲一二三| 丰满美女一级毛片在线播放| 亚洲不卡一| 亚洲天在线| 日韩中文字幕视频在线观看| 国产欧美日产一区二区三区 - 国产欧美日 | 青娱乐啪啪视频| 丁香五月电影| 天美传媒AV在线播放| 99ri精品| 欧美人妻制服| 立川理惠无码一区二区| 婷婷激情五月综合| 九九99久久| 九九热精品| 欧美国产伊人久久久久| 91天天综合在线观看| 黄色一级视| 男人网站婷婷| 欧美日韩 强奸乱伦| 98福利在线视频| 午夜理论片在线观看免费| 超碰是碰在线观看| 高清国产av无码| 不卡视频一区蜜桃视频| 九九热精品在线| 人人做人人妻人人夜视频| 天天cao在线| 97色操| 操逼操操操91| 欧美性夜| 91色图片| 色乱二区| 操久久久久| 91色碰| 日韩中文字幕国产| 久久熟女嫩草成人片免费| 人妻AV 中文字幕的| 欧美第一页| 亚洲欧美一区二区不卡视频播放| 五月婷婷激情综合| 久久精品人妻一区| 一区超碰一区| 久久国产精品一级二级三级| 十八禁视频一区二区| 天天热精品| 国产精品一区人妻精品阁在线| 色欲三区| 亚洲欧美综合图片| 亚洲熟女乱色| 日本操BAV| 国内一区二区三区| 色婷婷影视| AA级电影三区| 精品人妻一区二区三区鲁大师| 欧美一二三区四五区| 亚洲成人福利电影免费| a'v在线资源| 久艹99| 91亚洲欧美色图| 日韩婷婷| 日本操大逼| 激情综合五月婷婷| 久久亚州精品成人Av无| 精品二区三四区五电影 | 日本视频在线观看污污污| 葡萄牙性视频一二区| www.男人天堂| 成人老鸭窝人人在线视频| 极品色www影院| 插穴性爱视频在线观看| 少妇久久久久久| 一二区在线观看视频| 亚洲在高跟鞋自慰久久在色线| 熟女精品一区二区三区| 亚洲国产麻豆一区二区三区| 午夜视频久久久久一区| 日韩大香蕉| 99热这里只有精品18| 久久久久久久9最新免费视频观看| 99自拍B亚洲 | 97国产成人精品免费视频| 欧美亚洲国产91在线| 精品一区二区三区麻豆| 暴力av在线| 欧美亚洲色的图| 天天综合网~91入口| 啊a一区在线| 蜜臀久久99精品久久久久久久久| 不卡免费av在线播放 | 欧美美女视频| 黑人性欧美| 男人的天堂日韩| 2000亚洲男人天堂| 性爱AV天堂| 97视频7| 天天舔九色婷婷| 欧美最婬乱婬爆婬性视频 | 69一区二区| 亚州综合色| 天天亚洲| 人人妻人人澡人人爽人人精品浪潮| 噜噜噜噜天天狠狠| 人乳av| 四季av一区二区凹凸精品小说| 日韩av电影网站| 九九九九九九九九九九九九九九九女| 国产青青美女玩逼视频| 日韩精品怡红院| 一区二区不卡免费| 5252色欧美在线男人的天堂| 人人九九精| 91色人| 亚洲人妻色图| 大香蕉中文| 亚洲欧美色图| 97爱爱爱| 小日子操bb在线看| 日本一区视频在线观看| 91爆操视频| 首页中文字幕中文字幕免费| 超碰99在线观看| 天天插天天射| 亚洲免费精品一区| 96久久久精品| 久久久久久人体| 欧美熟妇色| 亚洲第一无码播放立川理惠| 91色艳| 欧美日韩*字幕一区| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚洲熟女乱色一区二区三区久久久| 9久精品视频在线观看| oumeisetu综合| 国产中文福利| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 9997se| 欧色性第一页| 久久综合女优| 欧美在线视频观看一二三四区高清| 日日日色色色色色| 理论久久婷婷网8| 上特色A在线| 中文字幕乱在线伦视频中文字幕乱码在线| 亚洲中文字幕三级在线| 久久综合日韩亚洲欧美| 天天内射| 九九九九热| 秋霞成人一级在线观看| 五月丁香六月婷| 免費人妻夜夜爽天天爽爽一区| 人人噜夜夜操| 激情文学亚洲| 日本操逼aaaaa| aaa一级黄片| 青青草十区九区爱夜| 997色在线| 欧美一区二区男人天堂| 日韩欧美午夜视频在线| 美女高潮视频91| 女同性恋中文字幕| 国产精品久久久久无码Av网曝门| 日韩精品一区的| 色婷婷成人综合| 一级AAA片一区二区三区| www.亚洲黄色| 抽插无码高清一区| 免费人人搞97| 特色a在线上| 久久亚洲AV无码专区国产精品| 又黄又爽在线观看视频| 99re6国产精品99re| 在线综合网| 国产一级片| 伦在线97| 九月丁香婷婷色| 江都AV在线| 殴美色网| 国产精品视频白浆免费| 日本亚洲vr欧美不卡高清专区| 精品无码产区一区二| 国产强奸AV在线| 91人妻人人妻| 久久二| 在线观看日韩av不卡| 99黄页网站| 久久首页| 天天综合网在线| 狠狠干妹子| 免费看黄视频亚洲网站| 亚洲欧美综合色| 久久成人东京热人妻| 二男一女成人A片| 青青草视频久久久久| 日韩在线观看三级电影| 性色一线| 亚洲精品九九九| 色婷婷丁香五月| 一区二区 日韩 欧美 国产 传媒| 狠狠操狠狠操操| 男人天堂2019亚洲| 亚洲色图欧美| 女优免费一区二区永久| 天天澡天天爽日日AV| 五月天婷婷基地| 九九九九九九九九九国产精品| www.色婷婷色综合| 久久久精品,3| 欧美啪啪女女| 人妻精品综合中文字幕在线 | 国人欧美精品一区二区| 国产熟码AV| a级理论午夜日本| 久久99精品国产| 人妻精品一区二区在线| 日日日日做夜夜夜夜做无码97| 在线观看国产黄色| 国产一区二区在线看| 91久久久久免| 久久久久久久人妻丝袜| 青青草视频久久久久| 国产精品白领在线观看 | 国产精选三级在线观看| 久久婷婷一区| 91精品人妻电影| 久久精品国产亚洲粉嫩| 日本网色| 91 丝袜在线播放| 青青草视频爽一爽| 天天色天天干天天爱| 国产妇女精品视频青青草| 国产自偷自拍一区| 999久久久| 亚洲综合影片| 户外裸露刺激视频第一区| 久久久四区| 一区二区三区欧美激情| av2014 日韩在线中文字幕| 色爽爽文学| 亚洲伊人a线观看视频| 亚洲综合伊人| 天天日老熟妇| xxx0国产在线播放| 四虎av在线| 国内黄色精品| 日本性爱少妇| 国产高清自拍视频| 亚洲青青草| 欧美综合站| 成人av影院在线观看| 中韩中文字幕在线观看| 夜夜嗨AV蜜臀av| 欧美系列在线一区二区| 91综合网站| 色哟哟-国产专区| 影音先锋国产精品| 凹凸视频在线一区二区| 天天综合站| 欧美熟妇乱码在线一区| 国产福利精品最新在线| 探花视频免费观看国产专区| 久久亚洲日韩国产欧| 91色噜噜狠狠| 亚洲日韩一区电影| 亚洲自拍天堂| 久久人妻| 国产丝袜一区二区三区| 综合色久| 日本操大逼| 中文?日韩?免费?精品| 熟女网站最新| 91痴汉| 成人国产视频在线观看| 九九九九免费视频| 美女人妻色网站| 我要去看2个日本美女.com曹逼| 大干人妻| 成人十八禁日韩欧美一二三| 狂操嫩妻视频一区二区三区| 老司机福利青青草| 97超碰伊人| 久久精品99久久久久久| www鬼畜国产男人的天堂| 欧美综合娱乐久久| 成年人黄色视频免费| 亚洲在线a| 成人夜夜| 二级久久网| 天天插天天舔舔天天干| 97色伦欧美| 日本理论在线| 久久香蕉综合一本到3atv| 一道α片欧美| 手机午夜电影神马久久| 亚洲AV无码乱码| 天天日天天干少妇日| 夜夜夜爽www精品视频| 欧美综合亚洲| 欧美偷偷网| 欧美黑人168页欧美黑人167| 新视频sss国产| 操一区| 97色97好| 伊人操操| 中文字幕-区二区三区四区视频中国| 亚洲国产综合久久久性感熟妇| 婷婷丁香五月综合| 97电影院超碰| 激情无码日韩| 超碰在线香蕉| 亚洲 国产 精品一区| 欧美人与性动交a美精品| 中国一级αV| 激情小说亚洲| 超碰精品国产无码| 综合影院永久入口国产| 久操操AV电影| 黄色人人| 亚洲成人性爱在线观看| 404操逼福利视频| 粉嫩在线一区二区懂色| 欧美刺激色黄片免费看| 色五月激情网| 看日韩美女二区三区免费操逼视频 | 国产AV无码AV| 综合操逼| 狠狠操狠狠爱| 亚洲情色电影网| 国产精品色哟哟| 亚洲揄拍网| 欧美91久久久久| 青草伊人久久| 欧美色图20p| 中文字幕丝袜| w w w.久久精品| 国产乱伦亚洲| 操逼视频免费日韩无码| wwwss在线观看| 中文激情网| 亚洲少妇色| 亚洲乱色视频一区、二区在线| 1204av韩国| 久欲AV| 香蕉综合网| 免费AV中文网在线观看| 亚洲熟女性高潮久久久| 久久久久久久久成人av解说| 99精品久久久久久久婷婷蜜桃| 五月天啪啪| 日韩影片中文字幕一区二区三区| 无码视频一区二区| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 伊人热综合| 综合久久久久久久综合网| 97干在线| 欧美亚洲一区二区久久久婷精品大包诱| 啊啊啊啊啊啊啊啊要喷了| 99re28在线观看| 无码137片内射在线影院| 国产精品无码论坛| 蜜臀精品1区2区| 久久久久久久久国产| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 在线看免费无码AV天堂的| 天天操女人| 亚洲熟女乱色一区二区三区久久久| 91精品国产一区三一| 97人人夜夜精品视频| 婷婷五月天网| 1204av韩国| 美女91网站| 热99这里只有精品| www四虎| 九七超碰人人乐| 香蕉国产精品麻豆亚洲欧美日韩| 亚洲一区中文字幕一区| 亚洲最新Av| 97综合激情| 偷窥自拍A片| 性交一区二区在线播放| 天天草天天日| 国产精品青草综合久久| 1024亚洲中文字幕久在线看片你懂的| 老熟妇乱轮| 天堂九九九九九九九九九| 久久9精品| 超碰成人最新最好看| 亚洲……91| 高清无码学生妹高潮| 天天操人人操狠狠插| 午夜精品99久久久久传媒| 蜜臀一二三区| 2017人人操,人人摸| 中文啪啪视频| 快灬快灬 一下爽蜜桃在线观看| 天天草夜夜草高潮片| 清纯唯美激情四射| 动漫av中文| 久久久久久久久久久免费精品| 啊啊啊啊啊啊啊国| 96一区二区三区| 一级啊性爱在线视频| 91欧美美女日韩国产婷婷| 国产福利精品98视频| 婷婷九月| 欧美色性情| 久久精品福利影院| 大香蕉在线视频15| 97视频在线观看免费高清| av九九| 日韩欧美中文字亚洲慕| 伊人久久综合精品欧美| 青娱乐手机日韩在线视频| 熟妇综合一区二区三区| 日韩一999精品| 亚洲欧洲激情卡通另类文学四射小说网站 | 99精品视频在线观看免费| 天天做天天爱天天爽AV| 亚洲黄片免费在线播放| 清清一区二区三区四区不卡视频| 好吊色青靑草| 久久人妻办公室视频| 91五十路| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久久91福利姬| 国产对白刺激视频| 污污污8888| 日本性爰一道本| 97天天弄| 精品一区二区人妖| 欧亚性爱视频免费看| 亚州欧美在线| 日韩性爱啪啪视频| 欧美丝袜制服久久| 国产二区三区免费视频| 欧美亚性天堂| 亚洲欧洲日韩中文字幕一区| 97色色色| 97免费在线视频| 亚洲熟女国产综合另类| 丁香九月 婷婷| 成人欧美日超碰| 日韩在线观看中文字幕视频| 国产熟女一区二区| 日本欧美亚洲高清在线看| 九七毛片九九毛片 | 天天操美美| 99久久综合网| 久久超碰97| 日韩美女,国产传媒,视频一区| 强奸乱伦AV网站| 午夜福利 成人 91| 中出91| 91第一页| av72网| 九九黄色网| www.久久制服糖| 国内成人圈中文字幕无码视频| 中文字幕高清20页视频| 四虎国产精品永久在线囯在线| 后入式在线免费观看60秒| 亚洲码专区| 日韩啪啪视频| 国产精品视频在线播放 | 91欧美性| 另类图片五月| 9Ⅰ超碰| 精品人妻一区二区免费蜜桃| 天天色播亚洲综合网站| 超碰97中文| 97久久国产亚洲精品超碰热| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 欧美熟爽综合| 亚洲91在线播放影院| 97资源久久| 色悠久久久av| 中文字幕大片三级狠狠干| 天堂v无码免费视频| 色哟哟av网址| 欧美老妇综合网| 天天干一干| 九色精品视频导航1| 亚洲在线91| 天天色踪合| 爱欲AV| 色婷婷视频| 亚洲欧美日韩免费电影| 亚洲久9| 久久美国毛片| 亚洲中文人妻色| 99热精品在线观看| 高清一区AV无码| 国产一区二区二区按摩精品啪视频| 色妇91| 亚洲最大的黄色电影网站。| 99色视频| 一区二区视频在线播放| 人人操人人插人人摸人人干| 男人综合网| 久操视频在线| 欧美精品偷拍| 国产精品久久久亚洲一区| 去干网最新版| 国产丝袜美女在线一区| 亚洲丝袜诱惑| 色香欲天天天天综合色| 一区二区三区日韩欧美| 亚洲麻豆精品二区三区| 九九视频黄色片| 密乳视频在线| 嗯嗯啊啊好爽| 97超级久久| 精品免费成人久久| 欧美色图小说综合| 老女人碰碰在线碰碰视频| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 91麻豆天美传媒HD| 亚洲天堂另类小说男人| 天天舔天天 | 无马一区二区| 色淫网站优优视频| 欧美最婬乱婬爆婬牲视频| 欧美亚洲综合999| 一区二三区四区视频大全套| 91久久18禁| 大香蕉中文aV在线| 97青娱乐超碰久久| 蜜奶av| 日本东京热大香蕉a片| 东京成人一区| 嗯~啊~快点 死我视频| 中文字幕片| 三级网站超变态精品| 78p欧美| 超碰天天操| 厕所偷拍在线| 久湿久久| 九九这里只有精品| 亚欧无码在线| 久久久成人免费av电影| 高潮内射在线| 探花精品视频| 嗯啊不要啊在线 | 欧美激情一区| 美女黄网| 黄片免费日韩| 中文字幕人妻资源在线| 丁香六月激情| 亚洲色 国产 欧美 日韩| 亚洲第一在线视频| 五月婷婷爱六月丁香色| 99色在线| 欧美欲色| 丝袜美腿射精91| 欧美肥臀在线| 日日超碰亚洲| 久久国产精品m码| 屁股久久久久久久久久| m欧洲一级午老| 国产精品永久免费10000| WWW啪啪的com| www.黄色在线| 日本高清一区二区在线| 成人福利视频网| 久久激情网| 日韩影片中文字幕一区二区三区| 欧美综合站| 久久一二三四五六七八九区区| 中文字幕在在线观看网站| 黄色高清久久无码依人|