一款開源的.NET程序集反編譯、編輯和調試神器

前言

說到.NET相關的反編譯工具大家腦海裏第一個想到的工具是什麼?ILSpy、dnSpy、還是dotPeek?咱們今天的主要內容是講講dnSpyEx(dnSpyEx是dnSpy項目的非官方Fork維護版本)這個開源的.NET程序集反編譯、編輯和調試工具該如何使用。

dnSpyEx

dnSpyEx是dnSpy(該代碼庫已於2020年12月21日被所有者歸檔爲只讀狀態)項目的非官方Fork維護版本,一款開源、功能強大的.NET反編譯工具和調試器,可用於在沒有源代碼的情況下編輯和調試程序集。

主要功能

  • 支持淺色、藍色和深色主題。
  • 支持調試 .NET Framework、.NET Core 和 Unity 程序集。
  • 支持編輯 .NET Framework、.NET 和 Unity 程序集。
  • 支持多語言(中文、俄語、德語、法語、意大利語、英語等)。

工具源代碼

工具下載安裝運行

下載完成後,雙擊dnSpy即可運行無需安裝:

創建測試項目並編譯成dll程序集

下面我們創建一個名爲TestSample的.NET Core控制檯應用,然後寫上一段簡單的對象序列化和反序列化代碼示例。

測試項目創建

項目示例代碼

using Newtonsoft.Json;

namespace TestSample
{
    public class Program
    {
        static void Main(string[] args)
        {
            var personList = new List<Person>();
            personList.Add(new Person { Name = "張三", Age = 30 });

            string json = JsonConvert.SerializeObject(personList);

            Console.WriteLine("序列化後的 JSON 字符串:");
            Console.WriteLine(json);

            var deserializedPersonList = JsonConvert.DeserializeObject<List<Person>>(json);

            Console.WriteLine("\n反序列化後的對象信息:");
            foreach (var item in deserializedPersonList)
            {
                Console.WriteLine($"Name: {item.Name}, Age: {item.Age}");
            }
        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
}

找到dll程序集

..TestSample\bin\Debug\net8.0

使用工具調試程序集中的代碼

 

使用工具編輯程序集中的代碼

 

使用工具編輯程序集中的IL指令

項目源碼地址

更多項目實用功能和特性歡迎前往項目開源地址查看👀,別忘了給項目一個Star支持💖。

優秀項目和框架精選

該項目已收錄到C#/.NET/.NET Core優秀項目和框架精選中,關注優秀項目和框架精選能讓你及時瞭解C#、.NET和.NET Core領域的最新動態和最佳實踐,提高開發工作效率和質量。坑已挖,歡迎大家踊躍提交PR推薦或自薦(讓優秀的項目和框架不被埋沒🤞)。

DotNetGuide技術社區交流羣

  • DotNetGuide技術社區是一個面向.NET開發者的開源技術社區,旨在爲開發者們提供全面的C#/.NET/.NET Core相關學習資料、技術分享和諮詢、項目框架推薦、求職和招聘資訊、以及解決問題的平臺。
  • 在DotNetGuide技術社區中,開發者們可以分享自己的技術文章、項目經驗、學習心得、遇到的疑難技術問題以及解決方案,並且還有機會結識志同道合的開發者。
  • 我們致力於構建一個積極向上、和諧友善的.NET技術交流平臺。無論您是初學者還是有豐富經驗的開發者,我們都希望能爲您提供更多的價值和成長機會。

歡迎加入DotNetGuide技術社區微信交流羣👨‍👩‍👦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章