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