14

我一直在寻找一段时间,但我没有找到任何适合这个问题的答案。我注意到我的防病毒软件开始将我的应用程序检测为特洛伊木马。我的杀毒软件是 Kaspersky 2013,这是它检测到的木马类型。 http://www.securelist.com/en/descriptions/HEUR:Trojan.Win32.Generic

我的应用程序只做 3 件事:

  • 检查加密狗是否连接到计算机

  • 使用加密狗密钥解密 dll(即具有自定义入口点的 wpf 类库)

  • 通过自定义入口点启动 dll。

问题是类似的代码在类似的应用程序中运行,但在这种情况下,我的防病毒软件将其检测为特洛伊木马。我注意到有问题的代码部分是这样的:

    public static void ExecuteAssembly(byte[] Bytes)
    {
        Assembly a = Assembly.Load(Bytes);
        foreach (Type type in a.GetTypes())
        {
            try
            {
                MethodInfo main = type.GetMethod("Main");
                if (main != null)
                    main.Invoke(type, new object[] { });
            }
            catch { }
        }
    }

我能做些什么来避免这个问题?我没有做木马,我无法避免使用这部分代码来启动我的 dll。所以我认为代码不是问题。提前致谢。

马蒂亚

编辑:

我已将文件上传到 Egor 告诉我的网站。这就是结果。 https://www.virustotal.com/en/file/7ee30172ffda51f4b99700d10df2816403cbdc8f17bfe90f7deef81a88639da3/analysis/1369058630/

你能给我什么建议?将文件提交为误报或更改代码之类的不同内容?我是这类问题的新手,所以我不知道该怎么做。再次感谢!

4

2 回答 2

5

虽然我无法回答您如何通过更改代码来解决它,但我可以告诉您,您不是第一个遇到此问题的人。我之前在自己的一个程序中遇到过它,似乎甚至有些游戏被卡巴斯基检测为该木马。就像其他人在评论中所说的那样,您可以将此作为误报提交给卡巴斯基。我按照此链接上的说明进行操作:如何向病毒实验室报告未检测到的病毒或误报,请不要在论坛中提供指向恶意软件的链接!

于 2013-05-17T18:32:36.087 回答
4

您遇到了启发式检测 - 这意味着卡巴斯基已经评估了有关您的 dll 的每个负面和正面属性(从导入表到文件大小和调用的实际函数的所有内容)并确定其等级低于推荐的良好可执行文件。

我猜测示例代码是导致检测的原因 - 这意味着您删除了此代码部分,突然卡巴斯基对它没问题。如果是这样,您可以通过使用反射调用 Assembly.Load 来欺骗卡巴斯基扫描仪。(这可能是它被检测到的原因——木马很常见将更多模块下载为 dll 并从内存中加载它们)

typeof(Assembly).GetMethod("Load").Invoke(null,new object[] {Bytes});
于 2013-10-25T17:57:45.757 回答