我們有一些內部專有的數據庫CLR存儲過程(MSSQL 2005),這些過程由前員工放在一起,他們錯誤地(並且從未檢查過)用於構建程序集的.NET源代碼。這些沒有被混淆。是否可以反編譯SQL Server CLR存儲過程程序集?
是否有可能將程序集反向工程到可以編輯源代碼並重新編譯的狀態?
我們有一些內部專有的數據庫CLR存儲過程(MSSQL 2005),這些過程由前員工放在一起,他們錯誤地(並且從未檢查過)用於構建程序集的.NET源代碼。這些沒有被混淆。是否可以反編譯SQL Server CLR存儲過程程序集?
是否有可能將程序集反向工程到可以編輯源代碼並重新編譯的狀態?
「Obtusified?」我不知道薩拉佩林是這樣的! +1 – 2010-11-19 05:16:46
你好!其實,我從來沒有找到這個詞的正確用法。 :P – Andrew 2010-11-19 05:20:47
非常感謝,但是我確實有問題。我從服務器提取DLL使用在這裏找到的方法:http://serverfault.com/questions/139703/extracting-a-sqlclr-assembly - 但是,當我在反射器中打開,它說:「對象引用未設置到一個對象的一個實例。「它打開了我編譯好的任何其他.NET程序集。有任何想法嗎? – Dane 2010-11-19 06:32:25
有一對夫婦的建議在這裏:
Best (free?) decompiler for C# with Visual Studio integration?
不要忘記,你還可以使用SQL Server Profiler來捕獲SQL語句。
將組件解壓縮到一個DLL後,可以使用開源ILSpy對其進行反編譯。在編譯時您將無法看到所有編譯器選項,也無法看到源代碼是如何分解爲單獨的文件的。不過,你會看到足夠的能夠創建一個Visual Studio項目,創建Properties\AssemblyInfo.cs
文件,添加引用等,以便您可以正確地添加它以便源代碼管理,然後開始編輯它。
您是否嘗試過使用反射器?它通常非常擅長反編譯。 – cdhowie 2010-11-19 05:15:37