2013-02-16 60 views
0

問題: 我想知道如果我需要請求特定的權限和/或做一些額外的事情使其「可信」,以防我的程序多次將臨時目錄複製一個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()函數獲取新句柄。

+0

這是錯誤問題的解決方案。問題應該是「我如何在我的圖書館中有多個事例」,答案將是「使用OOP」。當你應該重新考慮你的代碼時,你正在做的是寫一個可怕的,可怕的黑客攻擊。 – SecurityMatt 2013-02-17 01:14:45

+0

如果你不能重寫靜態庫,那麼你正在嘗試的可能是唯一的解決方案。寫入臨時目錄很好。 – 2013-02-17 08:29:47

+0

@SecurityMatt圖書館是由其他人編寫的,我意識到它有多可怕。我只需要忍受它,就像我們有時做的一樣。 – hattenn 2013-02-17 10:01:40

回答

1

複製到臨時目錄不需要任何特殊權限。你可以做到這一點,這應該沒有問題。很多程序都這樣做。

從您的問題來看,您的軟件是否被認定爲惡意軟件並不明確。如果是這樣,我懷疑這是因爲你正在從臨時目錄加載一個dll。

無論如何,你所做的事聽起來像是一個非常大的黑客。你應該重寫你的庫來不使用全局變量。

+0

不幸的是,我不是圖書館的編碼員,我必須以某種方式與之共處。並感謝您的答案。 – hattenn 2013-02-16 22:33:30