From 74efb5452fbe48fe5f409b800a99aa39b2d98db3 Mon Sep 17 00:00:00 2001 From: qiuwei Date: Fri, 9 Dec 2022 10:40:39 +0800 Subject: [PATCH] modify ui --- ArpGhostGateway.sln => ARPSpoofing.sln | 10 ++--- .../ARPSpoofing.csproj | 0 {ArpGhostGateway => ARPSpoofing}/App.xaml | 4 +- {ArpGhostGateway => ARPSpoofing}/App.xaml.cs | 2 +- .../AssemblyInfo.cs | 0 .../Converts/BoolVisibilityConveter.cs | 2 +- .../Converts/BoolVisibilityReConveter.cs | 2 +- {ArpGhostGateway => ARPSpoofing}/IPObject.cs | 2 +- .../MainWindow.xaml | 6 +-- .../MainWindow.xaml.cs | 2 +- .../MainWindowViewModel.cs | 39 ++++++++++++------ Images/main.png | Bin 0 -> 34099 bytes README.md | 7 +++- 13 files changed, 47 insertions(+), 29 deletions(-) rename ArpGhostGateway.sln => ARPSpoofing.sln (63%) rename ArpGhostGateway/ArpGhostGateway.csproj => ARPSpoofing/ARPSpoofing.csproj (100%) rename {ArpGhostGateway => ARPSpoofing}/App.xaml (72%) rename {ArpGhostGateway => ARPSpoofing}/App.xaml.cs (92%) rename {ArpGhostGateway => ARPSpoofing}/AssemblyInfo.cs (100%) rename {ArpGhostGateway => ARPSpoofing}/Converts/BoolVisibilityConveter.cs (94%) rename {ArpGhostGateway => ARPSpoofing}/Converts/BoolVisibilityReConveter.cs (94%) rename {ArpGhostGateway => ARPSpoofing}/IPObject.cs (98%) rename {ArpGhostGateway => ARPSpoofing}/MainWindow.xaml (98%) rename {ArpGhostGateway => ARPSpoofing}/MainWindow.xaml.cs (96%) rename {ArpGhostGateway => ARPSpoofing}/MainWindowViewModel.cs (94%) create mode 100644 Images/main.png diff --git a/ArpGhostGateway.sln b/ARPSpoofing.sln similarity index 63% rename from ArpGhostGateway.sln rename to ARPSpoofing.sln index d991b44..308e36f 100644 --- a/ArpGhostGateway.sln +++ b/ARPSpoofing.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.3.32811.315 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArpGhostGateway", "ArpGhostGateway\ArpGhostGateway.csproj", "{E1AAF889-8219-4C16-A78A-08457884B0DF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ARPSpoofing", "ARPSpoofing\ARPSpoofing.csproj", "{50EB6363-FCD4-461E-9D22-58EC53FBCEA2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E1AAF889-8219-4C16-A78A-08457884B0DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E1AAF889-8219-4C16-A78A-08457884B0DF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E1AAF889-8219-4C16-A78A-08457884B0DF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E1AAF889-8219-4C16-A78A-08457884B0DF}.Release|Any CPU.Build.0 = Release|Any CPU + {50EB6363-FCD4-461E-9D22-58EC53FBCEA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50EB6363-FCD4-461E-9D22-58EC53FBCEA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50EB6363-FCD4-461E-9D22-58EC53FBCEA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50EB6363-FCD4-461E-9D22-58EC53FBCEA2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ArpGhostGateway/ArpGhostGateway.csproj b/ARPSpoofing/ARPSpoofing.csproj similarity index 100% rename from ArpGhostGateway/ArpGhostGateway.csproj rename to ARPSpoofing/ARPSpoofing.csproj diff --git a/ArpGhostGateway/App.xaml b/ARPSpoofing/App.xaml similarity index 72% rename from ArpGhostGateway/App.xaml rename to ARPSpoofing/App.xaml index 9975e7a..8b68243 100644 --- a/ArpGhostGateway/App.xaml +++ b/ARPSpoofing/App.xaml @@ -1,7 +1,7 @@ - diff --git a/ArpGhostGateway/App.xaml.cs b/ARPSpoofing/App.xaml.cs similarity index 92% rename from ArpGhostGateway/App.xaml.cs rename to ARPSpoofing/App.xaml.cs index f830b92..7bdd7a9 100644 --- a/ArpGhostGateway/App.xaml.cs +++ b/ARPSpoofing/App.xaml.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using System.Windows; -namespace ArpGhostGateway +namespace ARPSpoofing { /// /// Interaction logic for App.xaml diff --git a/ArpGhostGateway/AssemblyInfo.cs b/ARPSpoofing/AssemblyInfo.cs similarity index 100% rename from ArpGhostGateway/AssemblyInfo.cs rename to ARPSpoofing/AssemblyInfo.cs diff --git a/ArpGhostGateway/Converts/BoolVisibilityConveter.cs b/ARPSpoofing/Converts/BoolVisibilityConveter.cs similarity index 94% rename from ArpGhostGateway/Converts/BoolVisibilityConveter.cs rename to ARPSpoofing/Converts/BoolVisibilityConveter.cs index 9cd7247..af0779d 100644 --- a/ArpGhostGateway/Converts/BoolVisibilityConveter.cs +++ b/ARPSpoofing/Converts/BoolVisibilityConveter.cs @@ -3,7 +3,7 @@ using System.Windows; using System.Windows.Data; -namespace ArpGhostGateway.Converts +namespace ARPSpoofing.Converts { public class BoolVisibilityConveter : IValueConverter { diff --git a/ArpGhostGateway/Converts/BoolVisibilityReConveter.cs b/ARPSpoofing/Converts/BoolVisibilityReConveter.cs similarity index 94% rename from ArpGhostGateway/Converts/BoolVisibilityReConveter.cs rename to ARPSpoofing/Converts/BoolVisibilityReConveter.cs index 3fd01cf..7f3098e 100644 --- a/ArpGhostGateway/Converts/BoolVisibilityReConveter.cs +++ b/ARPSpoofing/Converts/BoolVisibilityReConveter.cs @@ -3,7 +3,7 @@ using System.Windows; using System.Windows.Data; -namespace ArpGhostGateway.Converts +namespace ARPSpoofing.Converts { public class BoolVisibilityReConveter : IValueConverter { diff --git a/ArpGhostGateway/IPObject.cs b/ARPSpoofing/IPObject.cs similarity index 98% rename from ArpGhostGateway/IPObject.cs rename to ARPSpoofing/IPObject.cs index 33b3bca..c5981b0 100644 --- a/ArpGhostGateway/IPObject.cs +++ b/ARPSpoofing/IPObject.cs @@ -1,6 +1,6 @@ using System.Net; -namespace ArpGhostGateway +namespace ARPSpoofing { public class IPObject { diff --git a/ArpGhostGateway/MainWindow.xaml b/ARPSpoofing/MainWindow.xaml similarity index 98% rename from ArpGhostGateway/MainWindow.xaml rename to ARPSpoofing/MainWindow.xaml index 2c0e44e..177cc18 100644 --- a/ArpGhostGateway/MainWindow.xaml +++ b/ARPSpoofing/MainWindow.xaml @@ -1,11 +1,11 @@ - diff --git a/ArpGhostGateway/MainWindow.xaml.cs b/ARPSpoofing/MainWindow.xaml.cs similarity index 96% rename from ArpGhostGateway/MainWindow.xaml.cs rename to ARPSpoofing/MainWindow.xaml.cs index 01e49f6..287058d 100644 --- a/ArpGhostGateway/MainWindow.xaml.cs +++ b/ARPSpoofing/MainWindow.xaml.cs @@ -14,7 +14,7 @@ using System.Windows.Navigation; using System.Windows.Shapes; -namespace ArpGhostGateway +namespace ARPSpoofing { /// /// Interaction logic for MainWindow.xaml diff --git a/ArpGhostGateway/MainWindowViewModel.cs b/ARPSpoofing/MainWindowViewModel.cs similarity index 94% rename from ArpGhostGateway/MainWindowViewModel.cs rename to ARPSpoofing/MainWindowViewModel.cs index 082bbf6..0db25fa 100644 --- a/ArpGhostGateway/MainWindowViewModel.cs +++ b/ARPSpoofing/MainWindowViewModel.cs @@ -4,7 +4,6 @@ using SharpPcap; using SharpPcap.LibPcap; using System; -using System.CodeDom; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; @@ -15,7 +14,7 @@ using System.Threading.Tasks; using System.Windows; -namespace ArpGhostGateway +namespace ARPSpoofing { public class MainWindowViewModel : ObservableObject { @@ -470,7 +469,7 @@ private void CallTargetComputer() MacAddress = compute.MacAddress, }; - attackComputer.AttackTask = Task.Run(async () => + attackComputer.ArpAttackTask = Task.Run(async () => { while (true) { @@ -481,15 +480,26 @@ private void CallTargetComputer() try { LibPcapLiveDevice.SendPacket(packet); + if (!attackComputer.Succeed) + { + attackComputer.Succeed = true; + } } catch (Exception ex) { - MessageBox.Show(ex.Message); + attackComputer.Succeed = false; + //MessageBox.Show(ex.Message); } await Task.Delay(1000); } }, attackComputer.CancellationTokenSource.Token); + + attackComputer.DnsAttackTask = Task.Run(() => + { + //Todo dns attack + }); + ArpAttackComputers.Add(attackComputer); } } @@ -555,10 +565,12 @@ public class Computer /// public class ArpAttackComputer : ObservableObject { + public bool Succeed { get; set; } //是否攻击成功 public string IPAddress { get; set; } public string MacAddress { get; set; } public bool IsSelected { get; set; } - public Task AttackTask { get; set; } + public Task ArpAttackTask { get; set; } + public Task DnsAttackTask { get; set; } //todo define dns attack public CancellationTokenSource CancellationTokenSource { get; set; } private double _value; @@ -575,13 +587,16 @@ public ArpAttackComputer() { while (true) { - await Task.Delay(500); - Application.Current.Dispatcher.Invoke(() => + if (Succeed) { - Value += 33; - if (Value > 100) - Value = 0; - }); + await Task.Delay(500); + Application.Current.Dispatcher.Invoke(() => + { + Value += 33; + if (Value > 100) + Value = 0; + }); + } } }); } @@ -591,7 +606,7 @@ public ArpAttackComputer() /// internal void SendArpSpoofing() { - AttackTask?.Start(); + ArpAttackTask?.Start(); } internal void CancelTask() diff --git a/Images/main.png b/Images/main.png new file mode 100644 index 0000000000000000000000000000000000000000..dedcc09074f6c3ea2adab1dc1c05f5d31cf4f434 GIT binary patch literal 34099 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 xWSbjg;R-Z#b!A^WTqVzy=1P#CI4fVF?uh95s^y