using System; using System.IO; using System.Text.RegularExpressions; using MalwareMultiScan.Backends.Backends.Abstracts; using Microsoft.Extensions.Logging; namespace MalwareMultiScan.Backends.Backends.Implementations { public class DrWebScanBackend : AbstractLocalProcessScanBackend { public DrWebScanBackend(ILogger logger) : base(logger) { } public override string Id { get; } = "drweb"; public override DateTime DatabaseLastUpdate => File.GetLastWriteTime("/var/opt/drweb.com/version/version.ini"); protected override string BackendPath { get; } = "/usr/bin/drweb-ctl"; protected override Regex MatchRegex { get; } = new Regex(@".* - infected with (?[\S ]+)", RegexOptions.Compiled | RegexOptions.Multiline); protected override bool ParseStdErr { get; } = false; protected override string GetBackendArguments(string path) { return $"scan {path}"; } } }