Антивирус ложно положительный в моем макросе VBA Excel - PullRequest
0 голосов
/ 08 ноября 2018

Я только что столкнулся с еще более раздражающей проблемой . Внезапно Windows Defender начал отмечать один из моих файлов Excel, содержащий макрос-код VBA (при загрузке из браузера), как вирус. Конкретный регистрируемый вирус:

Trojan: O97M / Foretype.A мл

Поиск в Google показывает следующую информацию:

O97M.Downloader - это общее определение макросов Microsoft Office. что скачать другие угрозы. Они обычно содержатся в других Документы Microsoft Office и могут поступить на скомпрометированный компьютер через вложения или после загрузки с веб-сайта.

Отлично, когда защитник Windows обнаруживает его, он в основном уничтожает файл, а когда вы пытаетесь открыть его, Excel заявляет, что файл "поврежден". Я хотел бы опубликовать свой VBA-файл на http://www.virustotal.com, однако он содержит тонны собственного кода VBA, который нельзя передать широкому сообществу. Интересно, есть ли сайт, который выполняет то же самое с другими условиями?

Это только недавно началось и затронуло только нескольких пользователей / клиентов. Я не уверен в распределении клиентов, у которых это установлено, и в каких версиях защитника Windows они работают. Я беспокоюсь, что влияние этого будет увеличиваться, пока не пострадает большое количество наших клиентов. Еще более тревожно то, что часто клиенты могут загрузить одну версию без проблем, но когда они загружают файл (идентичный код VBA) из другого источника, они сталкиваются с проблемой, может ли источник загрузки повлиять на вероятность пометки файлов?

Основной вопрос

Что приводит к тому, что файл Excel VBA помечается как вирус "O97M" и как я могу предотвратить его пометку?

Похожие проблемы

Если я подпишу свой макрос VBA , повлияет ли это на вероятность обнаружения вируса?

Это другие распространенные практики, которые я мог бы изменить, которые повлияли бы на вероятность ложных срабатываний?

Что такое «Троян: O97M / Foretype.A! Ml»? Страница окна содержит так мало информации, что она также может не существовать, Symantec также довольно бесполезен, (может быть, я здесь совершенно не осведомлен), есть ли централизованное хранилище для обнаружения вирусов? Я мог бы предположить, что люди могут не захотеть делиться этим, и это может отличаться от продукта, но я был бы заинтересован в любой информации, имеющей отношение к этому ...

Внешние библиотеки

Я также использую следующий внешний код:

https://gist.github.com/brucemcpherson/3414365/

https://www.thespreadsheetguru.com/the-code-vault/2014/4/23/loop-through-all-excel-files-in-a-given-folder

Как использовать VBA SaveAs без закрытия вызывающей книги?

Я также использую следующие оконные функции:

Public Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As Long) As LongPtr
Public Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
Public Declare PtrSafe Function GetWindowRect Lib "user32" (ByVal hWnd As LongPtr, lpRect As RECT) As LongPtr
Public Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hWnd As LongPtr, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPtr
Public Declare PtrSafe Function SetParent Lib "user32.dll" (ByVal hWndChild As LongPtr, ByVal hWndNewParent As LongPtr) As LongPtr
Public Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hWnd As LongPtr) As LongPtr
Public Declare PtrSafe Function GetDeviceCaps Lib "gdi32.dll" (ByVal hdc As LongPtr, ByVal nIndex As LongPtr) As LongPtr
Public Declare PtrSafe Function GetDC Lib "user32.dll" (ByVal hWnd As LongPtr) As LongPtr
Public Declare PtrSafe Function ReleaseDC Lib "user32.dll" (ByVal hWnd As LongPtr, ByVal hdc As LongPtr) As LongPtr
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare PtrSafe Function SetLastError Lib "kernel32.dll" (ByVal dwErrCode As Long) As Long
Public Declare PtrSafe Function GetActiveWindow Lib "user32.dll" () As Long
Public Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hWnd As LongPtr) As Long

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Мы обратились к Microsoft , и они ответили следующим сообщением (по какой-то причине не копируемым в тексте):

enter image description here

Так что я думаю, что это была логика JSON VBA, и я думаю, что она была решена (я не видел это повторение), хотя это действительно трудно сказать.

0 голосов
/ 11 ноября 2018

Начал получать такую ​​же проблему с одним из моих xlsm-файлов также пару дней назад (2018-10-29). Я сделал файл с нуля, поэтому я знаю, что он не содержит вирусов.

Не знаю, реагирует ли Защитник Windows на одну из следующих вещей:

  1. Файл хранится на моем OneDrive
  2. Содержит код для загрузки из Интернета (json-данные и изображения)

Единственное, что я не сделал самостоятельно, это код, который я использую: https://github.com/VBA-tools/VBA-JSON/blob/master/JsonConverter.bas

Я предполагаю, что Защитник Windows реагирует на код JsonConverter, возможно, "Trojan: O97M / Foretype.A! Ml" использует подобный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...