2012-09-19 85 views
0

我有一個啓動程序,它可以讓用戶選擇他們想要快速打開的exe文件。爲此,他們從文件瀏覽器中選擇文件,並將exe路徑存儲在配置文件中。這是否存在安全問題?我擔心的是,一些惡意軟件可能會改變配置文件以將exe文件更改爲惡意可執行文件,然後應用程序將啓動它。這是一個可行的威脅,還是這種情況下,如果惡意軟件可以重寫文件,它不需要代理應用程序來啓動另一個文件?我可以加密文件,但我不介意用戶通過文本編輯器手動更改設置。從程序啓動文件的安全

回答

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

我喜歡這個想法,但不能惡意軟件也只是用它想要啓動的exe文件的散列替換配置文件中的散列? – Skoder

+0

應該是非常瞭解您的應用程序的惡意軟件。我說,_targeted for you_。這很可能或可能取決於您的執行環境。 – Steve

+0

是的,我正在考慮一些特定的應用程序。它是一款消費者應用程序,因此它可能很受歡迎(或者可能只是未知)。我想還有一種方法是將salt硬編碼到我的程序中,該程序與散列碼一起使用。雖然代碼會被混淆,但如果他們真的嘗試過,有人會發現鹽,但我認爲這會大大降低嘗試將我的應用程序用作代理的吸引力。這是個好主意嗎? – Skoder

1

你都在猜測正確的:如果惡意軟件可以改變你已經陷入困境的磁盤上的文件的內容,而不是改變的配置文件,它可以用其他版本替換該exe文件或格式化該磁盤。