卡巴斯基将我的控制台应用程序检测为木马

时间:2013-05-17 16:17:26

标签: c# console .net-assembly

我一直在寻找,但我没有找到任何合适的答案。 我注意到我的防病毒软件开始将我的应用程序检测为木马。 我的防病毒软件是卡巴斯基2013,这是它检测到的木马类型。 http://www.securelist.com/en/descriptions/HEUR:Trojan.Win32.Generic

我的申请只做了三件事:

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

  • 使用加密狗密钥解密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/

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

2 个答案:

答案 0 :(得分:5)

虽然我无法通过更改代码为您解答如何解决问题,但我可以告诉您,您不是第一个遇到此问题的人。我之前用自己的一个程序遇到过它,似乎有些游戏被卡巴斯基检测为特洛伊木马。像其他人在评论中所说,你可以将此作为假阳性提交给卡巴斯基。我按照此链接上的说明操作:How to report undetected viruses or false positives to the viruslab, No links to malware in the forum please!

答案 1 :(得分:4)

你正在遇到一个启发式检测 - 这意味着卡巴斯基已经评估了关于你的dll的每个负面和正面属性(从导入表到文件大小和所谓的实际函数的每一件事),并确定它的等级低于推荐的等级可执行文件。

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

typeof(Assembly).GetMethod("Load").Invoke(null,new object[] {Bytes});