【问题标题】:Malwarebytes gives trojan warning for basic C# "Hello World!" programMalwarebytes 为基本 C#“Hello World!”提供木马警告程序
【发布时间】:2014-05-20 12:27:24
【问题描述】:

基本上,我只是用Malwarebytes 对我的计算机进行了扫描(在运行之前更新了定义),它说我用C# 编写的“helloworld”程序有一个trojan

我知道这是一个误报,因为我仅在 2-3 天前编写了该程序,并按照一个小型教程网站制作了我信任的程序。我是 C# 新手,但我根本看不到任何会发出木马警告的东西。

程序标记可执行文件,但不标记源文件。

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!");
        }
    }
}

这是用Notepad++ 编写的代码,它是从命令行运行的(实际上是Cygwin)。为什么要标记这个?作为一个初出茅庐的 C# 程序员,我应该知道些什么吗?

【问题讨论】:

  • 我应该补充一点,同一文件夹中的其他 C# 源文件或可执行文件均未标记。
  • 您是否从网站下载了代码示例?可能是代码正在执行,您没有意识到是通过自定义构建步骤或对 bin 文件夹中的 dll 的引用等执行的。我没有看到任何与病毒签名相关的内容。
  • 不相关,但本帖中的图片已被 sophos 屏蔽并发出恶意软件警告
  • 此外,即使在这种情况下不太可能发生,但值得注意的是,仅仅因为您的源代码不包含错误代码并不意味着您的可执行文件不包含:scienceblogs.com/goodmath/2007/04/15/…
  • 在我的论文工作中,我使用了大约 14 种防病毒软件来测试超过 2500 种恶意软件,发现 Malwarebytes 的防病毒软件非常差。 Here is slides - Slide-32 用于比较图

标签: c# false-positive trojan


【解决方案1】:

问题可能是 Backdoor.MSIL.PGen 木马通常被称为“hello.exe”。您的可执行文件的名称可能是“hello.exe”或“helloworld.exe”。

只需重命名您的项目或将输出可执行文件更改为不包含“hello”的内容,它应该会停止检测它。

这个答案有点推测,但考虑到您的项目名称,以及对该恶意软件过度检测的历史(参见here),这似乎是一个合理的尝试。

【讨论】:

  • 那里有一些肮脏的杀毒软件。
  • 我很惊讶像 MalwareBytes 这样高知名度的软件会仅根据文件名标记误报
  • @BradThomas:嗯,我不确定是不是这个原因,但鉴于上述项目的名称,这是一个主要的确凿证据...... :)也是 MalwareBytes 过分热心检测此木马的历史:forums.malwarebytes.org/index.php?showtopic=135095
  • 你说得对……就是名字。经验值。我觉得这很愚蠢,tbh。将其更改为不同的名称,但它没有标记它。谢谢!
  • 我猜启发式是 (a) 包含 MSIL 代码(由 C# 编译器生成的那种字节码),(b) 被命名为“hello.exe”。其中一个是不够的。
【解决方案2】:

Baldrick 的回答很可能是正确的,但也有另一种可能:有病毒会在系统上搜索随机的可执行文件,并通过将自己的代码插入其中来修改它们(实际上,这就是“computer virus”)。当您发现某个您知道值得信赖的可执行文件突然被报告为受感染时,您可能正在处理此类病毒。

但除非您的病毒扫描程序将其他可执行文件报告为相同的病毒,否则这不太可能。

【讨论】:

  • 我希望他发布了可执行文件。如果有人反编译它并发现它确实包含病毒,我会很有趣。
  • @Navin 如果他发布了它,我会打电话给他,因为他故意发布了一个潜在的恶意可执行文件。
  • @Navin 这就是为什么 Philipp 说“一个潜在的恶意可执行文件。”
  • @TheGuywithTheHat 够公平的。我仍然认为将其与警告一起发布是安全的。
【解决方案3】:

我刚刚想通了:稍微更改一下 AssemblyInfo.cs 中的“Guid”,然后再试一次。

这对我有用。

【讨论】:

    猜你喜欢
    • 2012-03-16
    • 2023-04-09
    • 2021-10-13
    • 2011-03-21
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多