С чем связян детект wacatac.b!ml?Последний месяц - полтора, как то он совсем рандомно вешает на каждый второй билд этот детект. При том что софт абсолютный полиморф: код, ресурсы, рантайм (вызов winapi), даже rich header.
энтропия , апи картаМного мусора в коде, этот детект вешается когда дефендер считает что софт не несет полезной нагрузки. К примеру нет мало статических winapi, мало или мусорные вызовы статических winapi, слишком много mov, add, xor ну и т.д.
я теперь жажду услышать от тебя ответ что такое энтропиядеф чуть по умнее чем энтропия, лол. Мы не в 2010. Уже тогда MSE (на базе которого деф в итоге выкатили) был с виртуалкой внутри и раскручивал крипты.

Not sure why, but there is many reasons. Detection is based on machine learning so you have some patterns that are being detected. Also, low number of APIs in IAT can be reason. next, maybe you have bad behaviour in your app (like writing in registry as soon it starts, sending HTTP or socks request as soon it starts, etc...)С чем связян детект wacatac.b!ml?Последний месяц - полтора, как то он совсем рандомно вешает на каждый второй билд этот детект. При том что софт абсолютный полиморф: код, ресурсы, рантайм (вызов winapi), даже rich header.
Чеки секций на энтропию это древний метод, который умер примерно тогда же когда умерла авира, которая чекала корректность PE файлов и чекала, чтобы пределы энторопии кодовой секции были 6.1-6.9, иначе детект. Сейчас используются более сложные алгоритмы и почти никто из аверов энтропию не чекает (кроме авиры и аваста, да).я теперь жажду услышать от тебя ответ что такое энтропия![]()
окей отключаем интернет и смотрим как работает эмулятор а ни как wacatac, wacpe и прочие !ml отлетают совпадение ? не думаю, ещё больше ясности внесёт отладчикВсе детекты, которые он кидает - это детекты не статически на файл, а после прогона его внутри аверского эмулятора
Все верно сказано и развернуто. Я бы добавил что детект ставится исходя из объема и "полезности" кода, как считается полезность - секрет, но опытным путем выяснил и описал в начале. Иногда достаточно убрать xor шифрование (к примеру хешь апи когда считается), иногда достаточно сделать все апи вызовы - статическими или разбавить ими - НО они должны именно участвовать в работе софтины, иногда достаточно уменьшить объем мусорных инструкций add mov nop и т.д., встречались мне случае когда детект вешался на преждевременно прекращение программы или выход из программы по средства критической ошибки (ну к примеру антидетект и return/try except/crash). Если поставить сертификат на софтину то данный детект пропадает. Если включен оптимизатор кода то тоже помогает избавится от кода который не участвует в работе. Т.е. чтобы убрать данный детект софтина должна использовать все АПИ, иметь мало "мусора" (даже валидного рабочего мусорного кода), отрабатывать без ошибок с корректным завершением работы.Чеки секций на энтропию это древний метод, который умер примерно тогда же когда умерла авира, которая чекала корректность PE файлов и чекала, чтобы пределы энторопии кодовой секции были 6.1-6.9, иначе детект. Сейчас используются более сложные алгоритмы и почти никто из аверов энтропию не чекает (кроме авиры и аваста, да).
Ты не в том положении, чтобы мне задавать вопросы в таком тоне. Что такое энтропия может загуглить любой школьник, я тебе отвечу почему и как её использовали: показатели энтропии, если её считать только по кодовой секции, на средних интеловских инструкциях из под компилятора стандартного давали значения около 6 и если значения сильно выбивались, то это говорило о наличии мусорного кода (если они сильно выше) из трешгена.
Соотношение энтропии общей по файлу, если она высокая, тоже говорило, что файл упакован или покриптован, если были отдельные секции > 8, то это говорило что вся секция покриптована и в целом кидало детекты кучей аверов.
Так вот вындеф не настолько туп, чтобы считать энтропию. Я тебе больше скажу. Все детекты, которые он кидает - это детекты не статически на файл, а после прогона его внутри аверского эмулятора, когда он запоминает cf и прогоняет его по внутренним движкам. Wacatak это детект внутреннего ML на поток исполнения. Карта API тоже учавствует, но не настолько топорно, как это было раньше, например, у езета.
Оно детектит в том числе длинные циклы на старте. В общем всё о чем сказал merdock.
Прошу пояснить пост, а потерял суть - чему это?Кстати говоря, для того чтобы отключить генерацию Rich-хедера в компиляторе MSVC есть андок параметр:
Код:/emittoolversioninfo:no
++ What this guy says, about the code seeming foreign to the ML then it getting flagged as Wacatac. One method I've used to bypass it is hiding behind a GUI framework, an example would be QT or something like that, then having some GUI code that exits immediately, or displays a loading screen.Hello, I hope you are well.
Initially, I had the same problem. This detection or alarm seems to be a generic detection, which identifies an unsigned digital file as "different" from the usual, meaning:
1.- In my case, payloads without any type of shellcode byte array.
2.- Payloads without any type of Cobalt and similar C2 framework inside the payload. I retrive the shellcode from a encrypted file/internet/steganography so at the beginning, nothing suspicious was included in the initial loader (cobalt/havoc and similar c2 frameworks shellcodes). Even cobalt shellcode was behind a UDRL custom kit so... Nothing to be related with external shellcode.
3.- Payloads without signatures.
4.- DLL sideload payloads (chrome/java in my case)
Everything was random. As I said, in my case this was something exceptional. The same payload that received a Wacatac function was bypassed on 10 EDRs or more (I don't count them) in real environments, receiving callbacks on my testing server. (only alerted by gay bill gates AV system as wacatac but bypass EDRs as cutting butter)
To my surprise, nothing was flagged as Wacatac on a normal .exe with just 5 minutes of work, without pump functions, containing shellcode byte arrays, no AMSI bypass, no ETW, nothing. I only received these errors/issues on certain DLL sideloads, in my case with Java/Chrome, under the same evasion profile but with more sophisticated work behind it.
More people in my circle have the same view in the end: this happens because the AV didn't understand what was happening and flagged the work as Wacatac.
If you need more explanations, feel free to ask anything, but it is a weird alarm. I just came to the conclusion that it is a generic alert for an unknown payload/executable/file.
All my work comes with unsigned files. If I do any SmartScreen bypass or something similar, it comes with a DLL sideloading as we already know. But as I said, even a very simple exe did not receive this alert, but a well-crafted DLL sideload payload did receive a Wacatac alert when, in the end, it was bypassing 80% of scanner.to EDRs and giving a callback on the test server.
If you are interested I can further develop the situation and the cases in which I experienced this.
At first it was only in these sideload payload dlls (chrome/java). I used the same methods as other generations of payloads, but in these cases I have had these "alert".
secidiot
есть еще тайные инструкции для компилятора, чтоб не палиться у аверов?Кстати говоря, для того чтобы отключить генерацию Rich-хедера в компиляторе MSVC есть андок параметр:
Больше не работает на Visual Studio 2022.Прошу пояснить пост, а потерял суть - чему это?
не используйте msvc, есть нормальные компиляторы (gcc, clang).