diff --git a/.idea/.idea.MalwareMultiScan/.idea/runConfigurations/Dockerfiles_Comodo_Dockerfile.xml b/.idea/.idea.MalwareMultiScan/.idea/runConfigurations/Dockerfiles_Comodo_Dockerfile.xml
new file mode 100644
index 0000000..9cbff99
--- /dev/null
+++ b/.idea/.idea.MalwareMultiScan/.idea/runConfigurations/Dockerfiles_Comodo_Dockerfile.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MalwareMultiScan.Backends/Backends/Implementations/ComodoScanBackend.cs b/MalwareMultiScan.Backends/Backends/Implementations/ComodoScanBackend.cs
new file mode 100644
index 0000000..2d40818
--- /dev/null
+++ b/MalwareMultiScan.Backends/Backends/Implementations/ComodoScanBackend.cs
@@ -0,0 +1,31 @@
+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 ComodoScanBackend : AbstractLocalProcessScanBackend
+ {
+ public ComodoScanBackend(ILogger logger) : base(logger)
+ {
+ }
+
+ public override string Id { get; } = "comodo";
+
+ public override DateTime DatabaseLastUpdate =>
+ File.GetLastWriteTime("/opt/COMODO/scanners/bases.cav");
+
+ protected override string BackendPath { get; } = "/opt/COMODO/cmdscan";
+
+ protected override Regex MatchRegex { get; } =
+ new Regex(@".* ---> Found Virus, Malware Name is (?.*)",
+ RegexOptions.Compiled | RegexOptions.Multiline);
+
+ protected override string GetBackendArguments(string path)
+ {
+ return $"-v -s {path}";
+ }
+ }
+}
\ No newline at end of file
diff --git a/MalwareMultiScan.Backends/Dockerfiles/Comodo.Dockerfile b/MalwareMultiScan.Backends/Dockerfiles/Comodo.Dockerfile
new file mode 100644
index 0000000..7ebead2
--- /dev/null
+++ b/MalwareMultiScan.Backends/Dockerfiles/Comodo.Dockerfile
@@ -0,0 +1,10 @@
+FROM mindcollapse/malware-multi-scan-worker:latest
+
+RUN apt-get update && apt-get install wget -y
+
+RUN wget -q https://cdn.download.comodo.com/cis/download/installs/linux/cav-linux_x64.deb -O /tmp/cav-linux_x64.deb && \
+ dpkg -i /tmp/cav-linux_x64.deb || exit 0
+
+RUN wget -q http://download.comodo.com/av/updates58/sigs/bases/bases.cav -O /opt/COMODO/scanners/bases.cav
+
+ENV BackendType=Comodo
\ No newline at end of file
diff --git a/MalwareMultiScan.Shared/Data/Enums/BackendType.cs b/MalwareMultiScan.Shared/Data/Enums/BackendType.cs
index 2b4ba14..430959c 100644
--- a/MalwareMultiScan.Shared/Data/Enums/BackendType.cs
+++ b/MalwareMultiScan.Shared/Data/Enums/BackendType.cs
@@ -5,6 +5,7 @@ namespace MalwareMultiScan.Shared.Data.Enums
Defender,
Clamav,
DrWeb,
- Kes
+ Kes,
+ Comodo
}
}
\ No newline at end of file
diff --git a/MalwareMultiScan.Worker/Jobs/ScanJob.cs b/MalwareMultiScan.Worker/Jobs/ScanJob.cs
index eb61065..863eb14 100644
--- a/MalwareMultiScan.Worker/Jobs/ScanJob.cs
+++ b/MalwareMultiScan.Worker/Jobs/ScanJob.cs
@@ -35,6 +35,7 @@ namespace MalwareMultiScan.Worker.Jobs
BackendType.Clamav => new ClamavScanBackend(logger),
BackendType.DrWeb => new DrWebScanBackend(logger),
BackendType.Kes => new KesScanBackend(logger),
+ BackendType.Comodo => new ComodoScanBackend(logger),
_ => throw new NotImplementedException()
};
}