Nota importante antes del uso: Tenga en cuenta el acuerdo de TOS. Les da acceso total a todo: "Cuando carga o envía contenido, le da a VirusTotal (y a aquellos con quienes trabajamos) una licencia mundial, libre de regalías, irrevocable y transferible para usar, editar, alojar, almacenar, reproducir, modificar, crear trabajos derivados, comunicar, publicar, realizar públicamente, mostrar públicamente y distribuir dicho contenido ".
En lugar de utilizar un programa local Antivirus (y por lo tanto la unión de su programa para ese producto antivirus en particular y solicitar a sus clientes a instalar ese producto antivirus) que podría utilizar los servicios de VirusTotal.com
Este sitio ofrece un servicio gratuito de cuyo archivo se proporciona como entrada para numerosos productos antivirus y recibe un informe detallado con las evidencias resultantes del proceso de escaneo. De esta manera, su solución ya no está vinculada a un producto antivirus específico (aunque esté vinculado a disponibilidad de Internet)
El sitio también proporciona una interfaz de programación de aplicaciones que permite un enfoque programático de su motor de exploración.
Here a VirusTotal.NET a library for this API
Here the comprensive documentation about their API
Here the documentation with examples in Python of their interface
Y debido a que hay una respuesta completa sin código, esto es tomado directamente desde el cliente de ejemplo se incluye con el VirusTotal.NET biblioteca
static void Main(string[] args)
{
VirusTotal virusTotal = new VirusTotal(ConfigurationManager.AppSettings["ApiKey"]);
//Use HTTPS instead of HTTP
virusTotal.UseTLS = true;
//Create the EICAR test virus. See http://www.eicar.org/86-0-Intended-use.html
FileInfo fileInfo = new FileInfo("EICAR.txt");
File.WriteAllText(fileInfo.FullName, @"X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");
//Check if the file has been scanned before.
FileReport fileReport = virusTotal.GetFileReport(fileInfo);
bool hasFileBeenScannedBefore = fileReport.ResponseCode == ReportResponseCode.Present;
Console.WriteLine("File has been scanned before: " + (hasFileBeenScannedBefore ? "Yes" : "No"));
//If the file has been scanned before, the results are embedded inside the report.
if (hasFileBeenScannedBefore)
{
PrintScan(fileReport);
}
else
{
ScanResult fileResult = virusTotal.ScanFile(fileInfo);
PrintScan(fileResult);
}
... continue with testing a web site ....
}
RENUNCIA
estoy de ninguna manera involucrado con ellos. Estoy escribiendo esta respuesta solo porque parece ser una buena actualización para estas respuestas de 4 años.
Compruebe esta [pregunta] (http://stackoverflow.com/questions/194013/anti-virus-integration-with-net-application). Debería ser de alguna ayuda. – Shoban