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

Вопросы о стабе

Ags1of

RAM
Пользователь
Регистрация
26.11.2021
Сообщения
122
Реакции
1
Всем привет, хочу задать несколько вопросов касаемо стаба:
1. При шифровании файла криптором, куда суётся стаб? AI говорит, что он суётся в начало файла, но я не могу понять, как? Имеется ввиду, что стаб преобразуется в машинный код, засовывается в начало .text секции PE файла и оттуда запускается или как?
2.Исходя из первого вопроса, хочу спросить: вообще сам билд при шифровании преобразовывается в массив байтов и сохраняется куда-то в стаб(например, в какой-то из заголовков файла) или всё-таки стаб как-то присоединяют к файлу?
3.Видел где-то, что, когда пишут крипторы, стаб добавляют в ресурсы проекта в виде .txt файла, а потом, допустим, через CSharpCodeProvider (в ЯП) C# компилируют код стаба, но, после компиляции, куда попадает этот стаб? Опять же тут отсылка на вопрос №2
4. Так как все вопросы на одну тему, прошу прощения за "масло масленное", но, если стаб присоединяется к билду, то как он, собственно, запускается, если, допустим, он находится в ресурсах билда, без изменения исходного кода самого билда, который бы извлёк стаб из ресурсов, скомпилировал его? Отсюда же и мои догадки про преобразования стаба в байт код и добавление в начало секции .txt
 
Изменяется стаб криптора, а не стаб твоей малвари.
Малварь берут чистым .exe и шифруют, потом помещают в то место откуда стаб криптора при старте читает инфу ( это всё в стабе криптора прописывается ). Можно помещать как в ресурсы так и в .text, .rdata и прочии секции, тут уже зависит от стаба криптора.
Мне кажется преобразование такое себе будет, я не знаю как ты будешь тогда определять где в .text криптор, а где шифрованая малварь, тут тогда уже нужно и константы объявлять где будет вычисленно смещение до байт кода криптора в секции .text, что бы читать инфу до этой точки.
 
Изменяется стаб криптора, а не стаб твоей малвари.
Малварь берут чистым .exe и шифруют, потом помещают в то место откуда стаб криптора при старте читает инфу ( это всё в стабе криптора прописывается ). Можно помещать как в ресурсы так и в .text, .rdata и прочии секции, тут уже зависит от стаба криптора.
Мне кажется преобразование такое себе будет, я не знаю как ты будешь тогда определять где в .text криптор, а где шифрованая малварь, тут тогда уже нужно и константы объявлять где будет вычисленно смещение до байт кода криптора в секции .text, что бы читать инфу до этой точки.
Совать в .text зашифрованный билд надо сумасшедшим быть, энтропия знаешь какая будет ? Сразу ML и Gen детекты прилетят в статике.
Чаще всего шифрованный билд лепится либо в оверлей файла, либо секцией ресурсов (и находтся потом там по имени ресурса), так же можно добавлять к стабу новую секцию, в которой и будет билд, а поиск производить по имени секции, либо зная, что она идет последней. Если в data кладется, то обычно прошиваются константы смещений, либо в начало буфера кладется уникальная сигнатура, которая на каждый файл разная. И поиск буфера в секции данных ведется по сигнатуре. Многие крипторы криптуют в compile-time, засовывая шифрованный билд как массив байт в сорцах, там компилятор сам просчитает все смещения.
Но это все базовые вещи, дальше стоит думать о том, что бы не хранить пошифрованный билд тупо массивом, потому что энтропия будет ужасной, и не важно в какой секции лежит билд, детект не заставит себя ждать. Надо понижать энтропию, разбивать массив на множестно мелких и размазывать по данным, если это ресурс, то маскироваться под картинки, аудио, заголовок допустим от bmp файла, а рабочее наполнение изображения - твой буфер.
 
Совать в .text зашифрованный билд надо сумасшедшим быть, энтропия знаешь какая будет ? Сразу ML и Gen детекты прилетят в статике.
Чаще всего шифрованный билд лепится либо в оверлей файла, либо секцией ресурсов (и находтся потом там по имени ресурса), так же можно добавлять к стабу новую секцию, в которой и будет билд, а поиск производить по имени секции, либо зная, что она идет последней. Если в data кладется, то обычно прошиваются константы смещений, либо в начало буфера кладется уникальная сигнатура, которая на каждый файл разная. И поиск буфера в секции данных ведется по сигнатуре. Многие крипторы криптуют в compile-time, засовывая шифрованный билд как массив байт в сорцах, там компилятор сам просчитает все смещения.
Но это все базовые вещи, дальше стоит думать о том, что бы не хранить пошифрованный билд тупо массивом, потому что энтропия будет ужасной, и не важно в какой секции лежит билд, детект не заставит себя ждать. Надо понижать энтропию, разбивать массив на множестно мелких и размазывать по данным, если это ресурс, то маскироваться под картинки, аудио, заголовок допустим от bmp файла, а рабочее наполнение изображения - твой буфер.
Короче, исходя из того, что вы написали, можно сказать, что в любом случае билд крепится к стабу, а там уже идёт последующее его извлечение, на которое "фантазии хватит". Т.е. к билду стаб не крепится, а к стабу билд, я правильно понимаю? Или всё-таки,каким-то образом и к билду можно стаб прилепить и начать выполнение файла с "прилепленного стаба"? Но, что-то мне подсказывает, что нельзя начать тогда выполнение билда с прикреплённого к нему стаба, не изменив сурс самого билда, чтобы он начал читать этот стаб
 
И, получается, если писать стаб на C#, то, уже полностью зашифрованный и готовый к применению билд (состоящий из стаба и зашифрованного файла), будет .Net зависимым? Если это так, то следует такой вопрос: "Как убрать эту .Net зависимость, чтобы конечный билд мог запуститься на любом пк, где не установлен .Net? Ответ, по-типу, сменить ЯП, не очень поможет
 
И, получается, если писать стаб на C#, то, уже полностью зашифрованный и готовый к применению билд (состоящий из стаба и зашифрованного файла), будет .Net зависимым? Если это так, то следует такой вопрос: "Как убрать эту .Net зависимость, чтобы конечный билд мог запуститься на любом пк, где не установлен .Net? Ответ, по-типу, сменить ЯП, не очень поможет
"Как написать на языке, которому нужен рантайм, бинарь, которому не нужен рантайм?"
Если коротко, то "никак" и "смени язык".

к стабу билд
Да

Или всё-таки,каким-то образом и к билду можно стаб прилепить и начать выполнение файла с "прилепленного стаба"? Но, что-то мне подсказывает, что нельзя начать тогда выполнение билда с прикреплённого к нему стаба, не изменив сурс самого билда, чтобы он начал читать этот стаб
Когда-то были популярны файловые инфекторы, которые примерно так и делали, но тебе, в данном случае, это зачем?
 
Совать в .text зашифрованный билд надо сумасшедшим быть, энтропия знаешь какая будет ? Сразу ML и Gen детекты прилетят в статике.
Чаще всего шифрованный билд лепится либо в оверлей файла, либо секцией ресурсов (и находтся потом там по имени ресурса), так же можно добавлять к стабу новую секцию, в которой и будет билд, а поиск производить по имени секции, либо зная, что она идет последней. Если в data кладется, то обычно прошиваются константы смещений, либо в начало буфера кладется уникальная сигнатура, которая на каждый файл разная. И поиск буфера в секции данных ведется по сигнатуре. Многие крипторы криптуют в compile-time, засовывая шифрованный билд как массив байт в сорцах, там компилятор сам просчитает все смещения.
Но это все базовые вещи, дальше стоит думать о том, что бы не хранить пошифрованный билд тупо массивом, потому что энтропия будет ужасной, и не важно в какой секции лежит билд, детект не заставит себя ждать. Надо понижать энтропию, разбивать массив на множестно мелких и размазывать по данным, если это ресурс, то маскироваться под картинки, аудио, заголовок допустим от bmp файла, а рабочее наполнение изображения - твой буфер.
Да не, это всё я знаю, лучше в ресы BitMap все дела. Он спрашивал именно про .text, я ему и рассказал, поэтому ко мне претензий нет.
Я может и новичёк в теме крипторов, но не такой дурак ;)
 
Короче, исходя из того, что вы написали, можно сказать, что в любом случае билд крепится к стабу, а там уже идёт последующее его извлечение, на которое "фантазии хватит". Т.е. к билду стаб не крепится, а к стабу билд, я правильно понимаю? Или всё-таки,каким-то образом и к билду можно стаб прилепить и начать выполнение файла с "прилепленного стаба"? Но, что-то мне подсказывает, что нельзя начать тогда выполнение билда с прикреплённого к нему стаба, не изменив сурс самого билда, чтобы он начал читать этот стаб
Верно, к стабу криптора крепят билд малвари. По поводу выполнения уже тут зависит от типа малвари .NET или Native. Если Native то ничего менять в ней не нужно, про .NET ничего сказать не могу так как не связывался ни разу.
Можно как и DoppleKSE сказал вшить в константу, но в этом случае нужно смещение знать твоей константы, это дело не сложное, но там тоже свои заморочки есть. Можно просто в сорц криптора засунуть байты в эту константу, тогда уже останется скомпилировать и готово.
 


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