Básicamente, acabo de ejecutar un escaneo de mi computadora con Malwarebytes (actualicé las definiciones antes de ejecutarlo), y dijo que mi programa "helloworld" escrito en C # tiene un troyano .
Sé con certeza que esto es un falso positivo, ya que solo escribí el programa hace 2-3 días y seguí un pequeño sitio web tutorial para hacer el programa en el que confío. Soy nuevo en C #, pero no veo nada que pueda dar una advertencia de troyano.
El programa marca el ejecutable, pero no el archivo fuente.
using System;
namespace HelloWorldApplication
{
class HelloWorld
{
static void Main(string[] args)
{
Console.WriteLine("\n\tHello World!");
Console.WriteLine("This is my first C# program.\nI'm so proud of myself!");
Console.WriteLine("\tTeehee!");
}
}
}
Este es el código, escrito en Notepad ++ , y se ejecuta desde la línea de comandos ( Cygwin , en realidad). ¿Por qué marca esto? ¿Es algo que, como programador de C # en ciernes, debería conocer?
c#
false-positive
trojan
Qwurticus
fuente
fuente
Respuestas:
El problema podría ser que el troyano Backdoor.MSIL.PGen normalmente se llama "hello.exe". El nombre de su ejecutable es presumiblemente 'hello.exe' o 'helloworld.exe'.
Simplemente cambie el nombre de su proyecto o cambie el ejecutable de salida a algo que no contenga 'hola', y debería dejar de detectarlo.
Esta respuesta es algo especulativa, pero dado el nombre de su proyecto y un historial de detección demasiado agresiva de este malware (ver aquí ), parece una puñalada razonable.
fuente
La respuesta de Baldrick probablemente sea correcta, pero también existe otra posibilidad: hay virus que buscan ejecutables aleatorios en el sistema y los modifican insertando su propio código en ellos (esta es, de hecho, la definición original de " virus informático "). Cuando descubra que un ejecutable que sabe que es confiable de repente se informa como infectado, es posible que esté lidiando con dicho virus.
Pero a menos que su escáner de virus informe otros ejecutables como el mismo virus, esto es poco probable.
fuente
Me acabo de dar cuenta de esto: cambie un poco el "Guid" en AssemblyInfo.cs y vuelva a intentarlo.
Eso funcionó para mí.
fuente