#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 в обновлении уменьшили роль этого фактора, но все же рекомендуется не злоупотреблять размещением своего окна поверх всех окон (обязательно сделать возможность это отключить).
Комментариев нет:
Отправить комментарий