Фреймворк криптора/протектора с антиэмуляцией

Кто просматривает этот контент: "Тема" (Всего пользователей: 0; Гостей: 2)

virt

Уважаемый пользователь
Форумчанин
Регистрация
24.11.2016
Сообщения
566
Репутация
191
Jabber
Telegram
#21
Вчера опытным путем нашёл ещё один более менее действенный антиэмуль. Не знаю как точно сделать это на плюсах, но на асме довольно просто. Вобщем смысл такой, создаём цикл типа for, со знанием счётчика, например 16,000,000. Выход из цикла по 0. Но! В самом цикле, к примеру на каждых 500000 генерируем один байт из ключа и когда ключ создан, выходим из цикла досрочно.
Авер пропускает этот цикл и, соответственно, не рассчитывает ключ, и не может расшифровать полезную нагрузку. Также можно и точку входа в функцию рассчитывать.
Это и на си непроблема сделать.

У эмулятора лимиты на сканирование всего файла, а не функции целиком.

Так-что если делать большие задержки, он в принципе может и не дойти до функции.

Как пример, отключите всю антиэмуляцию и поставьте перед вызовом функции запуска в памяти while (1); эмулятор просто недойдет до функции.)))
 

virt

Уважаемый пользователь
Форумчанин
Регистрация
24.11.2016
Сообщения
566
Репутация
191
Jabber
Telegram
#22
Надо было не заливать на ВТ... i'm crazy
Так и нужно сделать, либо максимально простую чистку, либо отсутствие детекта у следующих образцов.)

Иначе смысла крипта нет. Хотя-бы на скантайм такое сделать.
 

skales007

Житель форума
Форумчанин
Регистрация
26.03.2019
Сообщения
9
#23
Это и на си непроблема сделать.
Я и не говорил, что это сложно сделать на сях, я имел ввиду, что не знаю точно как это будет выглядеть в ассемблерном листинге.

Как пример, отключите всю антиэмуляцию и поставьте перед вызовом функции запуска в памяти while (1); эмулятор просто не дойдет до функции.)))
Возможно ошибаюсь, но пробовал. Если взять бесконечный цикл, то да, авер дальше него не зайдет. А вот если цикл с выходом, пусть и с длинным, то он просто его пропускает (если не добавить туда полезных действий).Вышло два следствия, как мне показалось: либо делать расчеты в цикле, чтоб авер его не мог пропустить, либо если пропустит, то не расшифруется нагрузка. Но это мое ИМХО)) Я велосипедист)) любую критику приму))
 

virt

Уважаемый пользователь
Форумчанин
Регистрация
24.11.2016
Сообщения
566
Репутация
191
Jabber
Telegram
#24
Для достижения метополиморфизма (каждый раз разный код, после сборки), можно использовать это:boostorg/preprocessor

На днях если будет время покажу, как это можно сделать на си, в этом проекте.

Это называется метапрограммирование.
 

Gerion

Житель форума
Форумчанин
Регистрация
12.05.2019
Сообщения
13
Репутация
2
#25
Обидно только то,что проект начинает палиться еще на стадии разработки =(
Обновил проект:

1)Нод уже начал детектить, примечательно, что детектить стал модуль: modules/trash_gen_module:

Уж незнаю, кто задетектил автоматика, либо аналитик ?

Задетектил как-то странно, даже не объектник, а файл modules/trash_gen_module/fake_api.cpp, там связанные функции:
Код:
extern "C" {
    void __cdecl  debug_print(unsigned line) {
        std::cout << "debug: " << line << "\n";
    }
};

extern "C" {
    void __cdecl do_fake_instr(void);
}

extern "C" {
    uint32_t __stdcall do_Random_EAX(uint32_t min, uint32_t max);
}
Для лечения от жадности, просто убрал:
Код:
extern "C" {
    void __cdecl  debug_print(unsigned line) {
        std::cout << "debug: " << line << "\n";
    }
};
А как ты определил, что именно на файл? Прошелся ав по исходникам?
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 701
Репутация
234
Jabber
Telegram
#26
Обновление, добавил метаморфизм:

Для достижения метаморфизма, shell_gen генерирует заголовочный файл, со следующими дефайнами, пример (сами значения случайны):

#define START_MORPH_CODE 5

#define END_MORPH_CODE 14

На основе этих значений при сборки, генерируется "мусорный код" (Математичесие операции и т.д.), который будет случайным, после каждого вызова shell_gen и сборки.

При сборки, в main и в модулях:modules/run_pe/, modules/trash_gen_module/ генерируются функции в случайном порядке, функции берутся в modules/metamorph_code/morph.cpp (На данный момент там функции арифметических операций). Тем самым достигается полиморфность не только данных, но и кода каждого образца.)))

Поправлены ошибки, ну и новый модуль modules/metamorph_code/

Так ещё планирую сделать возможность крипта x64.
 

HopefuLXakir

Житель форума
Форумчанин
Регистрация
14.11.2018
Сообщения
64
Репутация
7
#27
А где весь проект можно скачать?
 

HopefuLXakir

Житель форума
Форумчанин
Регистрация
14.11.2018
Сообщения
64
Репутация
7
#28
Обновил проект:

1)Нод уже начал детектить, примечательно, что детектить стал модуль: modules/trash_gen_module:

Уж незнаю, кто задетектил автоматика, либо аналитик ?

Задетектил как-то странно, даже не объектник, а файл modules/trash_gen_module/fake_api.cpp, там связанные функции:
Код:
extern "C" {
    void __cdecl  debug_print(unsigned line) {
        std::cout << "debug: " << line << "\n";
    }
};

extern "C" {
    void __cdecl do_fake_instr(void);
}

extern "C" {
    uint32_t __stdcall do_Random_EAX(uint32_t min, uint32_t max);
}
Для лечения от жадности, просто убрал:
Код:
extern "C" {
    void __cdecl  debug_print(unsigned line) {
        std::cout << "debug: " << line << "\n";
    }
};
Dmeh-Smeh-Smeh!!!Можно автоматизировать, добавляя в модули похожим образом функции.Dmeh-Smeh-Smeh!!!

2)Добавил модуль /modules/antiemul

3)Теперь:

Теперь по умолчанию происходит выделение памяти 32 мегабайт памяти, копирование туда нашего зверька, потом подсчет хеша этого куска памяти, шифровка/расшифровка этого куска памяти, в качестве ключа наш хеш.Эта-же память используется для размещения нашего зверька.

4)Поправил ошибку.
Чтобы антивирусы не детектили не нужно сканировать на вирустотале...
Вот вам беспалевный сканер https://spyralscanner.net/ уже более полугода сканирую на нем свои проекты не одного детекта от антивирусов не получил.
 

Edith Wooten

Житель форума
Форумчанин
Регистрация
17.04.2019
Сообщения
75
Репутация
12
#29

Edith Wooten

Житель форума
Форумчанин
Регистрация
17.04.2019
Сообщения
75
Репутация
12
#30
@X-Shar можешь еще посмотреть проект Polychaos, как пример пермутации
 
Вверх