我在客戶端程序中內置了一些安全性,該程序從網上下載DLL並調用該DLL內的函數。該DLL是強命名的,並且DLL中的函數使用Assembly.GetCallingAssembly()
來確定調用程序集,以便我可以準確地找到調用它的程序的路徑。從那裏我們對組件進行散列檢查,並驗證它是否正確。確定真正的調用程序集的方法
我們有一些人已經以完全信任模式獲得了自己的附件,並且能夠在調用GetCallingAssembly
調用時指向真正的可執行文件,同時它們運行修改後的版本。有什麼其他的GetCallingAssembly
,我可以用來獲得真正的來電者?一些調用堆棧或可能提供真正可執行文件的東西,因爲GetCallingAssembly
似乎很容易被欺騙。
嘗試'GetEntryAssembly'方法來代替 – hazzik
請注意,如果您允許完全信任,他們也可以修補GetEntryAssembly。如果您允許完全信任,他們還可以修補您下載的DLL並禁用哈希檢查。 –