問題: 我想知道如果我需要請求特定的權限和/或做一些額外的事情使其「可信」,以防我的程序多次將臨時目錄複製一個dll文件。如果我這樣做,該程序是否會被反病毒軟件當作惡意軟件?如果我的程序正在將dll文件複製到臨時目錄,是否需要特定的權限?
示例代碼:
if (needANewCopyOfTheDll)
{
string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".dll";
// Here, copy my dll to the new file.
}
但是,爲什麼?我有一個用C++編寫的靜態庫,它有全局變量,初始化過程以及其他許多東西。我想有該庫的不同實例,我只能在內存中加載相同的dll。因此,我正在考慮將庫包裝在一個實例類中,並且當我需要一個新實例時,只需將dll文件複製到臨時目錄並使用kernel32.dll中的LoadLibrary()
函數獲取新句柄。
這是錯誤問題的解決方案。問題應該是「我如何在我的圖書館中有多個事例」,答案將是「使用OOP」。當你應該重新考慮你的代碼時,你正在做的是寫一個可怕的,可怕的黑客攻擊。 – SecurityMatt 2013-02-17 01:14:45
如果你不能重寫靜態庫,那麼你正在嘗試的可能是唯一的解決方案。寫入臨時目錄很好。 – 2013-02-17 08:29:47
@SecurityMatt圖書館是由其他人編寫的,我意識到它有多可怕。我只需要忍受它,就像我們有時做的一樣。 – hattenn 2013-02-17 10:01:40