簡體   English   中英

反編譯預編譯的源代碼ASP.NET

[英]Decompile Precompiled Source Code ASP.NET

我們在生產中有一個應用程序,並且代碼為預編譯形式。 開發該應用程序的開發人員離開了公司,我們沒有源代碼的任何備份。 我們唯一的訪問權限是服務器中的“預編譯”代碼。 我們現在需要修復應用程序中的問題。

有什么辦法可以反編譯(提取到實際的源代碼)預編譯的代碼?

.NET Reflector中打開DLL。

更新@xOn的答案:

由於最近的源代碼管理災難,我不得不從DLL中恢復我的項目。 因此,可悲的是,我對該程序非常了解:

  1. 從此處獲取.Net Reflector: http//www.red-gate.com/products/dotnet-development/reflector/

  2. 您似乎不需要FileDisassembler。

  3. 將您的垃圾箱加載到Reflector中或雙擊它們。

  4. 請注意,.Net框架可能未維護您的原始項目文件結構。 因此,如果您的某些ASPX頁面在不同的.cs文件中共享相同的基本類名稱(IE Inherits標記相同,但CodeFile標記不同),則您將無法簡單地“導出源代碼”。 不要盲目地導出源文件。 它不會工作。

  5. 在只啟動舊的生成按鈕之前,仍然需要完成一些工作。 例如-DLL可以直接引用屬性的getter / setter。 您將不得不解決該問題。

祝好運。

從...開始:

http://www.red-gate.com/products/dotnet-development/reflector/

...加:

http://www.denisbauer.com/NETTools/FileDisassembler.aspx

您必須重新編譯后者,以將其與反射器的v6.5(最新的,截至本文)一起鏈接。如果您希望避免必須將單個類復制並粘貼到文件中,則它是一個很好的附加組件。手。 它將整個程序集轉儲為.cs文件。 我認為它甚至可能會生成一個csproj。

兩種工具都是免費的。

當您安裝.net Reflectioner.its時,將其導入Visual Studio。 然后您在菜單欄上看到了.net反射器工具。

單擊.net反射器>>選擇Asseblies(Dll文件)進行調試。

我發現可以使用.NET Reflector工具讀取dll,但不能提取源代碼。 而且,一旦對Web表單進行了預編譯,我們甚至無法獲取文件背后的代碼。 我們所能做的就是調試和分析代碼。

我遇到了類似的問題,並使用Reflector對其進行了反編譯。 我得到了源代碼,然后更改了所需的位,然后重新構建它。 然后,我再次將該dll復制到生產站點。 它開始反映出我的變化。 這非常容易,一點也不困難,也許是因為預編譯站點的每個頁面都有dll,並且是可更新的,因此dll中只有代碼隱藏文件。

供參考: http : //www.reflector.net/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM