写点什么

使用 dnSpyEx 对.NET Core 程序集进行反编译、编辑和调试

作者:追逐时光者
  • 2025-10-20
    广东
  • 本文字数:1319 字

    阅读完需:约 4 分钟

前言

说到.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 程序集。

  • 支持多语言(中文、俄语、德语、法语、意大利语、英语等)。

工具源代码

工具下载安装运行

  • https://github.com/dnSpyEx/dnSpy/releases


下载完成后,双击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 支持💖。

  • dnSpyEx:https://github.com/dnSpyEx/dnSpy

  • dnSpy:https://github.com/dnSpy/dnSpy

优秀项目和框架精选

该项目已收录到 C#/.NET/.NET Core 优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解 C#、.NET 和.NET Core 领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交 PR 推荐或自荐(让优秀的项目和框架不被埋没🤞)。

  • https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

发布于: 刚刚阅读数: 6
用户头像

不积跬步无以至千里,不积小流无以成江海! 2020-01-14 加入

微软MVP、华为云HCDE、华为云云享专家、51CTO专家博主、阿里云专家博主、博客园推荐博客、CSDN博客专家、腾讯云创作之星、掘金优秀创作者,一个热爱开源的全栈软件工程师,擅长C#、.NET、Vue等相关技术开发。

评论

发布
暂无评论
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试_.net_追逐时光者_InfoQ写作社区