你怎么知道默认的.Net dll rootkit入侵?

时间:2013-09-13 09:34:13

标签: c# .net dll

如何确定您的默认.net dll是否已更改/修改/黑客攻击?

System.Console.WriteLine解释我的意思为例。

如果WriteLine()是注入的代码,则输出两次,如下所示,

Console.WriteLine("Hello Programmers");
Output:
Hello Programmers
Hello Programmers

2 个答案:

答案 0 :(得分:1)

与验证计算机上任何其他软件的完整性的方式相同:在确定检查工具可信任后,请在可靠来源上进行检查。这有点像22。基本上,您需要获得比攻击者更好的保护,这取决于攻击者可能介于死亡之间,绝对不可能。

作为第一个创可贴,请尝试卸载并重新安装该框架,并希望与Microsoft的互联网连接仍然是您计算机上值得信赖的来源。

答案 1 :(得分:1)

请注意,并非所有内容都需要“注入”才能让您获得奇怪的输出。

这是一个LINQPad程序,除了正常的合法.NET代码之外,它可以复制你的问题:

void Main()
{
    Inject();

    Console.WriteLine("Hello Programmers");
}

public static void Inject()
{
    Console.SetOut(new InjectedTextWriter(Console.Out));
}

public class InjectedTextWriter : TextWriter
{
    private readonly TextWriter _InternalWriter;

    public InjectedTextWriter(TextWriter internalWriter)
    {
        _InternalWriter = internalWriter;
    }

    public override Encoding Encoding
    {
        get
        {
            return _InternalWriter.Encoding;
        }
    }

    public override void Write(string text)
    {
        _InternalWriter.Write(text);
        _InternalWriter.Write(text);
    }

    public override void WriteLine(string text)
    {
        _InternalWriter.WriteLine(text);
        _InternalWriter.WriteLine(text);
    }
}