Malwarebytes dá aviso de trojan para C # básico “Hello World!” programa

85

Basicamente, acabei de fazer uma varredura em meu computador com o Malwarebytes (atualizei as definições antes de executar) e ele disse que meu programa "helloworld" escrito em C # tem um cavalo de Tróia .

Eu sei que este é um falso positivo, já que escrevi o programa há 2 a 3 dias atrás e segui um pequeno tutorial no site para fazer o programa que confio. Eu sou novo em C #, mas não consigo ver nada que forneça um aviso de cavalo de Tróia.

Relatório Malwarebytes

O programa sinaliza o executável, mas não o arquivo de origem.

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 é o código, escrito em Notepad ++ , e é executado a partir da linha de comando ( Cygwin , na verdade). Por que sinaliza isso? É algo que, como um programador C # iniciante, eu deveria saber?

Qwurticus
fonte
1
Devo acrescentar que nenhum dos outros arquivos de origem C # ou executáveis ​​na mesma pasta são sinalizados.
Qwurticus,
2
Você baixou um exemplo de código de um site? Pode ser um código em execução que você não percebe que está sendo executado por meio de etapas de compilação personalizadas ou referências a dlls na pasta bin etc. Não vejo nada lá que esteja relacionado a uma assinatura de vírus.
BateTech
13
não relacionado, mas a imagem neste post foi bloqueada por sophos com um aviso de malware
puser
4
Além disso, embora não seja provável neste cenário, vale a pena observar que só porque seu código-fonte não contém código inválido, não significa que seu executável não: scienceblogs.com/goodmath/2007/04/15/…
Fabio Beltramini
4
No meu trabalho de tese, eu uso cerca de 14 antivírus para testar mais de 2500 malwares e descobri que o Malwarebytes é um antivírus muito pobre. Aqui estão os slides - Slide-32 para gráfico de comparação
Grijesh Chauhan,

Respostas:

131

O problema pode ser que o Trojan Backdoor.MSIL.PGen é normalmente chamado de 'hello.exe'. O nome do seu executável é provavelmente 'hello.exe' ou 'helloworld.exe'.

Apenas renomeie seu projeto ou altere o executável de saída para algo que não contenha 'hello', e ele deve parar de detectá-lo.

Essa resposta é um tanto especulativa, mas dado o nome do seu projeto e um histórico de detecção excessivamente agressiva desse malware (veja aqui ), parece uma tentativa razoável.

Baldrick
fonte
59
Isso é um software antivírus cruddy lá.
tom.dietrich
74
Estou surpreso que um software de tão alto nível como MalwareBytes sinalizaria um falso positivo com base apenas no nome do arquivo
Brad Thomas,
14
@BradThomas: Bem, não tenho certeza se esse é o motivo, mas dado o nome do projeto acima, é uma grande arma fumegante ... :) Há também uma história de MalwareBytes detectando com excesso de zelo este cavalo de Tróia: forums.malwarebytes.org /index.php?showtopic=135095
Baldrick
23
Você estava certo ... Era o nome. XP. Acho isso muito estúpido, tbh. Alterou para um nome diferente e não o sinalizou. Obrigado!
Qwurticus,
10
Eu diria que a heurística é (a) contém código MSIL (o tipo de bytecode produzido pelo compilador C #), (b) é denominado "hello.exe". Um desses por si só não é suficiente.
nneonneo,
14

A resposta de Baldrick provavelmente está correta, mas também há outra possibilidade: Existem vírus que procuram executáveis ​​aleatórios no sistema e os modificam inserindo seu próprio código neles (esta é, de fato, a definição original de " vírus de computador "). Quando você descobre que um executável que você sabe que é confiável repentinamente é relatado como infectado, você pode estar lidando com um vírus.

Mas, a menos que seu scanner de vírus relate outros executáveis ​​como o mesmo vírus, isso é improvável.

Philipp
fonte
6
Eu gostaria que ele tivesse postado o executável. Eu ficaria muito divertido se alguém o descompilasse e descobrisse que ele contém um vírus.
Navin,
3
@Navin Se ele tivesse postado, eu o teria chamado por publicar conscientemente um executável potencialmente malicioso.
Philipp,
@Navin E é por isso que Philipp disse "um executável potencialmente malicioso".
O cara com o chapéu
3
@TheGuywithTheHat Bastante justo. Ainda acho que é seguro postá-lo junto com um aviso.
Navin,
0

Acabei de descobrir isso: altere um pouco o "Guid" em AssemblyInfo.cs e tente novamente.

Isso funcionou para mim.

SuperBerry
fonte