Загрузка данных


$code = @'
using System;
using System.IO;
using System.Text;

public class FullPatcher {
    public static void Patch() {
        string fileIn = "GeometryDash.exe";
        string fileOut = "GeometryDash_Mucho.exe";
        
        if (!File.Exists(fileIn)) {
            Console.WriteLine("[-] GeometryDash.exe не найден!");
            return;
        }

        byte[] file = File.ReadAllBytes(fileIn);
        
        // Список всех возможных вариаций URL, которые использует игра
        string[] targets = new string[] {
            "https://www.boomlings.com/database",
            "http://www.boomlings.com/database",
            "http://www.boomlings.com/database/",
            "http://boomlings.com/database",
            "https://boomlings.com/database"
        };

        byte[] replace = Encoding.ASCII.GetBytes("http://muchogdps.space");
        int totalReplaced = 0;

        foreach (var target in targets) {
            byte[] search = Encoding.ASCII.GetBytes(target);
            for (int i = 0; i <= file.Length - search.Length; i++) {
                bool match = true;
                for (int j = 0; j < search.Length; j++) {
                    if (file[i+j] != search[j]) { 
                        match = false; 
                        break; 
                    }
                }
                
                if (match) {
                    // Записываем наш новый URL
                    for (int j = 0; j < replace.Length; j++) {
                        file[i+j] = replace[j];
                    }
                    // Забиваем остаток длины оригинального URL нулями
                    for (int j = replace.Length; j < search.Length; j++) {
                        file[i+j] = 0x00;
                    }
                    totalReplaced++;
                    Console.WriteLine("[+] Заменено совпадение для: " + target + " на позиции: 0x" + i.ToString("X"));
                }
            }
        }

        if (totalReplaced > 0) {
            File.WriteAllBytes(fileOut, file);
            Console.WriteLine("\n[+] УСПЕХ! Всего заменено вхождений: " + totalReplaced);
            Console.WriteLine("[+] Создан готовый файл: " + fileOut);
        } else {
            Console.WriteLine("[-] Строки не найдены. Возможно, исходный .exe уже модифицирован или упакован/зашифрован.");
        }
    }
}
'@

Add-Type -TypeDefinition $code
[FullPatcher]::Patch()