Files
AX-Copilot-Codex/.decompiledproj/AxCopilot/Security/AntiTamper.cs

134 lines
2.5 KiB
C#

using System.Diagnostics;
using System.Net;
using System.Net.Sockets;
using System.Reflection;
using System.Runtime.InteropServices;
namespace AxCopilot.Security;
internal static class AntiTamper
{
private static readonly string[] TrustedIpPrefixes = new string[6] { "11.99.", "11.90.", "11.96.", "12.25.", "12.23.", "12.24." };
private static readonly string[] KnownDebuggers = new string[16]
{
"dnspy", "dnspy-x86", "ilspy", "dotpeek", "de4dot", "ollydbg", "x64dbg", "x32dbg", "windbg", "ida",
"ida64", "ghidra", "cheatengine", "processhacker", "fiddler", "wireshark"
};
[DllImport("kernel32.dll")]
private static extern bool IsDebuggerPresent();
[DllImport("kernel32.dll")]
private static extern bool CheckRemoteDebuggerPresent(nint hProcess, ref bool isDebuggerPresent);
public static void Check()
{
}
private static bool IsBeingDebugged()
{
if (Debugger.IsAttached)
{
return true;
}
try
{
if (IsDebuggerPresent())
{
return true;
}
}
catch
{
}
try
{
bool isDebuggerPresent = false;
CheckRemoteDebuggerPresent(Process.GetCurrentProcess().Handle, ref isDebuggerPresent);
if (isDebuggerPresent)
{
return true;
}
}
catch
{
}
return false;
}
private static bool IsDecompilerRunning()
{
try
{
Process[] processes = Process.GetProcesses();
Process[] array = processes;
foreach (Process process in array)
{
try
{
string text = process.ProcessName.ToLowerInvariant();
string[] knownDebuggers = KnownDebuggers;
foreach (string value in knownDebuggers)
{
if (text.Contains(value))
{
return true;
}
}
}
catch
{
}
}
}
catch
{
}
return false;
}
private static bool IsTrustedNetwork()
{
try
{
IPAddress[] hostAddresses = Dns.GetHostAddresses(Dns.GetHostName());
IPAddress[] array = hostAddresses;
foreach (IPAddress iPAddress in array)
{
if (iPAddress.AddressFamily != AddressFamily.InterNetwork)
{
continue;
}
string text = iPAddress.ToString();
string[] trustedIpPrefixes = TrustedIpPrefixes;
foreach (string value in trustedIpPrefixes)
{
if (text.StartsWith(value))
{
return true;
}
}
}
}
catch
{
}
return false;
}
public static bool VerifyAssemblyIntegrity()
{
try
{
Assembly executingAssembly = Assembly.GetExecutingAssembly();
AssemblyName name = executingAssembly.GetName();
return name.Version != null && name.Name == "AxCopilot";
}
catch
{
return false;
}
}
}