从程序启动文件的安全性

时间:2012-09-19 12:26:38

标签: c# security process config launch

我有一个启动器应用,可让用户选择他们想要快速打开的exe个文件。为此,他们从文件浏览器中选择文件,并将exe路径存储在配置文件中。这有安全问题吗?我担心的是,某些恶意软件可能会更改配置文件以将exe文件更改为恶意可执行文件,然后应用程序将启动它。这是一个可行的威胁,还是如果恶意软件可以重写文件,它不需要代理应用程序来启动另一个文件?我可以加密文件,但我不介意用户通过文本编辑器手动更改设置。

2 个答案:

答案 0 :(得分:2)

您可以在配置文件中存储已启动的exe文件的哈希值,并告知用户哈希值是否在执行之间发生变化。

计算文件的哈希值:

public static string ComputeHash(string fileName)
{
    using(FileStream st = File.OpenRead(fileName))
    {
         SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider());
         byte[] hash = sha1.ComputeHash(st);
         return BitConverter.ToString(hash).Replace("-", "");
    }
}

答案 1 :(得分:1)

您猜对了:如果恶意软件可以更改磁盘上文件的内容,那么您已经遇到了麻烦,因为它不是更改配置文件,而是可以将exe替换为其他版本或格式化磁盘。