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

Как чистить детекты в рантайме (C++)?

где такое реализовано у shamel? либо ты пиздишь либо квейк
Такое реализовано у меня, еблуша, у шамеля просто свой стаб сискола в своем коде, без танцев с ntdll
Поэтому пиздишь тут только ты, очень много, и совершенно бестолку.

ну ка перекрой мне sysenter? это не jmp
Для аутистов, умственно осталых и просто долбо$бов
1673027412532.png

+ комментатор выше показал примерно то же самое
Сразу для дуры, которая обязательно доебется до чего-то и в этой картинке - прыжок не статичный в середину инструкции, адрес куда прыгнуть вычисляется в антиэмуле и АВ сосут толстенную бобину, в прочем как и ты.


по себе людей не судят , ара )
О стрелы дура заметала, не вывозит)
Так что капа, как обычно уходишь с топика обосранной. Учи матчасть, пока что ты не тянешь спор.
 
Угомонись, Капа.
Мне начинает казаться, что эта хитрожопая х#йня, такими вот провокационными спорами пытается вытянуть интересные знания, ему что-то тут доказывают, показывают как все работает, а он на ус мотает, потом будет в своем коде использовать.
Ибо то что он пишет не укладывается в голове ни у одного нормального человека, белое черным называет, черное белым, все у него не работает, АВ обойти нельзя и тд. - под дебила в общем косит. А потом когда что-то доказали, информация получена - резко перестает вы#бываться, и ждет нового момента.
Хорошую стратегию выбрал, но рано спалился.


по себе людей не судят , ара )
Так что х#й тебе капа ебл#вая, не скину больше ничего, и доказывать не буду. Сам знания ищи, и помни, если ты чего-то не знаешь, это твоя проблема, а не проблема окружающих. Раунд нах. Можешь сплюнуть... глотать не обязательно.

P.S. Отныне ты в муте, можешь писать - хоть жопу порви.
1673030691628.png
 
Последнее редактирование:
Найти два байта для сискола в ntdll проблема?
Так если РОП то другой разговор бро. они же говорили о вызове сисколов в кодосекции.

ара не вывез базара и слился ))

Такое реализовано у меня, еблуша
у тебя это где? В фантазии?))) ахаха, неуловимая малварь, потому что никто её не видел)
 
Инжект в легитимный процесс системы, при условии, что сам алгоритм инжекта не спалится, или COM/DLL-HiJacking, ну или использование lolbin'ов.
я использую самописный LoadPE, он по сути должен обходить эти вещи, но рантайм начал палиться
 
Пожалуйста, обратите внимание, что пользователь заблокирован
я использую самописный LoadPE, он по сути должен обходить эти вещи, но рантайм начал палиться
Почему ты считаешь, что самописный = непалащийся?
 
Такое реализовано у меня, еблуша, у шамеля просто свой стаб сискола в своем коде, без танцев с ntdll
Поэтому пиздишь тут только ты, очень много, и совершенно бестолку.


Для аутистов, умственно осталых и просто долбо$бов
Посмотреть вложение 49346
+ комментатор выше показал примерно то же самое
Сразу для дуры, которая обязательно доебется до чего-то и в этой картинке - прыжок не статичный в середину инструкции, адрес куда прыгнуть вычисляется в антиэмуле и АВ сосут толстенную бобину, в прочем как и ты.



О стрелы дура заметала, не вывозит)
Так что капа, как обычно уходишь с топика обосранной. Учи матчасть, пока что ты не тянешь спор.

АВ используют LDE/дизасм при поиске сигнатур в бинарях ;)
 
АВ используют LDE/дизасм при поиске сигнатур в бинарях
Да шо ты ему объясняешь, бро, он школота по верхам нахватался знаний. Сейчас прибежит в тему и тебя поливать будет)) а потом в игнор добавит со словами "слился нах"))))
 
АВ используют LDE/дизасм при поиске сигнатур в бинарях ;)
Вот перед тобой дизасм функции, найди мне здесь инструкцию syscall\sysenter в пределах видимой области, подвоха тут нет, она не за границами скриншота)

1673191181953.png

1673191306700.png



1673191827618.png

0F34C3 = sysenter + ret
1673191943311.png



Гифка - https://ibb.co/JrC5q90
 
Последнее редактирование:
Почему ты считаешь, что самописный = непалащийся?
Нет нет, я не это имел ввиду, а конкретно то, что LoadPE не должен же палится.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Пользуясь тредом, хочу задать вопрос по поводу эмуляторов. Никто не знает, почему ESET NOD32 так кричит на код, где вызываются функции по указателю?
"ML/Augur троянская программа". Тот же самый код, но где всё через жопу и без вызова функций по указателю уже не вызывают эрекцию у этого "машинного обучения".
Если что указатели на свои функции, не из винапи или еще откуда-то.
 
В ядро сейчас ав хуки свои не ставят, потому что заморочено PG байпасить, тем более для аверов, они не такие хитровымудреные, как блекхеты
Они обычно регистрируют свои колбэки, что-то вроде официального метода перехвата, который разрешает винда, но поддерживается там не такое множество функций, как хотелось бы аверам, создание процесса, доступ к файлам, в общем по пальцам пересчитать можно
Да и в основном такие заморочки в EDR решениях, обычные десктопные ав вроде авиры или eset хукают юзермод и все
Так что вызовы напрямую в ядро через сисколы решают этот вопрос
Все АВ сейчас подписываются на колбэки, НО НИ В КОЕМ СЛУЧАЕ НЕ ХУЧАТ классическим методом через сплайсинг или замену адресов вызвов в ssdt (в юзермоде аналог техники хук IAT)
PG сразу по руками бьет, и самое долгое время, которое проработает система после спласинга или патча SSDT в ядре = 10 минут, потом гарантированный BSOD
можно так-же добавить, при наличии виртуализации аверы вполне спокойно используют efer hooking (пример)
 
Очень годный тред! Продолжайте... )))
Если можно поподробнее пожалуйста про перекрытие кода (он же джамп ин зе мидле), в целом понятно что это и как работает, но может есть какие-то тонкости, где почитать может годные статьи ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
джамп ин зе мидле
там же всё тривиально, если я правильно понял, про что ты.

Код:
jz m+1
jnz m+1
m:
db 0B8h ; trash byte (mov)
call hide_fn
дизассемблер отнесет байт 0xB8 к инструкции call, она поломается.
В целом не очень полезная техника, потому что легко снимается:
При статичном анализе конвертируется байт B8 в дату и дальше инструкция call как обычно будет
При динамическом достаточно просто на прыжке сделать следующий шаг и любой адекватный отладчик покажет тебе нормальную инструкцию call.
Есть пара моментов, когда эта штука применима, но в обычно это юзлес
 
там же всё тривиально, если я правильно понял, про что ты.

Код:
jz m+1
jnz m+1
m:
db 0B8h ; trash byte (mov)
call hide_fn
дизассемблер отнесет байт 0xB8 к инструкции call, она поломается.
В целом не очень полезная техника, потому что легко снимается:
При статичном анализе конвертируется байт B8 в дату и дальше инструкция call как обычно будет
При динамическом достаточно просто на прыжке сделать следующий шаг и любой адекватный отладчик покажет тебе нормальную инструкцию call.
Есть пара моментов, когда эта штука применима, но в обычно это юзлес

это нужно не более чем против статичного анализа ав
даже эмулятор зайдет внутрь и попадет на нужный инструкции, не говоря уже про ручной реверс
так что тут больше простая антистатика
 
По поводу статики, выше вы писали, что если 10-15 байт длинна цепочек не морфленных то на это уже не наложить сигнатуру ? есть какие-то критерии в этом плане, минимальная длинна байт не морфленых, имперически хотя бы как обычно на практике это работает ? Я так понимаю, что главный критерий это авирам найти баланс между ложными срабатываниями и детектом, и если к примеру эти же 10-15 или даже 50-100 байт будут использоваться в любом чистом софте, то уже не наложить на это сигнатуру, так ? Еще может быть какие-то есть тонкости ?
 
По поводу статики, выше вы писали, что если 10-15 байт длинна цепочек не морфленных то на это уже не наложить сигнатуру ? есть какие-то критерии в этом плане, минимальная длинна байт не морфленых, имперически хотя бы как обычно на практике это работает ? Я так понимаю, что главный критерий это авирам найти баланс между ложными срабатываниями и детектом, и если к примеру эти же 10-15 или даже 50-100 байт будут использоваться в любом чистом софте, то уже не наложить на это сигнатуру, так ? Еще может быть какие-то есть тонкости ?
Правило такое - чем длиннее какой-то уникальный, неизменяемый код у тебя в софте, тем больше шанс, что именно на этот код налепят сигнатуру
Поэтому что бы обойти статику - нужно разрывать большие куски кода непрерывные на более мелкие, вставлять между ними мусорные инструкции, джампы, условные и безусловные, нужно разбить длинный код на более мелкие куски, миксовать их, располагать в разных местах в коде, так же можно сам оригинальный код менять, было mov ecx, 1000 , заменил на mov ecx, 300 + add ecx, 700 (не забываем про флаги, ZF слетит после второй инструкции, и если он до нее был выставлен, а дальше джамп jz\jnz - он может повести себя непредсказуемо для тебя) очень много инструкций влияют на флаги, за этим нужно следить что бы не нарушить оригинальную логику и ветвления
 
Про перекрытие кода еще, мне казалось как обфускация это давольно действенный метод, если таким макаром будет написаны полностью большие учатски кода а не отдельный джамп, добавит безсонных часов реверсерам в конторе ? Тоесть фактически тоже что ROP только в своем коде через перекрытие кода, как-то так, прыгать по участкам на гаджеты созданные самим собой
 
Лолбины ваше все друзья! Ну и правильно (с пониманием работы av/edr решений) написаный и тестированый на аве решениях код конечно. В холивары c экспертами в области теории по сисколам не когда не лез ибо практика показывает что обойтись можно без них. Едиственное ручной вызов сисколов улыбнул:cool:
 
Лолбины ваше все друзья! Ну и правильно (с пониманием работы av/edr решений) написаный и тестированый на аве решениях код конечно. В холивары c экспертами в области теории по сисколам не когда не лез ибо практика показывает что обойтись можно без них. Едиственное ручной вызов сисколов улыбнул:cool:
это немного иная сфера применения
 


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