亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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
返回資訊列表
91大神精品长腿在线观看网站| 97在线免费视频| 亚洲不卡一| 男同专区一区二区三区在线| 国产农村妇女精品1区二区| 熟啊v色欧美热| 99蜜月精品久久| 加勒比伊人| 中日韩久久久| 大香蕉 222| 亚洲性综合| 色香av| 翔田千里AⅤHD无码| 色青青久久影视| 五月天综合网| 欧美人与动性人交a| 亚洲免费成人精品电影| 91久久久久久久久久久| 91老熟女91老女人| 美女午夜福利免费视频| 嗯……啊…嗯嗯…啊…好舒服| 97超碰总站| av亚欧| 天天草天天干天天日| 91色黑人少妇| 国产400孕妇孕交群| 操逼啊啊啊91| 性爱AV天堂| 3PAV乱伦视频| 欧美日韩情色一区二区| 欧美精品庄| 99精品欧美一区二区三区桃色| 97超碰碰碰| 国产精品白丝AV| 日韩欧美成人综合在线| 亚洲天堂东京热| 欧美午夜视频免费观看| 97综合国产精品高潮久久| 九久久精| 亚洲国产ⅴ高清在线观看| 99热| 丝袜美腿91| 一级久久久久久久久久久| 色婷婷在线视频精品导航| 乱老熟女一区二区三区| 日日夜夜草草草| 五月丁香啪啪网| 情色五月天就去干| 一区二区三区视频| 尹人免费观看视频在线| 99.色网| 91色综合色| 久久69| 啪啪啪大香蕉| 91亚洲电影| 国产视频三区四区| 亚洲乱码精品一区二区| 宅男91视频在线播放| 亚洲成人ab| 中文字幕 码 自拍 视频 区| 国产精品久久久 | 加勒比久久综合网高清| 97色涩| 男女做爰猛烈动高潮A片免费应用| 桃色五月天| 蜜臀Av一区二区三区| 狠狠综合网| 呦呦一区| 天堂麻豆天美| 国产三区免费在线观看| 天干天干天干天天做| 久久久夜夜嗨免费视频| 久久人妻熟女一区二区| 欧美在线官网| 日韩欧洲操屄视频| 亚洲乱码精品一区二区| 婷色五月天| 国产熟女高潮一区二区三区| 欧美很很操视频| 97操97干| 久久111| 色欲蜜臀AV| 婷婷精品国产欧美精品亚洲人人爽| 国产av又色又爽又黄| 欧美日韩97在线| 亚洲AV无码国产精品久久久久 | 校园激情狠狠四射| 97久久精品亚洲中六字幕| 国产又色又粗又黄又爽| 亚洲欧洲激情| 人妻啊啊人妻啊| 国内毛片欧美香蕉精品| 精品国产乱码久久久兰草影视| 偷拍自拍在线视频观看| 92一区二区| 美女91在线观看| 18禁的网站在线| 蜜臀久久99精品久久久久久成人小说| 欧美内射少妇| 伊人色综合网电影| 天天看天天日| 欧亚日韩综合精品国产| 色噜噜狠狠色综无码久久合欧美| 精品三级在线专区| 99re99在线视频| 精品人妻1237| 美国一区二区免费视频| 肏逼视频日本| 青青操日韩| 熟妇女人妻呻吟久久AV| 亚洲欧洲网站免费观看| 黄色AV免费| 欧美在线亚洲| 亚洲综合贴图91| 高清无码网址| 国产偷拍自拍在线视频| 97免费视频在线| 天天α片| 欧美日韩性感| 亚洲第一在线视频| 青草草免费网站av| 国产老太乱伦一区| 国产免费内射视频| ...日韩成人一区二区三区字幕| 91丨九色丨东北熟女| 女欧美一区二三区| 欧美人妻制服| 99999亚洲| 亚洲麻豆18发?| 青青草视频爽一爽| 97视频观看| 国产女人91精品嗷嗷嗷嗷| 亚洲影院无码在线| 91亚洲欧美激情| 麻豆黄站| 性交一区二区在线播放| 久久久国产精品人妻丝袜| 激情综合五月婷婷| 熟女六十路| 亚洲国产成人福利在线观看| 中国AAAAAA黄色片| 91色花堂| 97久久国产精品女不卡| 少妇天堂| 久久久一区二区三区麻豆| 亚洲黄a三级三级三级看三级| 9久久9综合| 色婷婷综合网| 国产亚洲在线| 亚欧国产无码精品在线| 美女尤物人人操| 亚洲AV成人精品网站在AV| 伦理第一页| 蜜臀aV午夜一区二区三区| 青青国产在线拍揄自揄拍| 999日韩中文精品观看视频。| 在线人人人人人人精品超| 日韩人妻一二三区视频| 家庭乱伦性爱av| 伊人网青青| 翔田千里无码一区| 中文字幕一区二区视频在线观看| 性色aV一区二区三区噜噜| 天天天肏屄肏屄肏屄欧美欧美| 久久久一区二区| 99re在线视频国产| 97精品视频在线播放| 九九av| AV中文字幕剧情1区2区3| 青女在线| 爱妻综合网| 97精品在线| 91在线精品| 熟女人妻精品一区二区视频 | 综合网欧美在线| 激情综合网激情五月天| 婷婷综合在线| 中文字幕一区av| 欧美精品第3页| 91GD.COM| 91大胆欧美| 日本不卡卡一区| 极品内射| 国产人妻精品一区二区三区秋霞 | 久久一本大香蕉 | 日韩人妻一二三区视频| h无码动漫在线观看| 91动漫操逼视频| 69精品久久久久中文字幕| 国产精品亚洲一区二区三区四区| 国产伦精品一区二区三区在线观| www久久99| 亚洲Av无码成人精品国产| 日韩午夜精品一区二区三区电影| 日本黄 R色 成 人网站| 熟女丰满人妻一区| 夜草欧美| 欧美97av| 粉嫩av在线| 激情黄色片在线观看| 日韩乱伦AⅤ| 午夜无码精品免费看性色| 欧美性爱另类综合| 久久国产99精品72福利| 91热情品| 97资源站日韩| 老外又粗又长一晚做五次| 久草网站免费在线观看| 99热国产| 操逼999| 亚洲网污污污污| 超碰97国产欧美| 九色黄站| 日韩99精品视频综合区| www99热| 青青草久久一区网| 99精品综合久久久久五月天| 九九九九九精品| 日韩熟女乱伦中出| 玖玖在线视频| 国产精品粉嫩福利在线| 亚洲97综| 亚洲成A∨人影院在线欢看| 国产亚洲 中文欧美久久| 久草久日| 欧美激情 亚洲色图| yw尤物av无码点击进入麻豆| 无码高清专| 国产玖玖| 中文字幕一区二区三四五区日日骚| 精品国产乱码久久久久久久久久毛片| 免费观看国产小粉嫩喷水精品午| 综合色啪| 欧美成人9797| 青青青草原| 日本人妻最新在线中| 国产福利av精彩对白| 91在线美女| 蜜乳av一区二区三区四区不卡| 亚洲欧美黄| 亚洲免费成人精品电影| 欧美制服网站美腿丝袜| 人妻喷水| 伊人精品久久网站| 熟女一区二区| 欧美Ⅴ性爱| 91一起操| 一区二区不卡免费| 中文字幕乱在线伦视频中文字幕乱码在线| 啊…啊…操我用力操我| 亚洲欧美综合网 | 日本五十路熟女一区二区| 福利风月五月天影院| 人妻熟女一区二区三区视频| 精品亚洲国产成人av网站| 亚洲色图加勒比| 久久内射| 色综合久| 精品国产乱码久久久久久久| 日韩 欧美 视频 在线 一区| 一区二区三区色综合| 少妇高潮流水av免费| 淫妻综合网| 亚洲少妇激情视频| 精品久| 女人被添高潮免费视频| 91爱做| 亚洲欧洲自拍图片专区满春格| 欧美激情综合色综合啪啪五月| 涩亚洲欧洲| 亚洲黄色a级片| 久久草视频污视频| 日韩人妻制服丝袜av| 日欧美色| 欧美探花网| 自拍二页| 超碰成人最新最好看| 亚洲第91页| 天天弄天天操| 欧美日韩另类字幕中文| 日韩av在线精品观看| 欧美熟爽综合| 伊人91| 国产亚洲在线观看| 人妻天堂网| 99精品视频在线观看| 男人的天堂VA| 大香蕉宗合网在线| 国产91影院| 国产2.3.4区| 亚洲第一黄色av网站| 久操99| 17c嫩草51久久91嫩草| 理论久久婷婷网 8| 九九热AV| 精品国产一区二区三区久久久蜜臀| 青青草国产欧美非洲黑人| 久久久久久久人妻| 中文字幕一区二区三区50路| 色综合久久88色综合久久天天| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 熟女突然公开看18禁影片 | 91久久久老司机| 人妻中文字幕精品无码| 91欧美综合在线| 婷婷五月综合在线| 激情无码日韩| 性交一区二区在线播放| 日韩探花精品在线视频| 久久久免费高清中文视频| 91麻豆va国产精品| 精品日日人妻| 大香蕉天天看妹子| 韩日无码在线观看| 78精品| 97超碰jingpin| av三级电影在线播放| 美女的肌被草喷水视频| 久久99午夜精品一区人妻| 婷婷性网| www.91色综合| ,成人免费啪啪视频| 亚热日本熟女| 色情综合网| 亚洲欧美另类激情小说| 亚洲精品国产av天美传媒| 亚洲三区视频| 97亚洲色图| 久久国色天香香蕉| 亚洲成人av电影在线| 99福利社| ss久久| Blackedraw视频一区二区| 天天日天天干天天摸天天操| 日本不卡码黄色| 天天色天天干天天射| 大香蕉草草| 国产婷婷一区| 激情综合五月婷婷| 国产美女口爆吞精视频| 老司机午夜福利视频一区二区| 精品人妻av在线播放| 欧美日韩妖精91com| 婷婷五月色| 91人妻最真实刺激绿帽| 猛猛干| 久草新免费| 亚洲成av人片色午夜乱码| 久久久久人| 996热| 九九热精品| 美日韩一二三区| 99热综合| 欧美黄片免费在线观看视频| 久久激情婷婷| 天天天做天天天爱天天天爽| 人妻酒店出差被中出免费在线播放| 91|九色|国产熟女| 亚洲无吗在线视频| 国产美女口爆吞精视频| 亚洲丝袜综合| 美女骚尻视频| av东京热男人的天堂| 久久久草成人网站久久久草成人久久久草久久久 | 日韩 国产 欧美自拍| 粉嫩少妇自慰在线| 在线精品福利免费播放| 日韩av不卡在线看| 性饥渴少妇av无码毛片| 久久春色| 啊啊啊久久| 日韩欧美~中文字| 少妇第一页| 色爱欲亚洲| 中文字暮97| 久久女人一区二区三区| 激情久久久| 艹精品| 久久在线观看免费视频| 少妇久久久久久| 亚洲和欧美裸体美女双飞视频| 麻豆国产免费影片| 手机在线看片免费人成视频| 性久久| 看大黄色大片原件| 成人小说视频在线精品欧美| 日韩免费中文字幕视频| 欧美亚洲综合高清在线| 久久97视频| 福利五区| 九九九成人| 日韩在线观看AV| 91青青在线视频| 乱色老一区二区三区的观看方式| 99999这里都精品| 人妻少妇色综合| 精品久久久久久久久久久久| 啊啊啊啊啊在线| 试看60秒| 啊啊啊啊在线播放| 欧美激情黑人| 东京热伊久| 五月天精品| 婷婷探花久久精品一区| 男人的天堂久久| 欧美精品欧美精品系列| 欧美国产一区二区三区麻豆传媒| 日韩电影天堂视频一区二区| 欧美在线55555| 男女性扦B| 97天天在线| 精品9999| 中国和日本人色哪个不下载能放| 伊人网在线点播| 五十路三区在线| 91这里只有精品| 日韩免费一级性爱视频| 家庭乱伦国产| 免费伦费视频在线观看| 男人的天堂一区三区| 激情AV| 先锋精品av色鲁| av天堂影视中文在字幕在线中文| 午夜精品99久久久久传媒| 伊人丝袜美腿高跟在线观看高清 | 成人女人国产| 日本九九久久99| 久9综合在线| 91综合网在线| 精品国产乱码| 无码国产精品午夜不卡(| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 中文久久96| 超碰在线1234区| 精品人妻一区二区三区视频在线| 免费一级精品啪啪视频| 爱做久久久久久| 色香色香欲天天天影视综合网| 欧美最婬乱婬爆婬性视频| 一本一首道人妻少妇免费久久| 人人操人人精品影片| 老妇女91| 亚洲国产精品有声| 激情久久久| 精品97精品97| 97亚洲中文| 岛国福利在线精品播放| 久热伊人| 久久久久921| 国产97亚洲| 中文字幕123| 久久国产三区| 91美女视频电影| 亚洲?V高清一区二区三区尤物| 操逼www.| 亚洲熟妇无码一区二区三区| 91激情国产| 亚洲中文字幕精品一区| 爆操无码| 97超视频在线观看| 中文?日韩?免费?精品| 午夜久久无码1000合集| 闷骚老熟女15P| 91性感在线| 强奸乱伦大香蕉| 四月丁香婷婷| 91精品导航| 日韩欧美综合激情| 亚洲男人的天堂V| 手机在线大香蕉| 天堂无码精品国产久| 69人妻人人揉人人躁人人精品| 亚洲麻豆18发?| a片久久久久久久久久久久| 狠狠干综合| 日韩八十路老熟女| 日韩操逼HD| 麻豆AV一区二区| 美女丝袜激情小说| 亚洲欧美高清无码| 操人妻少妇中文 | 伊人97| 99精品无码| 少妇人妻激情四射| 绑缚麻绳人妻寝取完整版| 国产高清1234区| 蜜臀少妇一区二区| 少妇一线天久久久久久| 无码99| 免费伦费视频在线观看| 亚洲成人日韩小说| 亚洲最新av无码成人精品区| 不卡一区二区日本视频| 日韩国产乱子伦App| 黄色片一区二区三区四区五区 | 色综合99999| 午夜男女爽爽大片免费观看| 97在线免费观看| 超碰91在线| 国产丝袜啪啪| 中文字幕AV中出| 精品国产乱码久久久| 亚洲欧美天| 日韩电影中文字幕| 婷婷人妻激情| 992大香蕉| 久操免费电影| 欧美激情内射| 色淫网站优优视频| 97亚洲中文| 美女91AV| 国产白丝av| 欧美精品三级黄片| 久久黄片国产一区二区| 欧美探花网| 九九精品99| 亚洲啪啪综合?v一区综合精品区| 新怡红院| 女人久久久| 可免费观看的av毛片中日美韩| 呦呦一区| 天天激情干| 日本在线播放不卡一区| 丁香五月大香蕉| 天天影视网综合少妇| 久久最新免费视频23| 日韩99神马视频播放片在线播放| 草蕉影视亚洲无码| 91 亚洲情侣偷拍 久久| 羞答答AV中文字| 欧美欧美少妇| 国产91福利小视频在线观看| 国产黄色影片在线观看| 久精品无码av一区二免费国产在线观看 | 国模私拍一区二区三区神乳| 熟女乱伦A| 久久伊人五月天| 久久国产99精品72福利| 精品无码一二三四区| 日韩高清一二三| 啪啪啪亚欧美视频| 成人av福利在线观看| 久久无码电影| 亚洲图片 91| 欧美中文字幕一区| 久久久久幕乱码| 91综合熟女| 中文字幕日韩专区精品系列| 亚洲欧美91| 人妻 中文 日韩| 国产激情视频在线观看| 99热综合| 二对二中文字幕。| 91热色| 日本不卡一区| 国人欧美精品一区二区| 午夜男人天堂| 操死我了啊啊啊| 精品视频一区二区| 亚欧无码在线| 欧美专区第一页| 天天躁狠狠躁av| 欧美—性—交—色| 艹精品| 人妻少妇精品一区二区三区| 欧美日韩国产电影| 精品美女少妇一区二区| 久久久久久亚洲中文| 9久久精品| 日韩懂色网| 伊香蕉综合久久久久久久噜噜噜 | 精品国产乱码久久久久久久久1 | 久久无码精品| Av手机版天堂网| A V少妇特黄三级| 夜夜福利| 欧美97爱| 女人被添高潮免费视频| 亚码人妻| 国产91福利小视频在线观看| 综合色啪| 欧天美中出| 成人精品在线免费视频| 337p大胆噜噜噜噜噜91Av| 欧美久久久15P| 久久综合97| 福利伊人玖玖国产| A啊啊在线观看| 偷拍视频青青草在线视频| 日韩人成网站在线播放| 欧美性暴力猛交XXXX| 91美| 黄色毛片A片| 欧美日韩国产电影| 色欧洲| 操我无码| 亚洲国产精品久久久男人的天堂| 69一区二区| 亚洲中文字幕精品久久久久久直播| 国产熟女精品区| 国产无码成人无码| 98色网| 青青草在线视频播放器| 天天躁日日躁AAA片李宗瑞| 色综和网| 一级二级三级黑人无码| 久久不卡一区二区| 91免费看一区二区三区| 又黄又爽在线观看视频| 97超碰公开| 中文字幕精品资源在线| av草草在线电影| 亚洲精品无码成人久久久99 | 青青草国产盗摄一二三区| 九九九免费视频| 五月天色五月| 日韩精品午夜操呦呦不卡影院| 国产女人91精品嗷嗷嗷嗷| 国产精品久久久999| 久久透逼视频| 97玖玖超碰| 精品亚洲一区在线观看| 亚欧美天堂在线| 九九九九九九九九九国产精品| 91操人| 久久久性少妇| 九热视频| juliaann欧美丝袜办公室| 国产 码在线成人网站| 欲色综合| 婷婷尹人大香蕉免费| 九九久久久| 日韩97视频!在线| 操逼操2| 18一区二区三区| 日本乱人伦片中文三区| 日本 免费 一区二区三区 久久香蕉 | 天天α片| 人人妻碰人人免费| 操B久久| 国产一在线观看| 91青青在线视频| 精品在线观看视频在线| 久久久96精品| 丁香六月综合激情| 91亚洲色图| 九九热超碰97亚洲最新香蕉| 影音先锋新男人| 日本超碰色精品| 色色色色电影网| 日日摸日日碰夜夜爽视频| 天天色综合图片| 人妻铁牛TV| 欧美五区| 国产综合网站在线播放| 东京热伊久| 另类天堂| 亚洲中文字幕在线视频一区二区| 丁香五月天久久精品视频一区二区三区| 国产一级特黄大片处女| 色99久草| 亚洲性综合9| 日韩黄片影院| 亚洲诱惑天堂| 亚洲日本韩国极品一区二区| 欧美中文字幕日韩在线| 美女网站黄页| 97九色人妻| 中文精品一区二去| 欧美另类丝袜熟女| 日韩伦理视频| 久久精品国产亚洲AV无码电影| 91丝袜人妻| 亚洲中文字幕乱码无码一区二区| 国产黄片在线免费观看| 久久99九九九九6666免费观看软件| 日本天天人人狠狠在线日美女| 国产中文大片资源中文字幕| 91AV国产精品| 人妻精品4K4K4K4K4| 亚洲欧综合另类无码一区| 日韩图色| 精品一国2| 另类图片五月天| 热无码中文亚洲H一道本一区二区| 伊人一区二区三区| 婷婷五月天av| 精品欧美А∨无码黑人大荫蒂| 天堂亚洲精品| 97精品国产手机| 六月丁香五月婷婷| 欧美亚洲色图另类国产| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 欧美精品成人一区二区在线观看 | 久久午夜色播影院免费高清| 91色色综合| 国产不卡精品91| 日韩黄色成人性爱| 操www| 丝袜综合网| 老鸭窝日丰县女人| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 夜色97| 高潮内射在线| 九九综合久久| 豆花视频操逼网址 | 97视频7| 久久婷婷一区二| 成年人性爱日韩| 久久久久亚洲熟妇熟女| 91欧美网| 亚洲AV色图一区| 男生女生啊啊啊啊| 志村玲子视频一区二区| 国产欧美亚洲精品a第2页| 亚洲欧洲中文日韩女优乱码| 精品人妻一区二区三区视频在线| 神马久久久久久久久久久久| 九九毛片这里只有精品| 熟女突然公开看18禁影片| 日韩免费看在线黄色片| 国产精品视频内谢女人| 国产丝袜美女在线一区| 婷婷五月av| 一区二区三区探花在线观看| 亚洲天堂一区| 9I1性色影院| 粉嫩av一区二区三区四季| 东京热一区二区三区四区五区六区| 秋霞视频一区二区| 顶级丝袜熟女一区二区三区 | 欧美精品91| 久久精品国产72国产精品福利| 欧美天天干| 91精品人妻偷情| 九九九九九精品| 成人青青草原伊人| 国产精品一区二区麻豆| 91美女視頻| 人妻丰满熟妇av无码区蜜桃| 殴美性天天| 中文无线日韩一区| 日本不卡高清视频| 殴美,日韩国产伦精品| 欧美成人一区二区三区在线播放| 婬女免费一二三区A片| 青青草华人在线欧美在线| 97精品视频网站| 粉嫩国产精品久久久| 亚洲图片 91| 凹凸视频特色日本特黄| 亚洲激情 欧美色图| 午夜免费视频1000| JULIA一区二区三区在线播放| 333kkkk·亚洲com久久| 手机在线A片| 在线有码中文字幕| 污色区网站| 欧美激情久操网| 中文字幕后石码四区五区| 老熟妇91| 中文字幕三四区| 尤物网站91| 污到发麻的视频 国产| 91狠| 亚洲欲色9532548967一区| 九色 人妻 大香蕉| 亚洲综合春色| 先锋精品av色鲁| 天天干天天干天天干| 婷婷月色| 另类图片五月| 蜜桃久久久久久久| 超碰79人人乐| 日本少妇va7777| 天天综合香 ld视频| 夜夜国产一区| 青青草中日韩在线| 蜜汁欧美| 美女91AV| 人人操人人干xxx| 色婷婷六月丁香七月婷婷| 欧美亚洲一级在线观看| 综合操逼| 三级三久久线久久99久目本WW| 九九热在线视频| 欧美熟妇乱码在线一区| 闷骚老熟女15P| 91色伦综合| 加勒比无码毛片| 亚洲欧美另类图片| 精品亚洲成人免费在线| 国产福利小视频高清在线观看| 色五月丁香五月| 特污免视频| 青青草原狼av| 1204金沙人妻懂旧版免费| 九九九草| 三及片网站| 一级一性爱免费视频| 新久久AV| 综合色99| 禁片 高清 在线观看视频网站| 国产丝袜美女在线一区| 波多野结衣被操50分钟免费视频| 日本色色色视频| 亚洲 日本 一 二 三| 伊人青青草久久| 99久在线精品99re8| 舔足天天操天天射| 亚洲欧美综合区自拍另类| 熟女乱伦二区| 狠狠 91| 激情黄色五月天| 久久东京热久久| 日韩强奸av| 日韩欧美经典在线观看| 好淫网一二三视区| 91无码人妻| 成人怡红院| 26uuu性| 天天天天干| 天天操美美| 精品一区二区三区麻豆| 99国产在线 精品 视频| 很很干很很操| 欧美精品久久| 久久国产乱子伦精品免费女,网站| 老熟女乱子伦中文字幕一区二区 | 日韩国产十八禁| 69久久| 欧美福利视频啊啊啊啊| 日本三级一区二区 在线| 久久九九99| 精品一久久久| 亚洲成人ab| 欧美顶级黄色大片免费| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 91精品婷婷国产综合久久| 26uuu最新| 懂色AV蜜臀无码精品APP| 亚洲欧洲美腿丝袜| 久久综合久色欧美综合狠狠| 日韩人妻丝袜中文字幕| 黄色av片三级三级三级免费看| 一区二区日韩欧美久久| 精彩久久中文| 97超碰人人模人人拍人人| 国内精品久久久久影院亚洲| 嫩草影院永久在线制服丝袜| 久久日本熟妇熟色一区| 亚洲激情在线一区二区| 亚洲色入欧美| 狠狠久久手机视频精品| 无码免费精品高清| 国产亚洲欧洲在线观看| 亚洲久9| 乱伦Av网| 校园春色综合色| 少妇久久久久久| 亚洲国产一区二区三区四区国产| 老汉网| 日本熟女不卡视频| 久久国产三区| 少妇蹲下露出大唇5| 免費黃色視頻觀看一| 美女黄码视频午夜| 家庭乱伦国产精品| 日韩97超碰中文字幕| 97久久超碰日韩精品| 中文字幕日本久久| 极品AV网站在线观看| 中文AV制服乱伦| 欧美另类色| 一起草视频在线| 五月天大香蕉| 亚洲天堂2020| 欧美精品一区二区少妇免费A片 | 欧美精品精品一区二区| 欧美狠狠鲁| 99久久99久久免费精品蜜臀| 99九九久久| 一本大道久| 国产亚洲色婷婷久久99精品91葵花宝典 | 青青草吊丝| 日本一区二区不卡| 97色插| 玖草在线视频| 欧美刺激色黄片免费看| 国内精品久9| 日本一级性爱| 97久操| 9久久精品| 国产精品农村妇女精品| 五月色网| 青青草在线视频播放器| 日韩人妻精品| 国产一线二线三线av| 91精品丝袜在线观看| 久久久久久久久久久精| 乱老女人一区二区视频| 欧美色图99| 果冻国产精品麻豆成人av| 国产精品一区二区麻豆| 国产 v乱码一区二| 亚洲另类色综合网站| 人妻熟女av国产网站| 欧美综合自拍亚洲综合图| 欧美日本一区二区a人| 亚洲图片偷拍欧美| 99视频内射三四| 精品999999| 福利风月五月天影院| 翔田千里爆乳巨臀无码| 麻豆一区在线| 性做久久久久久久| 91欧| 久久这里都是精品| 亚洲**2021在线观看| 330dv亚洲成年视频网| 国产A v无码专区| 亚洲大色鬼| 国产激情久久久| 精品人妻一区二区三区日产乱码| 久久精品老司| 久久精品国产亚洲AV片多多| 欧美第一页| 色婷婷色99国产综合精品| 天天天肏屄肏屄肏屄欧美欧美| 色妺妺在线视频| 欧美一级A一级a爱片久久| 国产精品久久久蜜臀| 精品偷拍13p欧美dodk视频| 懂色av中文字幕| 蜜桃臀av在线观看| 欧美岛国精品在线观看| 欧美亚州综合图片| 无码自拍SM| 日躁天天爽爽| 午夜福利在线视频1000| 综合自拍| 久久精品黄色| 日韩美女高潮喷水视频| 欧美性爱另类综合| 欧美亚洲| 青青三级视频| 亚洲激情网| 久久 精品| 大香蕉视频一二三区| 亚洲图片另类| 国产400孕妇孕交群| 青青草中出视频| 久久精品电影| 久草老司机| 亚洲好色人妻| 无码人妻丰满熟妇区毛片| 嫩草 我啊~嗯~在线| 亚洲成人妻日韩在线| 9久精品视频在线观看| 动漫片子网站3黄| 国内操逼视频二区| 一级黄碟在线观看| 亚洲官网在线| 久久久久久中文版| 超碰97资源网亚洲| 精品毛片av一区二区| 天天色悠悠激情| 亚洲色图欧美色图日韩色图| 蜜臀久久99精品久久久久久婷婷| 91高跟美女在线播放| 狠狠色综合网| 黑人美精品 A片| 人妻熟女一区二区在线视频| 超碰在线97国产| 亚洲国男人的天堂| 亚洲AV秘 精品久久老牛影视| 天天综合网~91| 骚人妻少妇视频| 中文字幕视频一区视频二区| 日韩午夜啪啪视频| 麻花豆传媒剧国产MV出差| 性一级黄色录像片网站导航| 91久久堂| 91老司机在线视频免费观看| 午夜精品探花| 激情抓乳插进去啪啪啪日韩 | 婷婷色综合| 国产精品久久久久久久黄无码 | 国产乱码久久| 亚洲黄网在哪免费看| 成人26uuu| 91无码精品| 色天堂在线观看| 日本一二区免费 | 综合 青草 伊久久 影院 综合| 久久香蕉影院| 成人八戒网站| 精品人妻中文字幕高清| 天天综合网~91| 欧美亚洲宗合色性图| 日han少妇无码| 欧插网站| 九九99久久| www色日本| 精品亚洲国产成人精品| 国产亚洲日韩欧| 激情文学88| 青娱乐91| 少妇精品| 天天操熟妇| 日韩色女精品| 歐美性天天| 91久久18禁| 久艹免费| 入口操逼网站| 中文字幕日韩精品久久| 久久专区| 国产精品美女| 久久久性爱| 蜜臀AV一区二区三区| 国产视频第2页| 神马久久久久久久久久| 中文字幕55555| 天天综合日韩网| 天天流夜夜操| 这里只有精品视频在线| 少妇高潮特黄A片| 26uuu偷拍亚洲欧洲综合| 国产精品直播在线观看直播| 日韩欧美日韩| 青草成人免费视频一COm| 人人妻人人澡人人爽人人精品浪潮| 99精品无码| 人妻少妇久久中文| 国产精品久久久久久久久久二区三区| 天天色怡春院| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 一区,二区,三区视频| 国产夫妻性生活视频| 欧美性爱18观看| 日本黄大片在线观看视频| 婷婷伊人五月| 好色综合| 天堂v无码免费视频| 中文字幕丰满子伦无码专区在线视频最新 | 亚州成人a∨| 欧洲中文字幕| 91欧美成人色站| 天操老女人| 校园春色中文字幕AV| 精品中文一区二区| 亚洲图片偷拍欧美| chaopen97久久| 久久精品成人| 一二三区精品视频| 91网站18| 美国日韩黄片| 综合五月婷婷亚洲一区| 婷婷三区| 超碰性爱97| 亚洲一本色码中文字幕| 久久九七| 综合97久久| 国内毛片四区| 久久精品国产亚洲5555| 国产精品久久天天干| www.大香| 天天躁日日躁AAAXX| 超碰日本97美女人妻人人玩人人爱| 搡老女人老妇女老妇老熟女怎么读| 欧美大香蕉97| 激情五月天校园春色网| 久热精品在线| 91香蕉国产尤物视频| 国产a片操逼| 亚洲精品人妻吞精av| 婷婷五月成人| 久久婷婷在线观看视频| 欧美成人色| yazhououmeizongya| 国产9区| 久久社区一区二区三区| 久久久精品国产亚洲AV无码| 能看的av| A啊啊在线观看| 另类视频在线| 清纯唯美激情| 精品国产Av无码久久久亚洲| 婷婷丁香五月天亚洲天堂网| 婷婷在线播放| 欧美视频激情久久久久久| 欧美日韩国产精品久久色婷婷| 精品人妻一区二区三区日产乱码| 久久久久久电影| 99只有精品| 国模不卡一本二本三电影| 蜜桃网熟妇| 9久在线视频只有精品| 把腿张开老子CAO烂你| 亚洲老熟妇xxx| 射欧美综合| 成人区人妻精品一| 操逼无码操逼| 激情综合五月| 插老姨肥穴| 夜夜欧美 | 日韩九区| 日日干夜夜操视频h| 偷拍导航视频网站| 亚洲性爱乱操x| 色婷婷激情| 一区二区视频你懂的| 久久日韩肥臀| 天天做日日做| 精品超碰中文在线| 9ⅰ久久久天天| 亚洲一区二区三区在线激情| 探花精品视频| 亚洲精品国产av天美传媒| 91一区二匹| 日韩精品亚洲专区在线影视| 欧美综合第一| 欧美熟妇色| 欧美成人一级免费电影| 麻豆国产原创AV色哟哟| 91精品国产91熟女| 插穴性爱视频在线观看| 亚洲男人的天堂V| 久草电影网| 日韩色| 91精品人妻一区二区三区蜜桃臀| 欧美性高潮| 性爱边摸边日免费AV| 殴美综合色88| 国产精品夜夜| 超碰人人超在线观看| 无码视频一区二区| 国产精品com| 久久99久久99久久99人受| 制服丝袜第二页| 韩三级a视频在线观看 | 青青草国产亚洲精品久久| 97亚洲中文| 粉嫩在线一区二区懂色| 亚洲综合骚逼| 国产家庭乱伦表演| 99热超碰| 亚洲熟妇A V黑人| 亚洲色诱惑| 啊嗯嗯啊好大好爽| 狠狠操夜夜| 久久亚洲天天做| 婷婷超| 亚洲日韩一区电影| 亚洲中文字幕av| 日韩黄色一区二区三区| 狠操91,com| 欧美18 在线观看| 99.色网| 午夜操一操|