Initial commit to new repository
This commit is contained in:
133
.decompiledproj/AxCopilot/Security/AntiTamper.cs
Normal file
133
.decompiledproj/AxCopilot/Security/AntiTamper.cs
Normal file
@@ -0,0 +1,133 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user