• XSS.stack #1 – первый литературный журнал от юзеров форума

Как эффективно чистить рантайм C++?

tilekvj

(L1) cache
Забанен
Регистрация
15.06.2020
Сообщения
543
Реакции
113
Пожалуйста, обратите внимание, что пользователь заблокирован
Хочу задать малварщикам вопрос. Как Вы чистите рантайм своей проги на C++? И есть ли самые эффективные методы чистки. Недавно знакомый сурсы ратинка скинул на C++, который показывает 25/36 ав. Попросил почистить. Исходники посмотрел, глаза помыл и заново начал изучать. Заменил некоторые методы, которые сильно детектят, обфусцировал строки, изменил длину переменных, (например char data[MAX_PATH] на char sahdsay8hudsa[MAX_PATH], переместил функции, для некоторых функции создал отдельный класс. и бац! 16/36... Картина не самая лучшая. А как Вы чистите рантайм малварь?
p.s. попросил почистить не за деньги, а по-братски)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
char data[MAX_PATH] на char sahdsay8hudsa[MAX_PATH]
И много, мне интересно, это рантайм детектов снесло?)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
И много, мне интересно, это рантайм детектов снесло?)
неа конечно) я экспериментировал прост)))
 
изменил длину переменных, (например char data[MAX_PATH] на char sahdsay8hudsa[MAX_PATH]
Вот, что случается, когда люди пытаются кодить/править малварь, не имея ни малейшего понятия как оно устроено на низком уровне и как будет выглядить твой код на асм, ну а что, вызвать же пару функций и все готово, че там сложного)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вот, что случается, когда люди пытаются кодить/править малварь, не имея ни малейшего понятия как оно устроено на низком уровне и как будет выглядить твой код на асм, ну а что, вызвать же пару функций и все готово, че там сложного)
тот код мб кринжовый, но! Это был эксперимент. Странно, но у меня некоторые аверы снялись после этого
 
тот код мб кринжовый, но! Это был эксперимент. Странно, но у меня некоторые аверы снялись после этого
Посмотри на сгенерированный асм код, он абсолютно одинаковый будет) Разве, что ты с дебаг инфой сэмпл грузишь))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Посмотри на сгенерированный асм код, он абсолютно одинаковый будет) Разве, что ты с дебаг инфой сэмпл грузишь))
да, ужу глянул. Спасибо за подсказку) Дебаг инфа отключена ты шо) Не подскажешь как чистить рантайм эффективно? Или по-крайней мере, что ты применяешь
 
Думаю что-бы чистить зверька постоянно и это не было напряжно каждый раз, нужно делать автоматизированный морфер исходников, это генерация различных ветвлений в коде, добавление мусора, скрытие строк по алгоритму, причем сами алгоритмы генерации должны меняться от билда к билду.

Вот тогда это крутая чистка.)))

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

char data[MAX_PATH] на char sahdsay8hudsa[MAX_PATH]

По вашему примеру, в собранном варианте это ничего не дает.)

Но некоторые антивирусы можно обойти на первых порах очень-даже просто, вот например детект на функцию:
Код:
my_function () {
char data[MAX_PATH];
}

Меняем выделение памяти, не на стеке, а например так:
Код:
static char data[MAX_PATH];
my_function () {
***
}

И уже у кого-то детект собьется, также помогают добавление слипов, или каких-то задержек в функции, например от езета, несколько раз так обходил детект.
Какие-то антивирусы детектят определенные параметры API, или совокупность апи плюс параметры, например касперский это делать любит, тут обход менять параметры, либо искать аналоги API.

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

Вот тогда это крутая чистка.)))

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



По вашему примеру, в собранном варианте это ничего не дает.)

Но некоторые антивирусы можно обойти на первых порах очень-даже просто, вот например детект на функцию:
Код:
my_function () {
char data[MAX_PATH];
}

Меняем выделение памяти, не на стеке, а например так:
Код:
static char data[MAX_PATH];
my_function () {
***
}

И уже у кого-то детект собьется, также помогают добавление слипов, или каких-то задержек в функции, например от езета, несколько раз так обходил детект.
Какие-то антивирусы детектят определенные параметры API, или совокупность апи плюс параметры, например касперский это делать любит, тут обход менять параметры, либо искать аналоги API.

Вообще тема сложная, но вручную чистить можно для разовых обходов, если у вас цель комерс, или массовая заливка. То вручную извините, заебетесь.)))
Я бы посмотрел, как ты на уровне исходников "поморфишь" свою малварь :)))
 
Я бы посмотрел, как ты на уровне исходников "поморфишь" свою малварь :)))
А что в этом такого необычного ?
Вот почитайте, как пример:https://xss.pro/threads/35265/

Как-бы тема не новая, но делать такое не простая задача.
Но в целом решаемо все.)))
 
А что в этом такого необычного ?
Вот почитайте, как пример:https://xss.pro/threads/35265/

Как-бы тема не новая, но делать такое не простая задача.
Но в целом решаемо все.)))
Статью читал. Это совершено не эффективно и глупо. Повторюсь, "морфить" исходники - очень глупая и непродуктивная затея
 
Статью читал. Это совершено не эффективно и глупо. Повторюсь, "морфить" исходники - очень глупая и непродуктивная затея
Хотелось-бы обоснованный ответ.
Почему ?
 
Хотелось-бы обоснованный ответ.
Почему ?
Потому что это костыльно, сильно ограничено в плане возможностей, сплошная абстракция на уровне языка, на котором ты пишешь, за счет которой твой "морфер" будет не способен на что-то большее, чем генерация простых конструкций
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Отключить оптимизацию по размеру, добавлять мусорный код, шифровать строки, апи по хэшу и всё такое...
Спасибо за ответ! Да, уже изучаю более глубже эту тему. Шифрование обычным base64 не подходит как я понял (кек, наивный)... Xor идея или aes с ключом мб вариант. Для каждого стаба отдельно генерировать ключи и т.д. Апи по хешу тоже хорошая идея!
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Думаю что-бы чистить зверька постоянно и это не было напряжно каждый раз, нужно делать автоматизированный морфер исходников, это генерация различных ветвлений в коде, добавление мусора, скрытие строк по алгоритму, причем сами алгоритмы генерации должны меняться от билда к билду.

Вот тогда это крутая чистка.)))

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



По вашему примеру, в собранном варианте это ничего не дает.)

Но некоторые антивирусы можно обойти на первых порах очень-даже просто, вот например детект на функцию:
Код:
my_function () {
char data[MAX_PATH];
}

Меняем выделение памяти, не на стеке, а например так:
Код:
static char data[MAX_PATH];
my_function () {
***
}

И уже у кого-то детект собьется, также помогают добавление слипов, или каких-то задержек в функции, например от езета, несколько раз так обходил детект.
Какие-то антивирусы детектят определенные параметры API, или совокупность апи плюс параметры, например касперский это делать любит, тут обход менять параметры, либо искать аналоги API.

Вообще тема сложная, но вручную чистить можно для разовых обходов, если у вас цель комерс, или массовая заливка. То вручную извините, заебетесь.)))
Благодарю за развернутый ответ :D Кстати, антиэмуляция тоже помогает снизить детекты. Вручную рефакторить код каждый раз тоже не идея как ты и сказал. Как показывает практика, после месяца продажи малваря он становится уже красным как елка. Можно скажем сделать несколько алгоритмов шифрования строки, добавления мусора и т.д. и для каждого билда смешивая по-разному генерировать стаб с антиэмуляцией. P.s. Я пока что в этой теме только новичок (в криптографии).
 
Хотелось-бы обоснованный ответ.
Почему ?
Жуть какая) В первые в жизни слышу, чтоб кто-то делал морфер на уровне сорцов... Лучшее, что сейчас чтоб писать автоматизированный морфер это LLVM, на си конечно во многих случаях надо писать для этого obfuscation aware код, но все лучше чем сорцы морфить) А вот rust + llvm можно еще удобнее морфить, так что советую всем смотреть в сторону этого решения, а не заниматься "морфингом" "сорцов"
 
Даже ежу понятно что морфить имена переменных недостаточно, нужно обязательно морфить имена процедур, желательно генеркой по словарю чтобы энтропия не превышала допустимой нормы.

Лучшее, что сейчас чтоб писать автоматизированный морфер это LLVM, на си конечно во многих случаях надо писать для этого obfuscation aware код, но все лучше чем сорцы морфить)
давно доказано что ллвм для морфинга не эффективен, в отличии от ручного ренейма переменных, так что не неси чушь, если морфить то только руками
 
если морфить то только руками
Мне кажется руками каждый раз долго и напряжно.)

Вообще было-бы круто, если-бы кто-то из опытных мастеров кунгфу написал статью, о том какие вообще есть актуальные способы чистки, их плюсы/минусы и т.д.

Да, не нужно там секреты реализации, а именно интересны подходы.

Кстати тут на форуме админ не плохо платит за статьи, вот тема:https://xss.pro/threads/36600/

Поэтому написав такую статью, даже можно немного подзаработать, хотя понятно, что это неосновная цель.)))
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх