1 Commits
Author SHA1 Message Date
Stone_Red fdaaec8c51 Code cleanup 2023-08-04 20:51:05 +02:00
8 changed files with 44 additions and 42 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ internal class BlockConfig
} }
} }
public bool CheckIfBlockSet(IpInfo ipInfo, BlockConfigSet blockConfigSet) public static bool CheckIfBlockSet(IpInfo ipInfo, BlockConfigSet blockConfigSet)
{ {
if (ipInfo.Type == "VPN" && blockConfigSet.BlockIfVpn) if (ipInfo.Type == "VPN" && blockConfigSet.BlockIfVpn)
{ {
+6 -6
View File
@@ -1,8 +1,8 @@
namespace FraudCapturer.Configuration; namespace FraudCapturer.Configuration;
internal class Configurator internal static class Configurator
{ {
public BlockConfig GetConfig() public static BlockConfig GetConfig()
{ {
BlockConfig blockConfig = new BlockConfig(); BlockConfig blockConfig = new BlockConfig();
@@ -24,7 +24,7 @@ internal class Configurator
return blockConfig; return blockConfig;
} }
private BlockConfigSet GetBlockConfigSetFromConsole(bool ifNotProxyDefault, bool ifproxyDefault, bool ifVpnDeault) private static BlockConfigSet GetBlockConfigSetFromConsole(bool ifNotProxyDefault, bool ifproxyDefault, bool ifVpnDeault)
{ {
BlockConfigSet blockConfigSet = new BlockConfigSet(); BlockConfigSet blockConfigSet = new BlockConfigSet();
Console.WriteLine($"Block if no Proxy detected {GetDefaultHintString(ifNotProxyDefault)}:"); Console.WriteLine($"Block if no Proxy detected {GetDefaultHintString(ifNotProxyDefault)}:");
@@ -39,7 +39,7 @@ internal class Configurator
return blockConfigSet; return blockConfigSet;
} }
private bool GetBoolValueFromConsole(bool defaultValue) private static bool GetBoolValueFromConsole(bool defaultValue)
{ {
string input = Console.ReadLine() ?? string.Empty; string input = Console.ReadLine() ?? string.Empty;
@@ -48,7 +48,7 @@ internal class Configurator
return defaultValue; return defaultValue;
} }
while (input.ToLower() != "y" && input.ToLower() != "n") while (input.ToLower() is not "y" and not "n")
{ {
input = Console.ReadLine() ?? string.Empty; input = Console.ReadLine() ?? string.Empty;
} }
@@ -56,7 +56,7 @@ internal class Configurator
return input.ToLower() == "y"; return input.ToLower() == "y";
} }
private string GetDefaultHintString(bool defaultValue) private static string GetDefaultHintString(bool defaultValue)
{ {
return defaultValue ? "[Y/n]" : "[y/N]"; return defaultValue ? "[Y/n]" : "[y/N]";
} }
+8
View File
@@ -0,0 +1,8 @@
// This file is used by Code Analysis to maintain SuppressMessage
// attributes that are applied to this project.
// Project-level suppressions either have no target or are given
// a specific target and scoped to a namespace, type, member, etc.
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Minor Code Smell", "S1075:URIs should not be hardcoded", Justification = "<Pending>", Scope = "member", Target = "~F:FraudCapturer.Program.AppUrl")]
+4 -8
View File
@@ -15,12 +15,8 @@ internal class DomainHelper
{ {
public static string[] GetDomainsFromDnsReqest(TransportPacket transportPacket) public static string[] GetDomainsFromDnsReqest(TransportPacket transportPacket)
{ {
List<string> domains = new();
MatchCollection matchCollection = Regex.Matches(transportPacket.GetPayloadAsString().ToLower(), @"(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]"); MatchCollection matchCollection = Regex.Matches(transportPacket.GetPayloadAsString().ToLower(), @"(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]");
foreach (Match match in matchCollection) List<string> domains = matchCollection.Select(match => match.Value).ToList();
{
domains.Add(match.Value);
}
return domains.Distinct().ToArray(); return domains.Distinct().ToArray();
} }
@@ -79,13 +75,13 @@ internal class DomainHelper
} }
} }
private class AntiFishReqestBody private sealed class AntiFishReqestBody
{ {
[JsonPropertyName("message")] [JsonPropertyName("message")]
public string? Message { get; set; } public string? Message { get; set; }
} }
private class AntiFishResult private sealed class AntiFishResult
{ {
[JsonPropertyName("followed")] [JsonPropertyName("followed")]
public bool Followed { get; set; } public bool Followed { get; set; }
@@ -103,7 +99,7 @@ internal class DomainHelper
public double TrustRating { get; set; } public double TrustRating { get; set; }
} }
private class AntiFishResultBody private sealed class AntiFishResultBody
{ {
[JsonPropertyName("match")] [JsonPropertyName("match")]
public bool Match { get; set; } public bool Match { get; set; }
+2 -2
View File
@@ -2,7 +2,7 @@
namespace FraudCapturer.Helpers; namespace FraudCapturer.Helpers;
internal class FirewallHelper internal static class FirewallHelper
{ {
public static void BlockIp(IPAddress? ipAddress) public static void BlockIp(IPAddress? ipAddress)
{ {
@@ -41,7 +41,7 @@ internal class FirewallHelper
lock (Program.IpStorePath) lock (Program.IpStorePath)
{ {
List<string> iPs = File.ReadAllLines(Program.IpStorePath).ToList(); List<string> iPs = File.ReadAllLines(Program.IpStorePath).ToList();
iPs.Remove(ipAddress.ToString()); _ = iPs.Remove(ipAddress.ToString());
File.WriteAllLines(Program.IpStorePath, iPs); File.WriteAllLines(Program.IpStorePath, iPs);
+8 -10
View File
@@ -5,7 +5,7 @@ using System.Text.Json;
namespace FraudCapturer.Helpers; namespace FraudCapturer.Helpers;
internal class IpHelper internal static class IpHelper
{ {
public static string? ProxycheckApiKey { get; set; } public static string? ProxycheckApiKey { get; set; }
@@ -101,7 +101,7 @@ internal class IpHelper
return ip[0] switch return ip[0] switch
{ {
10 or 127 => true, 10 or 127 => true,
172 => ip[1] >= 16 && ip[1] < 32, 172 => ip[1] is >= 16 and < 32,
192 => ip[1] == 168, 192 => ip[1] == 168,
_ => false, _ => false,
}; };
@@ -124,16 +124,14 @@ internal class IpHelper
return true; return true;
} }
foreach (IPAddress localIP in localIPs) return localIPs.Any(i => i.Equals(hostIP));
{
if (hostIP.Equals(localIP))
{
return true;
}
}
} }
} }
catch { } catch
{
return false;
}
return false; return false;
} }
} }
+7 -7
View File
@@ -9,24 +9,24 @@ internal static class PackageHelper
public static string GetPayloadAsString(this TransportPacket transportPacket) public static string GetPayloadAsString(this TransportPacket transportPacket)
{ {
byte[] data = transportPacket.PayloadData; byte[] data = transportPacket.PayloadData;
string bytes = ""; StringBuilder bytes = new StringBuilder();
string ascii = ""; StringBuilder ascii = new StringBuilder();
for (int i = 1; i <= data.Length; i++) for (int i = 1; i <= data.Length; i++)
{ {
// add the current byte to the bytes hex string // add the current byte to the bytes hex string
bytes += data[i - 1].ToString("x").PadLeft(2, '0') + " "; _ = bytes.Append(data[i - 1].ToString("x").PadLeft(2, '0') + " ");
// add the current byte to the asciiBytes array for later processing // add the current byte to the asciiBytes array for later processing
if (data[i - 1] < 0x21 || data[i - 1] > 0x7e) if (data[i - 1] is < 0x21 or > 0x7e)
{ {
ascii += "."; _ = ascii.Append('.');
} }
else else
{ {
ascii += Encoding.ASCII.GetString(new[] { data[i - 1] }); _ = ascii.Append(Encoding.ASCII.GetString(new[] { data[i - 1] }));
} }
} }
return ascii.Trim('.'); return ascii.ToString().Trim('.');
} }
} }
+8 -8
View File
@@ -13,7 +13,7 @@ using System.Text.Json;
namespace FraudCapturer; namespace FraudCapturer;
public class Program public static class Program
{ {
public const string AppName = "FraudCapturer"; public const string AppName = "FraudCapturer";
public const string AppUrl = "https://github.com/Stone-Red-Code/FraudCapturer"; public const string AppUrl = "https://github.com/Stone-Red-Code/FraudCapturer";
@@ -43,7 +43,7 @@ public class Program
if (args.FirstOrDefault() == "config") if (args.FirstOrDefault() == "config")
{ {
blockConfig = new Configurator().GetConfig(); blockConfig = Configurator.GetConfig();
string jsonConfig = JsonSerializer.Serialize(blockConfig); string jsonConfig = JsonSerializer.Serialize(blockConfig);
File.WriteAllText(ConfigStorePath, jsonConfig); File.WriteAllText(ConfigStorePath, jsonConfig);
@@ -119,10 +119,10 @@ public class Program
private static void Device_OnPacketArrival(object sender, PacketCapture e) private static void Device_OnPacketArrival(object sender, PacketCapture e)
{ {
RawCapture rawPacket = e.GetPacket(); RawCapture rawPacket = e.GetPacket();
ProcessRawPacket(rawPacket); _ = ProcessRawPacket(rawPacket);
} }
private static async void ProcessRawPacket(RawCapture rawPacket) private static async Task ProcessRawPacket(RawCapture rawPacket)
{ {
Packet packet = Packet.ParsePacket(rawPacket.LinkLayerType, rawPacket.Data); Packet packet = Packet.ParsePacket(rawPacket.LinkLayerType, rawPacket.Data);
if (packet is EthernetPacket) if (packet is EthernetPacket)
@@ -191,19 +191,19 @@ public class Program
bool block = false; bool block = false;
ConsoleColor consoleColor; ConsoleColor consoleColor;
if (ipInfo.Risk >= 67 && blockConfig.CheckIfBlockSet(ipInfo, blockConfig.HighRiskSet)) if (ipInfo.Risk >= 67 && BlockConfig.CheckIfBlockSet(ipInfo, blockConfig.HighRiskSet))
{ {
FirewallHelper.BlockIp(remoteIpAddress); FirewallHelper.BlockIp(remoteIpAddress);
consoleColor = ConsoleColor.Red; consoleColor = ConsoleColor.Red;
block = true; block = true;
} }
else if (ipInfo.Risk <= 33 && blockConfig.CheckIfBlockSet(ipInfo, blockConfig.LowRiskSet)) else if (ipInfo.Risk <= 33 && BlockConfig.CheckIfBlockSet(ipInfo, blockConfig.LowRiskSet))
{ {
FirewallHelper.BlockIp(remoteIpAddress); FirewallHelper.BlockIp(remoteIpAddress);
consoleColor = ConsoleColor.Yellow; consoleColor = ConsoleColor.Yellow;
block = true; block = true;
} }
else if (blockConfig.CheckIfBlockSet(ipInfo, blockConfig.MeduimRiskSet)) else if (BlockConfig.CheckIfBlockSet(ipInfo, blockConfig.MeduimRiskSet))
{ {
FirewallHelper.BlockIp(remoteIpAddress); FirewallHelper.BlockIp(remoteIpAddress);
consoleColor = ConsoleColor.DarkYellow; consoleColor = ConsoleColor.DarkYellow;
@@ -255,7 +255,7 @@ public class Program
continue; continue;
} }
if (domainInfo.IsMatch == false) if (!domainInfo.IsMatch)
{ {
if (lastDomain != domain) if (lastDomain != domain)
{ {