{}
run-icon
Main.cs
using System; using System.Collections.Generic; using System.Text; public class Obfuscation { public static List<int> ObfuscateString(string input, List<int> key1, List<int> key2) { byte[] inputBytes = Encoding.UTF8.GetBytes(input); List<int> result = new List<int>(); int prevChar = 0; for (int i = 0; i < inputBytes.Length; i++) { int character = inputBytes[i]; int key1Index = (prevChar + i) % key1.Count; int key2Index = (key1[key1Index] + prevChar) % key2.Count; for (int j = 0; j < 10; j++) { character = ((character + key1[key1Index] + prevChar) ^ key2[key2Index]) & 0xFF; character = ((character << 3) | (character >> 5)) & 0xFF; character = (character ^ key1[key1Index]) & 0xFF; character = ((character - key2[key2Index]) & 0xFF) ^ 0xAB; character = (character * 7) & 0xFF; character = (character ^ (key1[key1Index] >> 2)) & 0xFF; character = ((character + key2[key2Index] + prevChar) & 0xFF) ^ 0x7E; character = ((character << 2) | (character >> 6)) & 0xFF; character = (character ^ 0x55) & 0xFF; character = ((character - key1[key1Index] + prevChar) * 3) & 0xFF; } result.Add(character); prevChar = character; } return result; } public static string DeobfuscateString(List<int> obfuscatedData, List<int> key1, List<int> key2) { return "test"; } public static void Main() { string input = "Hello, World!"; List<int> key1 = new List<int> { 1, 2, 3, 4, 5 }; List<int> key2 = new List<int> { 6, 7, 8, 9, 10 }; // Обфускация строки List<int> obfuscated = ObfuscateString(input, key1, key2); Console.WriteLine("Obfuscated:"); Console.WriteLine(string.Join(", ", obfuscated)); // Деобфускация строки string deobfuscated = DeobfuscateString(obfuscated, key1, key2); Console.WriteLine("Deobfuscated:"); Console.WriteLine(deobfuscated); // Проверка на корректность деобфускации Console.WriteLine("Test: " + (input == deobfuscated ? "success!" : "fail")); } }
Output