Страницы

Поиск по вопросам

среда, 22 января 2020 г.

При установке свойства TopMost приложение воспринимается как троян

#c_sharp #winforms


Писал Winform-приложение, чтобы делать скриншоты выбранной области экрана (аналог
"Ножниц" от Windows).

Для свойства TopMost одной из форм приложения присвоил true, чтобы окно с захваченным
экраном было поверх остальных. В итоге после проверки антивирусом (Windows Defender)
получил Trojan:Win32/Fuerboos.A!cl. Устанавливал false, тестировал - антивирус ничего
не находил. Приложение никак не взаимодействует с какими-либо сетевыми портами. Цифровая
подпись присутствует.

Вот часть кода этой формы (здесь класс полностью):

public Image Image { get; set; }

public Rectangle RectangleSelect
{
    set
    {
        rectangleSelect = new Rectangle();
    }
}

public static Image Snip()
{
    var rectangle = Screen.PrimaryScreen.Bounds;
    using (Bitmap bitmap = new Bitmap(rectangle.Width, rectangle.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb))
    {
        using (Graphics graphics = Graphics.FromImage(bitmap))
            graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);

        using (var snipper = new SnippingTool(bitmap))
        {
            if (snipper.ShowDialog() == DialogResult.OK)
            {
                return snipper.Image;
            }
        }
        return null;
    }
}

public SnippingTool(Bitmap screenShot)
{
    InitializeComponent();
    this.BackgroundImage = screenShot;
    this.ShowInTaskbar = false;
    this.FormBorderStyle = FormBorderStyle.None;
    this.WindowState = FormWindowState.Maximized;
    this.DoubleBuffered = true;
}


Как можно исправить проблему?
P.S. Virustotal вообще не находит ничего.
P.P.S Написал в twitter MS Defender, жду ответа.



EDIT #0: Создал пустой проект с пустой формой, присвоил ей TopMost true - в результате
тот же вирус.
EDIT #1: по совету MSDN.WhiteKnight создал checkbox, установил ему Ckecked=true,
Visible=false, на этом основании устанавливал TopMost=true, это не помогло. Перенес
checkbox в другую форму, тоже не помогло.
    


Ответы

Ответ 1



Хоть проблема была решена обновлением определений вирусов до последней версии наверное, имеет смысл что-то написать для истории. Win32/Fuerboos - это эвристическое правило в Windows Defender, которое может определять различные типы вредоносных программ. Эвристическое правило - это правило, которое использует некий набор характерных признаков для выявления в том числе неизвестных вирусов, в противоположность сигнатурному анализу, выполняющему сравнение последовательности байтов с уже известными сигнатурами вирусов. Таким признаком может быть, например, скачивание файла по заранее прошитому в коде URL - признак трояна / клиента ботнета, скачивающего свой конфиг. На приложения без цифровой подписи, или с бессмысленным именем издателя типа "Неизвестный издатель" в свойствах сборки, эвристические правила срабатывают чаще. Поэтому, при распространении программ желательно позаботиться об этих аспектах. Установка свойства TopMost тоже может таким признаком, особенно для окна большого размера: это может быть расценено как попытка скрыть часть экрана от пользователя и помешать его работе. Хорошо, что MS в обновлении уменьшили роль этого фактора, но все же рекомендуется не злоупотреблять размещением своего окна поверх всех окон (обязательно сделать возможность это отключить).

Комментариев нет:

Отправить комментарий