0
我正在挖掘.NET源代碼,並且發現了一個COM對象的interop類。如果我有GUID,我該如何去查找有問題的DLL和類(並且就此而言,.NET如何根據GUID加載DLL)?如何挖掘COM對象?
它在GAC某處嗎?
我正在挖掘.NET源代碼,並且發現了一個COM對象的interop類。如果我有GUID,我該如何去查找有問題的DLL和類(並且就此而言,.NET如何根據GUID加載DLL)?如何挖掘COM對象?
它在GAC某處嗎?
COM dll未放入GAC(僅適用於.NET程序集 - 因此名稱爲全局程序集高速緩存)。
如果您知道COM組件的指導並想知道實際二進制文件的路徑,那麼您可以在註冊表中使用它。
開始regedit.exe
,導航到
HKEY_CLASSES_ROOT\CLSID\<guid value>\InprocServer32
,檢查鍵的默認值。另外,對於命令行愛好者,使用reg.exe
工具:
reg query HKEY_CLASSES_ROOT\CLSID\{0000002F-0000-0000-C000-000000000046}
HKEY_CLASSES_ROOT\CLSID\{0000002F-0000-0000-C000-000000000046}\InprocServer32 (Default) REG_SZ C:\Windows\System32\oleaut32.dll ThreadingModel REG_SZ Both
啊,是的,不是GAC。 – McKay
很廣泛的問題,這是很容易回答用在何處註冊表和磁盤看,如果你描述明確提示你發現了什麼。 –
@HansPassant是的,這是一個廣泛的問題。主要是因爲我不知道該問什麼。我正在研究http://stackoverflow.com/questions/33615152/how-does-wpf-store-the-language-dictionaries,但沒有人回答,所以我正在挖掘自己,並學習一點關於COM一路上。 – McKay
這不會讓你走得很遠,它使用無證API。您誤讀了Guid,CLSID是333E6924-4353-4934-A7BE-5FB5BDDDB2D6。這將把你帶到c:\ windows \ system32 \ NaturalLanguage6.dll。用C++編寫,你不能反編譯它。它嵌入了類型庫,您可以通過從Visual Studio命令提示符運行OleView.exe來查看它。使用它的文件>查看Typelib菜單命令。但是,只要你會得到。 –