├── Resources └── bg_phone.png ├── README.md ├── App.config ├── Properties ├── Settings.settings ├── AssemblyInfo.cs ├── Settings.Designer.cs ├── Resources.Designer.cs └── Resources.resx ├── packages.config ├── Program.cs ├── UP主抓包神器.sln ├── Form1.resx ├── .gitignore ├── UP主抓包神器.csproj ├── Form1.cs └── Form1.Designer.cs /Resources/bg_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZYFDroid/Mobile-Webpage-Capture/HEAD/Resources/bg_phone.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Mobile-Webpage-Capture 2 | 模拟安卓手机QQ环境的网页抓包浏览器(用于对盗号骗子的网站分析) 3 | 4 | 基于CEFSharp, 需要NuGet包 5 | 6 | [在这里下载成品](https://github.com/ZYFDroid/Mobile-Webpage-Capture/releases/) -------------------------------------------------------------------------------- /App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace UP主抓包神器 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// 应用程序的主入口点。 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new Form1()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的一般信息由以下 6 | // 控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("UP主抓包神器")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("UP主抓包神器")] 13 | [assembly: AssemblyCopyright("Copyright © 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | //将 ComVisible 设置为 false 将使此程序集中的类型 18 | //对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, 19 | //请将此类型的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("7c2b8643-4cfa-4248-9a20-0c59abe78b98")] 24 | 25 | // 程序集的版本信息由下列四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, 33 | // 方法是按如下所示使用“*”: : 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.1")] 36 | [assembly: AssemblyFileVersion("1.0.0.1")] 37 | -------------------------------------------------------------------------------- /Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace UP主抓包神器.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /UP主抓包神器.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UP主抓包神器", "UP主抓包神器.csproj", "{7C2B8643-4CFA-4248-9A20-0C59ABE78B98}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|Any CPU = Release|Any CPU 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Debug|x64.ActiveCfg = Debug|x64 21 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Debug|x64.Build.0 = Debug|x64 22 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Debug|x86.ActiveCfg = Debug|x86 23 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Debug|x86.Build.0 = Debug|x86 24 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Release|x64.ActiveCfg = Release|x64 27 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Release|x64.Build.0 = Release|x64 28 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Release|x86.ActiveCfg = Release|x86 29 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98}.Release|x86.Build.0 = Release|x86 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | EndGlobal 35 | -------------------------------------------------------------------------------- /Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace UP主抓包神器.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// 一个强类型的资源类,用于查找本地化的字符串等。 17 | /// 18 | // 此类是由 StronglyTypedResourceBuilder 19 | // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 20 | // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen 21 | // (以 /str 作为命令选项),或重新生成 VS 项目。 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// 返回此类使用的缓存的 ResourceManager 实例。 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UP主抓包神器.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// 使用此强类型资源类,为所有资源查找 51 | /// 重写当前线程的 CurrentUICulture 属性。 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// 查找 System.Drawing.Bitmap 类型的本地化资源。 65 | /// 66 | internal static System.Drawing.Bitmap bg_phone { 67 | get { 68 | object obj = ResourceManager.GetObject("bg_phone", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Form1.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 25, 32 122 | 123 | 124 | 25 125 | 126 | -------------------------------------------------------------------------------- /Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\bg_phone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.suo 8 | *.user 9 | *.userosscache 10 | *.sln.docstates 11 | 12 | # User-specific files (MonoDevelop/Xamarin Studio) 13 | *.userprefs 14 | 15 | # Build results 16 | [Dd]ebug/ 17 | [Dd]ebugPublic/ 18 | [Rr]elease/ 19 | [Rr]eleases/ 20 | x64/ 21 | x86/ 22 | bld/ 23 | [Bb]in/ 24 | [Oo]bj/ 25 | [Ll]og/ 26 | 27 | # Visual Studio 2015/2017 cache/options directory 28 | .vs/ 29 | # Uncomment if you have tasks that create the project's static files in wwwroot 30 | #wwwroot/ 31 | 32 | # Visual Studio 2017 auto generated files 33 | Generated\ Files/ 34 | 35 | # MSTest test Results 36 | [Tt]est[Rr]esult*/ 37 | [Bb]uild[Ll]og.* 38 | 39 | # NUNIT 40 | *.VisualState.xml 41 | TestResult.xml 42 | 43 | # Build Results of an ATL Project 44 | [Dd]ebugPS/ 45 | [Rr]eleasePS/ 46 | dlldata.c 47 | 48 | # Benchmark Results 49 | BenchmarkDotNet.Artifacts/ 50 | 51 | # .NET Core 52 | project.lock.json 53 | project.fragment.lock.json 54 | artifacts/ 55 | **/Properties/launchSettings.json 56 | 57 | # StyleCop 58 | StyleCopReport.xml 59 | 60 | # Files built by Visual Studio 61 | *_i.c 62 | *_p.c 63 | *_i.h 64 | *.ilk 65 | *.meta 66 | *.obj 67 | *.iobj 68 | *.pch 69 | *.pdb 70 | *.ipdb 71 | *.pgc 72 | *.pgd 73 | *.rsp 74 | *.sbr 75 | *.tlb 76 | *.tli 77 | *.tlh 78 | *.tmp 79 | *.tmp_proj 80 | *.log 81 | *.vspscc 82 | *.vssscc 83 | .builds 84 | *.pidb 85 | *.svclog 86 | *.scc 87 | 88 | # Chutzpah Test files 89 | _Chutzpah* 90 | 91 | # Visual C++ cache files 92 | ipch/ 93 | *.aps 94 | *.ncb 95 | *.opendb 96 | *.opensdf 97 | *.sdf 98 | *.cachefile 99 | *.VC.db 100 | *.VC.VC.opendb 101 | 102 | # Visual Studio profiler 103 | *.psess 104 | *.vsp 105 | *.vspx 106 | *.sap 107 | 108 | # Visual Studio Trace Files 109 | *.e2e 110 | 111 | # TFS 2012 Local Workspace 112 | $tf/ 113 | 114 | # Guidance Automation Toolkit 115 | *.gpState 116 | 117 | # ReSharper is a .NET coding add-in 118 | _ReSharper*/ 119 | *.[Rr]e[Ss]harper 120 | *.DotSettings.user 121 | 122 | # JustCode is a .NET coding add-in 123 | .JustCode 124 | 125 | # TeamCity is a build add-in 126 | _TeamCity* 127 | 128 | # DotCover is a Code Coverage Tool 129 | *.dotCover 130 | 131 | # AxoCover is a Code Coverage Tool 132 | .axoCover/* 133 | !.axoCover/settings.json 134 | 135 | # Visual Studio code coverage results 136 | *.coverage 137 | *.coveragexml 138 | 139 | # NCrunch 140 | _NCrunch_* 141 | .*crunch*.local.xml 142 | nCrunchTemp_* 143 | 144 | # MightyMoose 145 | *.mm.* 146 | AutoTest.Net/ 147 | 148 | # Web workbench (sass) 149 | .sass-cache/ 150 | 151 | # Installshield output folder 152 | [Ee]xpress/ 153 | 154 | # DocProject is a documentation generator add-in 155 | DocProject/buildhelp/ 156 | DocProject/Help/*.HxT 157 | DocProject/Help/*.HxC 158 | DocProject/Help/*.hhc 159 | DocProject/Help/*.hhk 160 | DocProject/Help/*.hhp 161 | DocProject/Help/Html2 162 | DocProject/Help/html 163 | 164 | # Click-Once directory 165 | publish/ 166 | 167 | # Publish Web Output 168 | *.[Pp]ublish.xml 169 | *.azurePubxml 170 | # Note: Comment the next line if you want to checkin your web deploy settings, 171 | # but database connection strings (with potential passwords) will be unencrypted 172 | *.pubxml 173 | *.publishproj 174 | 175 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 176 | # checkin your Azure Web App publish settings, but sensitive information contained 177 | # in these scripts will be unencrypted 178 | PublishScripts/ 179 | 180 | # NuGet Packages 181 | *.nupkg 182 | # The packages folder can be ignored because of Package Restore 183 | **/[Pp]ackages/* 184 | # except build/, which is used as an MSBuild target. 185 | !**/[Pp]ackages/build/ 186 | # Uncomment if necessary however generally it will be regenerated when needed 187 | #!**/[Pp]ackages/repositories.config 188 | # NuGet v3's project.json files produces more ignorable files 189 | *.nuget.props 190 | *.nuget.targets 191 | 192 | # Microsoft Azure Build Output 193 | csx/ 194 | *.build.csdef 195 | 196 | # Microsoft Azure Emulator 197 | ecf/ 198 | rcf/ 199 | 200 | # Windows Store app package directories and files 201 | AppPackages/ 202 | BundleArtifacts/ 203 | Package.StoreAssociation.xml 204 | _pkginfo.txt 205 | *.appx 206 | 207 | # Visual Studio cache files 208 | # files ending in .cache can be ignored 209 | *.[Cc]ache 210 | # but keep track of directories ending in .cache 211 | !*.[Cc]ache/ 212 | 213 | # Others 214 | ClientBin/ 215 | ~$* 216 | *~ 217 | *.dbmdl 218 | *.dbproj.schemaview 219 | *.jfm 220 | *.pfx 221 | *.publishsettings 222 | orleans.codegen.cs 223 | 224 | # Including strong name files can present a security risk 225 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 226 | #*.snk 227 | 228 | # Since there are multiple workflows, uncomment next line to ignore bower_components 229 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 230 | #bower_components/ 231 | 232 | # RIA/Silverlight projects 233 | Generated_Code/ 234 | 235 | # Backup & report files from converting an old project file 236 | # to a newer Visual Studio version. Backup files are not needed, 237 | # because we have git ;-) 238 | _UpgradeReport_Files/ 239 | Backup*/ 240 | UpgradeLog*.XML 241 | UpgradeLog*.htm 242 | ServiceFabricBackup/ 243 | *.rptproj.bak 244 | 245 | # SQL Server files 246 | *.mdf 247 | *.ldf 248 | *.ndf 249 | 250 | # Business Intelligence projects 251 | *.rdl.data 252 | *.bim.layout 253 | *.bim_*.settings 254 | *.rptproj.rsuser 255 | 256 | # Microsoft Fakes 257 | FakesAssemblies/ 258 | 259 | # GhostDoc plugin setting file 260 | *.GhostDoc.xml 261 | 262 | # Node.js Tools for Visual Studio 263 | .ntvs_analysis.dat 264 | node_modules/ 265 | 266 | # Visual Studio 6 build log 267 | *.plg 268 | 269 | # Visual Studio 6 workspace options file 270 | *.opt 271 | 272 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 273 | *.vbw 274 | 275 | # Visual Studio LightSwitch build output 276 | **/*.HTMLClient/GeneratedArtifacts 277 | **/*.DesktopClient/GeneratedArtifacts 278 | **/*.DesktopClient/ModelManifest.xml 279 | **/*.Server/GeneratedArtifacts 280 | **/*.Server/ModelManifest.xml 281 | _Pvt_Extensions 282 | 283 | # Paket dependency manager 284 | .paket/paket.exe 285 | paket-files/ 286 | 287 | # FAKE - F# Make 288 | .fake/ 289 | 290 | # JetBrains Rider 291 | .idea/ 292 | *.sln.iml 293 | 294 | # CodeRush 295 | .cr/ 296 | 297 | # Python Tools for Visual Studio (PTVS) 298 | __pycache__/ 299 | *.pyc 300 | 301 | # Cake - Uncomment if you are using it 302 | # tools/** 303 | # !tools/packages.config 304 | 305 | # Tabs Studio 306 | *.tss 307 | 308 | # Telerik's JustMock configuration file 309 | *.jmconfig 310 | 311 | # BizTalk build output 312 | *.btp.cs 313 | *.btm.cs 314 | *.odx.cs 315 | *.xsd.cs 316 | 317 | # OpenCover UI analysis results 318 | OpenCover/ 319 | 320 | # Azure Stream Analytics local run output 321 | ASALocalRun/ 322 | 323 | # MSBuild Binary and Structured Log 324 | *.binlog 325 | 326 | # NVidia Nsight GPU debugger configuration file 327 | *.nvuser 328 | 329 | # MFractors (Xamarin productivity tool) working folder 330 | .mfractor/ 331 | -------------------------------------------------------------------------------- /UP主抓包神器.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Debug 14 | AnyCPU 15 | {7C2B8643-4CFA-4248-9A20-0C59ABE78B98} 16 | WinExe 17 | Properties 18 | UP主抓包神器 19 | UP主抓包神器 20 | v4.5.2 21 | 512 22 | true 23 | 24 | 25 | 26 | 27 | AnyCPU 28 | true 29 | full 30 | false 31 | bin\Debug\ 32 | DEBUG;TRACE 33 | prompt 34 | 4 35 | 36 | 37 | AnyCPU 38 | pdbonly 39 | true 40 | bin\Release\ 41 | TRACE 42 | prompt 43 | 4 44 | 45 | 46 | true 47 | bin\x64\Debug\ 48 | DEBUG;TRACE 49 | full 50 | x64 51 | prompt 52 | MinimumRecommendedRules.ruleset 53 | true 54 | 55 | 56 | bin\x64\Release\ 57 | TRACE 58 | true 59 | pdbonly 60 | x64 61 | prompt 62 | MinimumRecommendedRules.ruleset 63 | true 64 | 65 | 66 | true 67 | bin\x86\Debug\ 68 | DEBUG;TRACE 69 | full 70 | x86 71 | prompt 72 | MinimumRecommendedRules.ruleset 73 | true 74 | 75 | 76 | bin\x86\Release\ 77 | TRACE 78 | true 79 | pdbonly 80 | x86 81 | prompt 82 | MinimumRecommendedRules.ruleset 83 | true 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | Form 101 | 102 | 103 | Form1.cs 104 | 105 | 106 | 107 | 108 | Form1.cs 109 | 110 | 111 | ResXFileCodeGenerator 112 | Resources.Designer.cs 113 | Designer 114 | 115 | 116 | True 117 | Resources.resx 118 | True 119 | 120 | 121 | 122 | SettingsSingleFileGenerator 123 | Settings.Designer.cs 124 | 125 | 126 | True 127 | Settings.settings 128 | True 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 166 | -------------------------------------------------------------------------------- /Form1.cs: -------------------------------------------------------------------------------- 1 | using CefSharp.WinForms; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | using System.Windows.Forms; 11 | using CefSharp; 12 | using System.Security.Cryptography.X509Certificates; 13 | using CefSharp.Handler; 14 | using System.IO; 15 | 16 | namespace UP主抓包神器 17 | { 18 | public partial class Form1 : Form 19 | { 20 | 21 | public Form1() 22 | { 23 | InitializeComponent(); 24 | } 25 | 26 | private void Form1_Load(object sender, EventArgs e) 27 | { 28 | initCefBrowser(); 29 | } 30 | MyRequestHandler mRequestHandler; 31 | ChromiumWebBrowser mWebBrowser; 32 | CefSharp.IBrowser mIBrowser; 33 | CefSharp.IWebBrowser mIWebBrowser; 34 | private void initCefBrowser() { 35 | 36 | filterHosts = txtFilterHost.Text.Split(','); 37 | CefSettings settings = new CefSettings(); 38 | settings.IgnoreCertificateErrors = true; 39 | settings.AcceptLanguageList = "zh,zh-CN;q=0.9"; 40 | settings.UserAgent = "Mozilla/5.0 (Linux; Android 9; PH-1 Build/PPR1.180610.091; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/044807 Mobile Safari/537.36 V1_AND_SQ_8.0.8_1218_YYB_D QQ/8.0.8.4115 NetType/WIFI WebP/0.3.0 Pixel/1312 StatusBarHeight/151"; 41 | CefSharp.Cef.Initialize(settings); 42 | mWebBrowser = new ChromiumWebBrowser("http://cn.bing.com/"); 43 | browserPanel.Controls.Add(mWebBrowser); 44 | mWebBrowser.Dock = DockStyle.Fill; 45 | mWebBrowser.TitleChanged += MWebBrowser_TitleChanged; 46 | mWebBrowser.LoadingStateChanged += MIBrowser_LoadingStateChanged; 47 | mWebBrowser.AddressChanged += MWebBrowser_AddressChanged; 48 | mRequestHandler = new MyRequestHandler(this); 49 | mWebBrowser.RequestHandler = mRequestHandler; 50 | mRequestHandler.OnCaptureResult += MRequestHandler_OnCaptureResult; 51 | mWebBrowser.FrameLoadStart += MWebBrowser_FrameLoadStart; 52 | } 53 | 54 | private void MRequestHandler_OnCaptureResult(object sender, CaputreEventArgs e) 55 | { 56 | Console.WriteLine(e.domain); 57 | if (!chkUsesCapture.Checked) { return; } 58 | foreach (string host in filterHosts) { 59 | if (e.domain.Trim().EndsWith(host.Trim())) { 60 | return; 61 | } 62 | } 63 | listPost.Items.Add(e.content); 64 | } 65 | 66 | private void MWebBrowser_FrameLoadStart(object sender, FrameLoadStartEventArgs e) 67 | { 68 | try 69 | { 70 | mIBrowser.MainFrame.EvaluateScriptAsync("Object.defineProperty(this,'navigator',{value :{platform :\"Android\"}});"); 71 | } 72 | catch { } 73 | } 74 | 75 | private void MWebBrowser_AddressChanged(object sender, AddressChangedEventArgs e) 76 | { 77 | try 78 | { 79 | mIBrowser.MainFrame.EvaluateScriptAsync("Object.defineProperty(this,'navigator',{value :{platform :\"Android\"}});"); 80 | } 81 | catch { } 82 | if (null == addressChangeMethod) { addressChangeMethod = new OnTitleChanged(onAddressChanged); } 83 | lblTitle.Invoke(addressChangeMethod, e.Address); 84 | } 85 | 86 | private void MIBrowser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e) 87 | { 88 | if (null == mIBrowser) 89 | { 90 | mIBrowser = e.Browser; 91 | } 92 | mIBrowser.SetZoomLevel(0.1); 93 | if (null == loadStateChangeMethod) { loadStateChangeMethod = new OnLoadStateChanged(onLoadStateChanged); } 94 | progressBar.Invoke(loadStateChangeMethod, e.IsLoading); 95 | 96 | } 97 | private void MWebBrowser_TitleChanged(object sender, CefSharp.TitleChangedEventArgs e) 98 | { 99 | if (null == titleChangeMethod) { titleChangeMethod = new OnTitleChanged(onTitleChanged); } 100 | lblTitle.Invoke(titleChangeMethod, e.Title); 101 | } 102 | 103 | delegate void OnTitleChanged(string title); 104 | OnTitleChanged titleChangeMethod; 105 | void onTitleChanged(string title) { 106 | lblTitle.Text = title; 107 | } 108 | OnTitleChanged addressChangeMethod; 109 | void onAddressChanged(string address) { 110 | txtCurrentAddress.Text = address; 111 | if (chkUsesCapture.Checked) { 112 | txtAddressRecord.AppendText(address); 113 | txtAddressRecord.AppendText("\r\n"); 114 | } 115 | } 116 | delegate void OnLoadStateChanged(bool loading); 117 | OnLoadStateChanged loadStateChangeMethod; 118 | void onLoadStateChanged(bool loading) 119 | { 120 | progressBar.Style = loading ? ProgressBarStyle.Marquee : ProgressBarStyle.Blocks; 121 | btnBack.Enabled = mIBrowser.CanGoBack; 122 | btnForward.Enabled = mIBrowser.CanGoForward; 123 | btnRefresh.Enabled = !mIBrowser.IsLoading; 124 | btnStop.Enabled = mIBrowser.IsLoading; 125 | } 126 | #region UI Function 127 | 128 | private void timerClock_Tick(object sender, EventArgs e) 129 | { 130 | lblClock.Text = DateTime.Now.ToString("HH:mm:ss"); 131 | } 132 | 133 | private void btnClear_Click(object sender, EventArgs e) 134 | { 135 | mWebBrowser.Visible = !mWebBrowser.Visible; 136 | } 137 | 138 | private void btnGoto_Click(object sender, EventArgs e) 139 | { 140 | mWebBrowser.Load(txtUrl.Text); 141 | } 142 | 143 | private void btnBack_Click(object sender, EventArgs e) 144 | { 145 | mIBrowser.GoBack(); 146 | } 147 | 148 | private void btnForward_Click(object sender, EventArgs e) 149 | { 150 | mIBrowser.GoForward(); 151 | } 152 | 153 | private void btnRefresh_Click(object sender, EventArgs e) 154 | { 155 | mIBrowser.Reload(); 156 | } 157 | 158 | private void btnStop_Click(object sender, EventArgs e) 159 | { 160 | mIBrowser.StopLoad(); 161 | } 162 | 163 | private void btnDevTools_Click(object sender, EventArgs e) 164 | { 165 | mIBrowser.ShowDevTools(); 166 | } 167 | 168 | private void txtUrl_TextChanged(object sender, EventArgs e) 169 | { 170 | if (txtUrl.Text.Contains("\n")) { 171 | txtUrl.Text = txtUrl.Text.Replace("\n", "").Replace("\r", ""); 172 | btnGoto_Click(sender, e); 173 | } 174 | } 175 | #endregion 176 | class MyLoadHandler : ILoadHandler 177 | { 178 | void ILoadHandler.OnFrameLoadEnd(IWebBrowser chromiumWebBrowser, FrameLoadEndEventArgs frameLoadEndArgs) 179 | { 180 | try 181 | { 182 | chromiumWebBrowser.GetMainFrame().Browser.MainFrame.EvaluateScriptAsync("Object.defineProperty(this,'navigator',{value :{platform :\"Android\"}});"); 183 | } 184 | catch { } 185 | } 186 | 187 | void ILoadHandler.OnFrameLoadStart(IWebBrowser chromiumWebBrowser, FrameLoadStartEventArgs frameLoadStartArgs) 188 | { 189 | try 190 | { 191 | chromiumWebBrowser.GetMainFrame().Browser.MainFrame.EvaluateScriptAsync("Object.defineProperty(this,'navigator',{value :{platform :\"Android\"}});"); 192 | } 193 | catch { } 194 | } 195 | 196 | void ILoadHandler.OnLoadError(IWebBrowser chromiumWebBrowser, LoadErrorEventArgs loadErrorArgs) 197 | { 198 | try 199 | { 200 | chromiumWebBrowser.GetMainFrame().Browser.MainFrame.EvaluateScriptAsync("Object.defineProperty(this,'navigator',{value :{platform :\"Android\"}});"); 201 | } 202 | catch { } 203 | } 204 | 205 | void ILoadHandler.OnLoadingStateChange(IWebBrowser chromiumWebBrowser, LoadingStateChangedEventArgs loadingStateChangedArgs) 206 | { 207 | try 208 | { 209 | chromiumWebBrowser.GetMainFrame().Browser.MainFrame.EvaluateScriptAsync("Object.defineProperty(this,'navigator',{value :{platform :\"Android\"}});"); 210 | } 211 | catch { } 212 | } 213 | } 214 | 215 | public class MyRequestHandler : DefaultRequestHandler 216 | { 217 | public event EventHandler OnCaptureResult; 218 | Control mInvoker; 219 | public MyRequestHandler(Control invoker) { 220 | mInvoker = invoker; 221 | } 222 | 223 | public override CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback) 224 | { 225 | processRequest(request, null); 226 | return base.OnBeforeResourceLoad(browserControl, browser, frame, request, callback); 227 | } 228 | 229 | public void processRequest(IRequest request,IResponse response) { 230 | 231 | if (request.Method == "POST") 232 | { 233 | string method = "POST"; 234 | string url = request.Url; 235 | StringBuilder postdata = new StringBuilder(); 236 | 237 | foreach (IPostDataElement elm in request.PostData.Elements) { 238 | if (elm.Type != PostDataElementType.File) { 239 | if (postdata.Length > 0) { postdata.AppendLine(); } 240 | postdata.Append(elm.GetBody()); 241 | } 242 | } 243 | 244 | StringBuilder sb = new StringBuilder(); 245 | sb.Append("提交方法:\"").Append(method).Append("\" "); 246 | sb.Append("\r\n提交URL:\"").Append(url).Append("\" "); 247 | sb.Append("\r\n提交内容:"+escapeText(postdata.ToString())); 248 | 249 | CaputreEventArgs captures = new CaputreEventArgs(); 250 | captures.content = sb.ToString(); 251 | captures.domain = getDomain(request.Url); 252 | 253 | if (null != OnCaptureResult) { 254 | mInvoker.Invoke(OnCaptureResult, request, captures); 255 | } 256 | } 257 | else if (request.Method == "GET" && request.Url.Contains('?') && request.Url.Contains('=')) 258 | { 259 | string method = "GET"; 260 | string url = request.Url; 261 | 262 | StringBuilder sb = new StringBuilder(); 263 | sb.Append("提交方法:\"").Append(method) .Append("\" "); 264 | sb.Append("\r\n提交URL:\"").Append(url).Append("\" "); 265 | sb.Append("\r\n提交内容:\"\""); 266 | 267 | CaputreEventArgs captures = new CaputreEventArgs(); 268 | captures.domain = getDomain(request.Url); 269 | captures.content = sb.ToString(); 270 | if (null != OnCaptureResult) 271 | { 272 | mInvoker.Invoke(OnCaptureResult, request, captures); 273 | } 274 | } 275 | } 276 | private string escapeText(string src) 277 | { 278 | StringBuilder sb = new StringBuilder(); 279 | sb.Append("\""); 280 | foreach (char chr in src.ToCharArray()) 281 | { 282 | if ("\\\"".Contains(chr)) 283 | { 284 | sb.Append('\\'); 285 | } 286 | if (chr == '\r') { sb.Append("\\r"); } 287 | else if (chr == '\n') 288 | { sb.Append("\\n"); } 289 | else 290 | { 291 | sb.Append(chr); 292 | } 293 | } 294 | return sb.Append("\"").ToString(); 295 | } 296 | private string getDomain(String url) { 297 | if (url.Contains("://")) { 298 | string[] host1 = url.Split(new string[] { "://" }, StringSplitOptions.RemoveEmptyEntries); 299 | if (host1.Length > 1) { 300 | string[] domain1 = host1[1].Split('/'); 301 | return domain1[0]; 302 | } 303 | } 304 | return ""; 305 | } 306 | } 307 | 308 | public class CaputreEventArgs : EventArgs { 309 | public string domain; 310 | public string content; 311 | } 312 | 313 | string[] filterHosts; 314 | private void textBox1_TextChanged(object sender, EventArgs e) 315 | { 316 | filterHosts = txtFilterHost.Text.Split(','); 317 | } 318 | 319 | private void btnClearPost_Click(object sender, EventArgs e) 320 | { 321 | listPost.Items.Clear(); 322 | } 323 | 324 | private void listPost_SelectedIndexChanged(object sender, EventArgs e) 325 | { 326 | txtPostDetail.Text = listPost.SelectedItem?.ToString(); 327 | } 328 | 329 | private void button1_Click(object sender, EventArgs e) 330 | { 331 | if (File.Exists("截图扫码.exe")) 332 | { 333 | System.Diagnostics.Process.Start("截图扫码.exe"); 334 | } 335 | else { 336 | MessageBox.Show("未安装插件"); 337 | } 338 | } 339 | } 340 | } 341 | -------------------------------------------------------------------------------- /Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace UP主抓包神器 2 | { 3 | partial class Form1 4 | { 5 | /// 6 | /// 必需的设计器变量。 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 清理所有正在使用的资源。 12 | /// 13 | /// 如果应释放托管资源,为 true;否则为 false。 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows 窗体设计器生成的代码 24 | 25 | /// 26 | /// 设计器支持所需的方法 - 不要修改 27 | /// 使用代码编辑器修改此方法的内容。 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | this.mainPanel = new System.Windows.Forms.Panel(); 33 | this.btnClear = new System.Windows.Forms.Label(); 34 | this.lblClock = new System.Windows.Forms.Label(); 35 | this.lblTitle = new System.Windows.Forms.Label(); 36 | this.browserPanel = new System.Windows.Forms.Panel(); 37 | this.timerClock = new System.Windows.Forms.Timer(this.components); 38 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 39 | this.btnDevTools = new System.Windows.Forms.Button(); 40 | this.btnStop = new System.Windows.Forms.Button(); 41 | this.btnRefresh = new System.Windows.Forms.Button(); 42 | this.btnForward = new System.Windows.Forms.Button(); 43 | this.btnBack = new System.Windows.Forms.Button(); 44 | this.btnGoto = new System.Windows.Forms.Button(); 45 | this.txtUrl = new System.Windows.Forms.TextBox(); 46 | this.groupBox2 = new System.Windows.Forms.GroupBox(); 47 | this.progressBar = new System.Windows.Forms.ProgressBar(); 48 | this.label2 = new System.Windows.Forms.Label(); 49 | this.label1 = new System.Windows.Forms.Label(); 50 | this.txtCurrentAddress = new System.Windows.Forms.TextBox(); 51 | this.groupBox3 = new System.Windows.Forms.GroupBox(); 52 | this.groupBox5 = new System.Windows.Forms.GroupBox(); 53 | this.label5 = new System.Windows.Forms.Label(); 54 | this.txtFilterHost = new System.Windows.Forms.TextBox(); 55 | this.btnClearPost = new System.Windows.Forms.Button(); 56 | this.txtPostDetail = new System.Windows.Forms.TextBox(); 57 | this.label4 = new System.Windows.Forms.Label(); 58 | this.label3 = new System.Windows.Forms.Label(); 59 | this.listPost = new System.Windows.Forms.ListBox(); 60 | this.chkUsesCapture = new System.Windows.Forms.CheckBox(); 61 | this.groupBox4 = new System.Windows.Forms.GroupBox(); 62 | this.txtAddressRecord = new System.Windows.Forms.TextBox(); 63 | this.mainPanel.SuspendLayout(); 64 | this.groupBox1.SuspendLayout(); 65 | this.groupBox2.SuspendLayout(); 66 | this.groupBox3.SuspendLayout(); 67 | this.groupBox5.SuspendLayout(); 68 | this.groupBox4.SuspendLayout(); 69 | this.SuspendLayout(); 70 | // 71 | // mainPanel 72 | // 73 | this.mainPanel.BackgroundImage = global::UP主抓包神器.Properties.Resources.bg_phone; 74 | this.mainPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 75 | this.mainPanel.Controls.Add(this.btnClear); 76 | this.mainPanel.Controls.Add(this.lblClock); 77 | this.mainPanel.Controls.Add(this.lblTitle); 78 | this.mainPanel.Controls.Add(this.browserPanel); 79 | this.mainPanel.Location = new System.Drawing.Point(13, 13); 80 | this.mainPanel.Name = "mainPanel"; 81 | this.mainPanel.Size = new System.Drawing.Size(383, 719); 82 | this.mainPanel.TabIndex = 0; 83 | // 84 | // btnClear 85 | // 86 | this.btnClear.BackColor = System.Drawing.Color.Transparent; 87 | this.btnClear.Location = new System.Drawing.Point(17, 60); 88 | this.btnClear.Name = "btnClear"; 89 | this.btnClear.Size = new System.Drawing.Size(37, 23); 90 | this.btnClear.TabIndex = 3; 91 | this.btnClear.Text = " "; 92 | this.btnClear.Click += new System.EventHandler(this.btnClear_Click); 93 | // 94 | // lblClock 95 | // 96 | this.lblClock.BackColor = System.Drawing.Color.Transparent; 97 | this.lblClock.Font = new System.Drawing.Font("黑体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 98 | this.lblClock.ForeColor = System.Drawing.Color.White; 99 | this.lblClock.Location = new System.Drawing.Point(27, 24); 100 | this.lblClock.Name = "lblClock"; 101 | this.lblClock.Size = new System.Drawing.Size(119, 17); 102 | this.lblClock.TabIndex = 2; 103 | this.lblClock.Text = "00:00"; 104 | this.lblClock.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; 105 | // 106 | // lblTitle 107 | // 108 | this.lblTitle.BackColor = System.Drawing.Color.Transparent; 109 | this.lblTitle.Font = new System.Drawing.Font("黑体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 110 | this.lblTitle.ForeColor = System.Drawing.Color.White; 111 | this.lblTitle.Location = new System.Drawing.Point(51, 59); 112 | this.lblTitle.Name = "lblTitle"; 113 | this.lblTitle.Size = new System.Drawing.Size(280, 25); 114 | this.lblTitle.TabIndex = 1; 115 | this.lblTitle.Text = "载入中..."; 116 | this.lblTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 117 | // 118 | // browserPanel 119 | // 120 | this.browserPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 121 | | System.Windows.Forms.AnchorStyles.Left) 122 | | System.Windows.Forms.AnchorStyles.Right))); 123 | this.browserPanel.BackColor = System.Drawing.Color.White; 124 | this.browserPanel.Location = new System.Drawing.Point(13, 91); 125 | this.browserPanel.Name = "browserPanel"; 126 | this.browserPanel.Size = new System.Drawing.Size(355, 544); 127 | this.browserPanel.TabIndex = 0; 128 | // 129 | // timerClock 130 | // 131 | this.timerClock.Enabled = true; 132 | this.timerClock.Interval = 333; 133 | this.timerClock.Tick += new System.EventHandler(this.timerClock_Tick); 134 | // 135 | // groupBox1 136 | // 137 | this.groupBox1.Controls.Add(this.btnDevTools); 138 | this.groupBox1.Controls.Add(this.btnStop); 139 | this.groupBox1.Controls.Add(this.btnRefresh); 140 | this.groupBox1.Controls.Add(this.btnForward); 141 | this.groupBox1.Controls.Add(this.btnBack); 142 | this.groupBox1.Controls.Add(this.btnGoto); 143 | this.groupBox1.Controls.Add(this.txtUrl); 144 | this.groupBox1.Location = new System.Drawing.Point(403, 13); 145 | this.groupBox1.Name = "groupBox1"; 146 | this.groupBox1.Size = new System.Drawing.Size(411, 84); 147 | this.groupBox1.TabIndex = 1; 148 | this.groupBox1.TabStop = false; 149 | this.groupBox1.Text = "控制"; 150 | // 151 | // btnDevTools 152 | // 153 | this.btnDevTools.Location = new System.Drawing.Point(290, 47); 154 | this.btnDevTools.Name = "btnDevTools"; 155 | this.btnDevTools.Size = new System.Drawing.Size(115, 24); 156 | this.btnDevTools.TabIndex = 2; 157 | this.btnDevTools.Text = "F12原生抓包"; 158 | this.btnDevTools.UseVisualStyleBackColor = true; 159 | this.btnDevTools.Click += new System.EventHandler(this.btnDevTools_Click); 160 | // 161 | // btnStop 162 | // 163 | this.btnStop.Location = new System.Drawing.Point(218, 47); 164 | this.btnStop.Name = "btnStop"; 165 | this.btnStop.Size = new System.Drawing.Size(66, 24); 166 | this.btnStop.TabIndex = 2; 167 | this.btnStop.Text = "停止"; 168 | this.btnStop.UseVisualStyleBackColor = true; 169 | this.btnStop.Click += new System.EventHandler(this.btnStop_Click); 170 | // 171 | // btnRefresh 172 | // 173 | this.btnRefresh.Location = new System.Drawing.Point(150, 47); 174 | this.btnRefresh.Name = "btnRefresh"; 175 | this.btnRefresh.Size = new System.Drawing.Size(62, 24); 176 | this.btnRefresh.TabIndex = 2; 177 | this.btnRefresh.Text = "刷新"; 178 | this.btnRefresh.UseVisualStyleBackColor = true; 179 | this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); 180 | // 181 | // btnForward 182 | // 183 | this.btnForward.Location = new System.Drawing.Point(80, 47); 184 | this.btnForward.Name = "btnForward"; 185 | this.btnForward.Size = new System.Drawing.Size(64, 24); 186 | this.btnForward.TabIndex = 2; 187 | this.btnForward.Text = "前进"; 188 | this.btnForward.UseVisualStyleBackColor = true; 189 | this.btnForward.Click += new System.EventHandler(this.btnForward_Click); 190 | // 191 | // btnBack 192 | // 193 | this.btnBack.Location = new System.Drawing.Point(11, 47); 194 | this.btnBack.Name = "btnBack"; 195 | this.btnBack.Size = new System.Drawing.Size(63, 24); 196 | this.btnBack.TabIndex = 2; 197 | this.btnBack.Text = "后退"; 198 | this.btnBack.UseVisualStyleBackColor = true; 199 | this.btnBack.Click += new System.EventHandler(this.btnBack_Click); 200 | // 201 | // btnGoto 202 | // 203 | this.btnGoto.Location = new System.Drawing.Point(351, 19); 204 | this.btnGoto.Name = "btnGoto"; 205 | this.btnGoto.Size = new System.Drawing.Size(54, 22); 206 | this.btnGoto.TabIndex = 1; 207 | this.btnGoto.Text = "转到"; 208 | this.btnGoto.UseVisualStyleBackColor = true; 209 | this.btnGoto.Click += new System.EventHandler(this.btnGoto_Click); 210 | // 211 | // txtUrl 212 | // 213 | this.txtUrl.Location = new System.Drawing.Point(11, 19); 214 | this.txtUrl.Multiline = true; 215 | this.txtUrl.Name = "txtUrl"; 216 | this.txtUrl.Size = new System.Drawing.Size(334, 22); 217 | this.txtUrl.TabIndex = 0; 218 | this.txtUrl.Text = "http://"; 219 | this.txtUrl.TextChanged += new System.EventHandler(this.txtUrl_TextChanged); 220 | // 221 | // groupBox2 222 | // 223 | this.groupBox2.Controls.Add(this.progressBar); 224 | this.groupBox2.Controls.Add(this.label2); 225 | this.groupBox2.Controls.Add(this.label1); 226 | this.groupBox2.Controls.Add(this.txtCurrentAddress); 227 | this.groupBox2.Location = new System.Drawing.Point(403, 103); 228 | this.groupBox2.Name = "groupBox2"; 229 | this.groupBox2.Size = new System.Drawing.Size(411, 96); 230 | this.groupBox2.TabIndex = 2; 231 | this.groupBox2.TabStop = false; 232 | this.groupBox2.Text = "信息"; 233 | // 234 | // progressBar 235 | // 236 | this.progressBar.Location = new System.Drawing.Point(53, 76); 237 | this.progressBar.Name = "progressBar"; 238 | this.progressBar.Size = new System.Drawing.Size(345, 13); 239 | this.progressBar.TabIndex = 2; 240 | // 241 | // label2 242 | // 243 | this.label2.AutoSize = true; 244 | this.label2.Location = new System.Drawing.Point(12, 77); 245 | this.label2.Name = "label2"; 246 | this.label2.Size = new System.Drawing.Size(35, 12); 247 | this.label2.TabIndex = 0; 248 | this.label2.Text = "进度:"; 249 | // 250 | // label1 251 | // 252 | this.label1.AutoSize = true; 253 | this.label1.Location = new System.Drawing.Point(11, 19); 254 | this.label1.Name = "label1"; 255 | this.label1.Size = new System.Drawing.Size(35, 12); 256 | this.label1.TabIndex = 0; 257 | this.label1.Text = "地址:"; 258 | // 259 | // txtCurrentAddress 260 | // 261 | this.txtCurrentAddress.Location = new System.Drawing.Point(52, 16); 262 | this.txtCurrentAddress.Multiline = true; 263 | this.txtCurrentAddress.Name = "txtCurrentAddress"; 264 | this.txtCurrentAddress.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; 265 | this.txtCurrentAddress.Size = new System.Drawing.Size(346, 54); 266 | this.txtCurrentAddress.TabIndex = 0; 267 | // 268 | // groupBox3 269 | // 270 | this.groupBox3.Controls.Add(this.groupBox5); 271 | this.groupBox3.Controls.Add(this.chkUsesCapture); 272 | this.groupBox3.Controls.Add(this.groupBox4); 273 | this.groupBox3.Location = new System.Drawing.Point(403, 201); 274 | this.groupBox3.Name = "groupBox3"; 275 | this.groupBox3.Size = new System.Drawing.Size(411, 485); 276 | this.groupBox3.TabIndex = 3; 277 | this.groupBox3.TabStop = false; 278 | this.groupBox3.Text = "  简易抓包"; 279 | // 280 | // groupBox5 281 | // 282 | this.groupBox5.Controls.Add(this.label5); 283 | this.groupBox5.Controls.Add(this.txtFilterHost); 284 | this.groupBox5.Controls.Add(this.btnClearPost); 285 | this.groupBox5.Controls.Add(this.txtPostDetail); 286 | this.groupBox5.Controls.Add(this.label4); 287 | this.groupBox5.Controls.Add(this.label3); 288 | this.groupBox5.Controls.Add(this.listPost); 289 | this.groupBox5.Location = new System.Drawing.Point(6, 177); 290 | this.groupBox5.Name = "groupBox5"; 291 | this.groupBox5.Size = new System.Drawing.Size(399, 302); 292 | this.groupBox5.TabIndex = 2; 293 | this.groupBox5.TabStop = false; 294 | this.groupBox5.Text = "请求抓包"; 295 | // 296 | // label5 297 | // 298 | this.label5.AutoSize = true; 299 | this.label5.Location = new System.Drawing.Point(12, 37); 300 | this.label5.Name = "label5"; 301 | this.label5.Size = new System.Drawing.Size(143, 12); 302 | this.label5.TabIndex = 5; 303 | this.label5.Text = "排除域名(英文逗号分割):"; 304 | // 305 | // txtFilterHost 306 | // 307 | this.txtFilterHost.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; 308 | this.txtFilterHost.Location = new System.Drawing.Point(161, 32); 309 | this.txtFilterHost.Multiline = true; 310 | this.txtFilterHost.Name = "txtFilterHost"; 311 | this.txtFilterHost.Size = new System.Drawing.Size(230, 23); 312 | this.txtFilterHost.TabIndex = 4; 313 | this.txtFilterHost.Text = "qq.com,cnzz.com"; 314 | this.txtFilterHost.TextChanged += new System.EventHandler(this.textBox1_TextChanged); 315 | // 316 | // btnClearPost 317 | // 318 | this.btnClearPost.FlatStyle = System.Windows.Forms.FlatStyle.Popup; 319 | this.btnClearPost.Location = new System.Drawing.Point(312, 182); 320 | this.btnClearPost.Margin = new System.Windows.Forms.Padding(1); 321 | this.btnClearPost.Name = "btnClearPost"; 322 | this.btnClearPost.Size = new System.Drawing.Size(79, 23); 323 | this.btnClearPost.TabIndex = 3; 324 | this.btnClearPost.Text = "清空列表"; 325 | this.btnClearPost.UseVisualStyleBackColor = true; 326 | this.btnClearPost.Click += new System.EventHandler(this.btnClearPost_Click); 327 | // 328 | // txtPostDetail 329 | // 330 | this.txtPostDetail.Location = new System.Drawing.Point(8, 209); 331 | this.txtPostDetail.Multiline = true; 332 | this.txtPostDetail.Name = "txtPostDetail"; 333 | this.txtPostDetail.ScrollBars = System.Windows.Forms.ScrollBars.Both; 334 | this.txtPostDetail.Size = new System.Drawing.Size(383, 87); 335 | this.txtPostDetail.TabIndex = 2; 336 | this.txtPostDetail.WordWrap = false; 337 | // 338 | // label4 339 | // 340 | this.label4.AutoSize = true; 341 | this.label4.Location = new System.Drawing.Point(8, 189); 342 | this.label4.Name = "label4"; 343 | this.label4.Size = new System.Drawing.Size(185, 12); 344 | this.label4.TabIndex = 1; 345 | this.label4.Text = "抓包内容/BomberStudio游戏目标:"; 346 | // 347 | // label3 348 | // 349 | this.label3.AutoSize = true; 350 | this.label3.Location = new System.Drawing.Point(8, 16); 351 | this.label3.Name = "label3"; 352 | this.label3.Size = new System.Drawing.Size(59, 12); 353 | this.label3.TabIndex = 1; 354 | this.label3.Text = "请求列表:"; 355 | // 356 | // listPost 357 | // 358 | this.listPost.FormattingEnabled = true; 359 | this.listPost.ItemHeight = 12; 360 | this.listPost.Location = new System.Drawing.Point(8, 54); 361 | this.listPost.Name = "listPost"; 362 | this.listPost.Size = new System.Drawing.Size(383, 124); 363 | this.listPost.TabIndex = 0; 364 | this.listPost.SelectedIndexChanged += new System.EventHandler(this.listPost_SelectedIndexChanged); 365 | // 366 | // chkUsesCapture 367 | // 368 | this.chkUsesCapture.AutoSize = true; 369 | this.chkUsesCapture.Location = new System.Drawing.Point(13, 0); 370 | this.chkUsesCapture.Name = "chkUsesCapture"; 371 | this.chkUsesCapture.Size = new System.Drawing.Size(15, 14); 372 | this.chkUsesCapture.TabIndex = 1; 373 | this.chkUsesCapture.UseVisualStyleBackColor = true; 374 | // 375 | // groupBox4 376 | // 377 | this.groupBox4.Controls.Add(this.txtAddressRecord); 378 | this.groupBox4.Location = new System.Drawing.Point(6, 18); 379 | this.groupBox4.Name = "groupBox4"; 380 | this.groupBox4.Size = new System.Drawing.Size(399, 152); 381 | this.groupBox4.TabIndex = 0; 382 | this.groupBox4.TabStop = false; 383 | this.groupBox4.Text = "地址记录:"; 384 | // 385 | // txtAddressRecord 386 | // 387 | this.txtAddressRecord.BackColor = System.Drawing.Color.Black; 388 | this.txtAddressRecord.BorderStyle = System.Windows.Forms.BorderStyle.None; 389 | this.txtAddressRecord.ForeColor = System.Drawing.Color.Lime; 390 | this.txtAddressRecord.Location = new System.Drawing.Point(8, 16); 391 | this.txtAddressRecord.Multiline = true; 392 | this.txtAddressRecord.Name = "txtAddressRecord"; 393 | this.txtAddressRecord.ScrollBars = System.Windows.Forms.ScrollBars.Both; 394 | this.txtAddressRecord.Size = new System.Drawing.Size(384, 126); 395 | this.txtAddressRecord.TabIndex = 0; 396 | this.txtAddressRecord.WordWrap = false; 397 | // 398 | // Form1 399 | // 400 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 401 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 402 | this.ClientSize = new System.Drawing.Size(822, 692); 403 | this.Controls.Add(this.groupBox3); 404 | this.Controls.Add(this.groupBox2); 405 | this.Controls.Add(this.groupBox1); 406 | this.Controls.Add(this.mainPanel); 407 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 408 | this.MaximizeBox = false; 409 | this.Name = "Form1"; 410 | this.Text = "抓包神器"; 411 | this.Load += new System.EventHandler(this.Form1_Load); 412 | this.mainPanel.ResumeLayout(false); 413 | this.groupBox1.ResumeLayout(false); 414 | this.groupBox1.PerformLayout(); 415 | this.groupBox2.ResumeLayout(false); 416 | this.groupBox2.PerformLayout(); 417 | this.groupBox3.ResumeLayout(false); 418 | this.groupBox3.PerformLayout(); 419 | this.groupBox5.ResumeLayout(false); 420 | this.groupBox5.PerformLayout(); 421 | this.groupBox4.ResumeLayout(false); 422 | this.groupBox4.PerformLayout(); 423 | this.ResumeLayout(false); 424 | 425 | } 426 | 427 | #endregion 428 | 429 | private System.Windows.Forms.Panel mainPanel; 430 | private System.Windows.Forms.Panel browserPanel; 431 | private System.Windows.Forms.Label lblTitle; 432 | private System.Windows.Forms.Label lblClock; 433 | private System.Windows.Forms.Timer timerClock; 434 | private System.Windows.Forms.GroupBox groupBox1; 435 | private System.Windows.Forms.Button btnDevTools; 436 | private System.Windows.Forms.Button btnStop; 437 | private System.Windows.Forms.Button btnRefresh; 438 | private System.Windows.Forms.Button btnForward; 439 | private System.Windows.Forms.Button btnBack; 440 | private System.Windows.Forms.Button btnGoto; 441 | private System.Windows.Forms.TextBox txtUrl; 442 | private System.Windows.Forms.GroupBox groupBox2; 443 | private System.Windows.Forms.Label label1; 444 | private System.Windows.Forms.TextBox txtCurrentAddress; 445 | private System.Windows.Forms.ProgressBar progressBar; 446 | private System.Windows.Forms.Label label2; 447 | private System.Windows.Forms.Label btnClear; 448 | private System.Windows.Forms.GroupBox groupBox3; 449 | private System.Windows.Forms.GroupBox groupBox5; 450 | private System.Windows.Forms.CheckBox chkUsesCapture; 451 | private System.Windows.Forms.GroupBox groupBox4; 452 | private System.Windows.Forms.TextBox txtAddressRecord; 453 | private System.Windows.Forms.TextBox txtPostDetail; 454 | private System.Windows.Forms.Label label4; 455 | private System.Windows.Forms.Label label3; 456 | private System.Windows.Forms.ListBox listPost; 457 | private System.Windows.Forms.Button btnClearPost; 458 | private System.Windows.Forms.Label label5; 459 | private System.Windows.Forms.TextBox txtFilterHost; 460 | } 461 | } 462 | 463 | --------------------------------------------------------------------------------