前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试

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

原创
作者头像
追逐时光者
发布于 2024-08-25 14:24:20
发布于 2024-08-25 14:24:20
22200
代码可运行
举报
文章被收录于专栏:编程进阶实战编程进阶实战
运行总次数:0
代码可运行

前言

说到.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控制台应用,然后写上一段简单的对象序列化和反序列化代码示例。

测试项目创建

图片
图片
图片
图片

项目示例代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • dnSpyEx
  • 主要功能
  • 工具源代码
  • 工具下载安装运行
  • 创建测试项目并编译成dll程序集
    • 测试项目创建
    • 项目示例代码
    • 找到dll程序集
  • 使用工具调试程序集中的代码
  • 使用工具编辑程序集中的代码
  • 使用工具编辑程序集中的IL指令
  • 项目源码地址
  • 优秀项目和框架精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档