Как вы уберегаетесь от антивирусов?
От: Basil2 Россия https://starostin.msk.ru
Дата: 29.08.20 14:57
Оценка:
Преамбула:

У меня один из проектов регулярно детектился на вирус тотал. Но детектился маленькими дерьмовенькими антивирчиками, что было неприятно, но терпимо. А потом внезапно, через несколько дней после важного релиза, экзешник стали детектить Windows Defender и Касперский, а также еще несколько маленьких дерьмовенькими. В Касперского и Майкрософт я написал, они на удивление быстро исправили детект. А у мелкого дерьмеца даже писать-то некуда — у них на сайте только надпись "покупайте наш самый лучший антивирус" и мейл отдела продаж.

Сейчас на втором проекте McAfee внезапно ругается на запись dll на диск (а как ее не писать, когда dll однопоточная а надо несколько; можно в память раскладывать но жаль менять отлаженный механизм). Причем на virustotal он не ругается, а именно по факту записи dll). Хочется как-то подстраховаться от проблем.

Вопросы:

1. Как снизить вероятность детекта?

Я вот понял, что паковать нельзя — применяешь UPX, и сразу 2..4 говнеца начинают тявкать. Знаю про подпись, но руки пока не дошли.

2. Можно ли действовать на упреждение?

(В какой-нибудь белый список например добавиться (только я не знаю есть ли такие и насколько они эффективны); проверить детект на реальных антивирусах в динамике etc)
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re: Как вы уберегаетесь от антивирусов?
От: CreatorCray  
Дата: 29.08.20 22:24
Оценка:
Здравствуйте, Basil2, Вы писали:

B>ругается на запись dll на диск (а как ее не писать, когда dll однопоточная а надо несколько; можно в память раскладывать но жаль менять отлаженный механизм)

Эээ, что?
При чём тут однопоточность к записи на диск?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[2]: Как вы уберегаетесь от антивирусов?
От: falcoware Россия https://falcoware.com/rus/
Дата: 29.08.20 23:00
Оценка:
CC>Эээ, что?
CC>При чём тут однопоточность к записи на диск?

А что такого писать в большой файл по частям из разных потоков?
https://falcoware.com/rus/ — Бесплатные Игры!!!
Re[3]: Как вы уберегаетесь от антивирусов?
От: CreatorCray  
Дата: 29.08.20 23:43
Оценка:
Здравствуйте, falcoware, Вы писали:

F>А что такого писать в большой файл по частям из разных потоков?

Ты точно прочитал цитату, про которую я спрашиваю?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[2]: Как вы уберегаетесь от антивирусов?
От: Sharowarsheg  
Дата: 29.08.20 23:47
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, Basil2, Вы писали:


B>>ругается на запись dll на диск (а как ее не писать, когда dll однопоточная а надо несколько; можно в память раскладывать но жаль менять отлаженный механизм)

CC>Эээ, что?
CC>При чём тут однопоточность к записи на диск?

Я попробую угадать —

По одной копии DLL на каждый поток. Поскольку заранее неизвестно, сколько потоков понадобится, для каждого нового потока записывается на диск новая копия DLL со случайным именем, и загружается в этот новый поток.
Re[2]: Как вы уберегаетесь от антивирусов?
От: ov  
Дата: 29.08.20 23:48
Оценка: +1
CC>При чём тут однопоточность к записи на диск?

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

автору могу предложить сразу при инсталляции создавать пул одинаковых длл-ек и юзать по мере надобности
Re[3]: Как вы уберегаетесь от антивирусов?
От: vsb Казахстан  
Дата: 29.08.20 23:54
Оценка:
А почему просто не запустить N процессов, каждый из которых загрузит одну и ту же DLL.
Re[3]: Как вы уберегаетесь от антивирусов?
От: CreatorCray  
Дата: 30.08.20 00:30
Оценка: +1
Здравствуйте, Sharowarsheg, Вы писали:

S>По одной копии DLL на каждый поток. Поскольку заранее неизвестно, сколько потоков понадобится, для каждого нового потока записывается на диск новая копия DLL со случайным именем, и загружается в этот новый поток.


Ой вей.
За такое же канделябром надо!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[4]: Как вы уберегаетесь от антивирусов?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 30.08.20 04:26
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Ой вей.

CC>За такое же канделябром надо!

У Интела jpeg decoder такой был, использовал thread local storage, поэтому мы так и делали — сохраняли копии dll со случайными именами для каждого потока.
Re[5]: Как вы уберегаетесь от антивирусов?
От: CreatorCray  
Дата: 30.08.20 09:58
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>У Интела jpeg decoder такой был, использовал thread local storage, поэтому мы так и делали — сохраняли копии dll со случайными именами для каждого потока.

Погодь, TLS жеж per-thread. Соответственно в разных потоках разные TLS.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[4]: Как вы уберегаетесь от антивирусов?
От: Sharowarsheg  
Дата: 30.08.20 10:00
Оценка:
Здравствуйте, CreatorCray, Вы писали:

S>>По одной копии DLL на каждый поток. Поскольку заранее неизвестно, сколько потоков понадобится, для каждого нового потока записывается на диск новая копия DLL со случайным именем, и загружается в этот новый поток.


CC>Ой вей.

CC>За такое же канделябром надо!

Почему? То, что антивирусникам не нравится какая-то практика, ещё не значит, что эта практика сама по себе плоха. В многопоточной обработке делать для каждого потока по своей копии ресурса — стандартная практика. Эту практику прекрасно можно распространить и на библиотеку, если бы не мусора антивирусники.
Re[6]: Как вы уберегаетесь от антивирусов?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 30.08.20 11:39
Оценка:
Здравствуйте, CreatorCray, Вы писали:

N>>У Интела jpeg decoder такой был, использовал thread local storage, поэтому мы так и делали — сохраняли копии dll со случайными именами для каждого потока.

CC>Погодь, TLS жеж per-thread. Соответственно в разных потоках разные TLS.

Да, они чуть ли не из DllMain там что-то глобальное инициализировали. Почулалось, что её можно было загрузить и использовать только из одного потока.
Re[5]: Как вы уберегаетесь от антивирусов?
От: CreatorCray  
Дата: 30.08.20 21:55
Оценка: +4
Здравствуйте, Sharowarsheg, Вы писали:

S>Почему? То, что антивирусникам не нравится какая-то практика, ещё не значит, что эта практика сама по себе плоха.

Это практика не просто плоха, она отвратительна. Это лютое рукожопие.

S> В многопоточной обработке делать для каждого потока по своей копии ресурса — стандартная практика.

Если либа насколько хреновая что использует статические переменные то запусти несколько процессов вместо того чтоб срать на диск копиями файла.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[7]: Как вы уберегаетесь от антивирусов?
От: CreatorCray  
Дата: 30.08.20 22:11
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Да, они чуть ли не из DllMain там что-то глобальное инициализировали.

Вот в это поверю, а TLS на то и Thread Local чтоб работать с любым колвом потоков.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: Как вы уберегаетесь от антивирусов?
От: Chaser81 Россия https://delphisources.ru/
Дата: 31.08.20 07:42
Оценка:
Здравствуйте, Basil2, Вы писали:

B>У меня один из проектов регулярно детектился на вирус тотал. Но детектился маленькими дерьмовенькими антивирчиками, что было неприятно, но терпимо. А потом внезапно, через несколько дней после важного релиза, экзешник стали детектить Windows Defender и Касперский, а также еще несколько маленьких дерьмовенькими. В Касперского и Майкрософт я написал, они на удивление быстро исправили детект. А у мелкого дерьмеца даже писать-то некуда — у них на сайте только надпись "покупайте наш самый лучший антивирус" и мейл отдела продаж.


B>Сейчас на втором проекте McAfee внезапно ругается на запись dll на диск (а как ее не писать, когда dll однопоточная а надо несколько; можно в память раскладывать но жаль менять отлаженный механизм). Причем на virustotal он не ругается, а именно по факту записи dll). Хочется как-то подстраховаться от проблем.


Такая же история с детектированием.

Каспер быстро фиксит — это да.

А вот на пример McAfee — мне так и не удалось отписать в ТП, т.к. одни отфутболивали к другим и т.д.
И подскажет по Defender'у — почта или куда писали? Там что-то тоже какой-то гимморой помню, так и не нашел куда писать разрабам.
SiteAnalyzer — https://site-analyzer.ru/ — технический аудит сайта
Re[6]: Как вы уберегаетесь от антивирусов?
От: Sharowarsheg  
Дата: 31.08.20 11:00
Оценка:
Здравствуйте, CreatorCray, Вы писали:

S>> В многопоточной обработке делать для каждого потока по своей копии ресурса — стандартная практика.

CC>Если либа насколько хреновая что использует статические переменные то запусти несколько процессов вместо того чтоб срать на диск копиями файла.

Это просто замена — вместо диска будешь память засирать. Плюс к этому взаимодействия становятся дороже. Разница не так велика, как кажется.
Re: Как вы уберегаетесь от антивирусов?
От: edton  
Дата: 31.08.20 12:59
Оценка: -1 :)
Здравствуйте, Basil2, Вы писали:

Если цель — избавиться от фолсов на вирустотал, то это не так сложно — можно весь код приложения вынести в dll, ее зашифровать и поместить в ресурсы exe. Можно и по принципу "матрёшки", когда внутри (в ресурсах) этой dll другие dll и другие файлы, в том числе полноценно заархивированные.
Главное, чтобы в exe было минимум кода и сделать так, чтобы код для эвристики антивирусов не выглядел подозрительно. Ну и про сам инсталлятор (если он в форме exe тоже не забывать)
Тут возникает одно проблема, которую ты описал ниже с записью dll на диск. На вирустотале всё будет чисто, а вот на компах пользователей антивирусы могут ругаться, и все их не проверишь. Тут еще важна видимо последовательность действий при создании этой dll, куда она пишется и тд.
Re: Как вы уберегаетесь от антивирусов?
От: wantus  
Дата: 31.08.20 13:30
Оценка:
Можно грузить DLL с помощью custom PE loader. Более того, при этом DLL может сидеть в памяти, а не на диске.

Хотя есть шанс, что от этого у Касперского будет полный ифаркт, но зато всякая мелочь будет гарантированно молчать.
Re[2]: Как вы уберегаетесь от антивирусов?
От: Michael7 Россия  
Дата: 31.08.20 14:20
Оценка:
Здравствуйте, wantus, Вы писали:

W>Можно грузить DLL с помощью custom PE loader. Более того, при этом DLL может сидеть в памяти, а не на диске.


W>Хотя есть шанс, что от этого у Касперского будет полный ифаркт, но зато всякая мелочь будет гарантированно молчать.


Надо чекбокс в инсталяторе сделать "сносить Касперского".
По умолчанию включенный
Re[6]: Как вы уберегаетесь от антивирусов?
От: Codealot Земля  
Дата: 31.08.20 16:42
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Если либа насколько хреновая что использует статические переменные то запусти несколько процессов вместо того чтоб срать на диск копиями файла.


Можно подумать, что срать копиями процесса — лучше.
Ад пуст, все бесы здесь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.