題:
有什麼方法可以反編譯.NET程序集或程序?
APerson
2013-03-20 21:18:40 UTC
view on stackexchange narkive permalink

是否有可用的工具來獲取您已經從C#或Visual Basic編譯的已經編譯的.dll或.exe文件,並從中獲取原始源代碼?

ILSpy可能是最佳選擇(恕我直言)
因為反編譯.net非常容易,所以大多數.net代碼都受到保護或模糊處理。因此,為了使用答案中建議的任何工具,必須首先刪除此保護(如果有)。
七 答案:
Mick
2013-03-20 21:24:06 UTC
view on stackexchange narkive permalink

ILSpy是一個很棒的開源反編譯器。

ILSpy功能

  • 彙編瀏覽
  • IL反彙編
  • 支持C#5.0“異步”
  • 反編譯為C#
  • 支持lambda和'yield return'
  • 顯示XML文檔
  • 反編譯到VB
  • 節省資源
  • 將反編譯後的程序集另存為.csproj
  • 搜索類型/方法/屬性(子字符串)
  • 基於超鏈接的類型/方法/屬性導航
  • 基本/派生類型導航
  • 導航歷史記錄
  • 從BAML到XAML反編譯器
  • 將程序集另存為C#項目
  • 查找字段/方法的用法
  • 可通過插件(MEF)擴展
  • 程序集列表
  • ul>
將它與此有用的Visual Studio附加組件結合使用[SourceFly](http://public.carr-designs.com/releases/SourceFlySetup.msi),以便可以從Visual Studio打開ILSpy。儘管它在最新版本中不支持Visual Studio 2012。
Glides
2013-03-21 03:38:55 UTC
view on stackexchange narkive permalink

在成功使用之前,我已經使用過 JetBrains dotPeek(免費)。

我曾經使用過的任何JetBrains軟件都非常可靠。

它不是完全“原始源代碼”,但是它是非常易讀的C#-關於我希望得到的最接近的東西。從他們的網站報價:

dotPeek有什麼優點?

  1. 將.NET 1.0-4.5程序集反編譯為C#
  2. 支持。 dll .exe .zip .vsix .nupkg .winmd 文件
  3. 快速跳轉到類型,程序集,符號或類型成員
  4. 輕鬆導航至符號聲明,實現,派生符號和基本符號,以及更多
  5. 通過高級顯示搜索結果來精確搜索符號用法
  6. 繼承鏈概述
  7. 支持從源服務器下載代碼
  8. 語法突出顯示
  9. 完全鍵盤支持
  10. dotPeek是免費的!
  11. ol>

最後一點是免費啤酒中的,不是免費的。如言論自由。

APerson
2013-03-20 21:18:40 UTC
view on stackexchange narkive permalink

有一個名為 JustDecompile的免費工具可以做到這一點。

一些功能:

  • 創建Visual Studio項目從裝配體中導出,以導出丟失的項目或獲得多個類,而無需複制和粘貼代碼。目前,JustDecompile只能將反編譯的代碼導出到C#。
  • 直接從命令提示符處導出代碼
  • 快速加載核心.NET程序集(.NET 2,.NET3.5 ,.NET 4,.NET 4.5,WinRT元數據和Silverlight)
  • 直接編輯加載到程序中的程序集
JustDecompile有一個De4Dot Deobfuscator插件,可以幫助混淆exe文件
Kalibr
2015-12-04 05:36:35 UTC
view on stackexchange narkive permalink

最近,我一直使用 dnSpy [由de4dot的創建者從ILSpy分叉]作為我的主要工具,用於反編譯和實時調試.NET代碼

https://github.com/0xd4d/dnSpy


與ILSpy的主要區別:

  • 使用dnLib讀取程序集( VS ILSpy的Mono.Cecil)

https://github.com/0xd4d/dnlib

dnlib被創建是因為de4dot需要一個強大的.NET程序集庫來處理所有類型的混淆程序集。 de4dot曾經使用Mono.Cecil,但是由於Mono.Cecil無法處理混淆的程序集,不完全支持混合模式程序集,無法以CLR的方式讀取.NET程序集以及de4dot所需的許多其他缺失功能,dnlib是必須的。該API之所以相似,是因為它使de4dot到dnlib的移植變得更加容易。

它與ILSpy有何不同?
這是我的第一個答案,鏈接到外部討論合適嗎? :https://www.reddit.com/r/ReverseEngineering/comments/3jau4m/dnspy_a_net_assembly_editor_decompiler_and/ ...我還將在上面進行總結。
我可以擔保dnSpy,它認為它比那裡的任何其他類似.NET工具都要好。它甚至可以調試過程。
我真的可以推薦這個。這是我發現的唯一支持彙編調試的免費工具。
與[此Visual Studio擴展名](https://marketplace.visualstudio.com/search?term=dnspy&target=VS)一起使用。
QAZ
2013-03-20 21:25:27 UTC
view on stackexchange narkive permalink

我已經多次使用.NET Reflector(注意:商業版,但可以試用),並且非常喜歡它:

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

用例的一些示例可以很好地補充此答案。目前,它太模糊了,除了提供工具及其網站之外,沒有太多用處。提供一些實際使用的示例有助於更好地定義產品。
TomSmartBishop
2015-12-03 14:11:38 UTC
view on stackexchange narkive permalink

如果您對API級別的反編譯器感興趣: https://code.google.com/p/facile-api/(儘管在Java中)

是的我正在尋找一個Java庫!謝謝 :)
讓我知道你在做什麼;-)乾杯
我期望將此反彙編器應用程序(https://github.com/KYHSGeekCode/Android-Disassembler)添加“ .NET支持”功能。 :)
好的,讓我知道如何解決。
tyh
2015-03-23 03:27:01 UTC
view on stackexchange narkive permalink

對於ILSPY,我認為它是一個很棒的.net反編譯器。另外,請檢查de4dot以消除混淆。這是一個很酷的實踐寫照。 http://blogs.cisco.com/security/talos/reversing-multilayer-net-malware

編譯的Visual Basic可能是一種不同且痛苦的動物。 http://vrt-blog.snort.org/2014/08/discovering-dynamically-loaded-api-in.html?m=1

編譯後的Visual Basic(6)與.NET有什麼關係?
最初的問題也詢問有關Visual Basic的問題。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...