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

前言

说到.NET相关的反编译工具大家脑海里第一个想到的工具是什么?ILSpy、dnSpy、还是dotPeek?咱们今天的主要内容是讲讲dnSpyEx(dnSpyEx是dnSpy项目的非官方Fork维护版本)这个开源的.NET程序集反编译、编辑和调试工具该如何使用。

  • 4款免费且实用的.NET反编译工具

  • .NET反编译神器ILSpy怎么用?

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

测试项目创建

项目示例代码usingNewtonsoft.Json;

namespaceTestSample

{

publicclassProgram

{

staticvoidMain(string[]args)

{

varpersonList=newList<Person>;

personList.Add(newPerson{Name="张三",Age=30});

stringjson=JsonConvert.SerializeObject(personList);

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

Console.WriteLine(json);

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

Console.WriteLine("\n反序列化后的对象信息:");

foreach(varitemindeserializedPersonList)

{

Console.WriteLine($"Name:{item.Name},Age:{item.Age}");

}

}

}

publicclassPerson

{

publicstringName{get;set;}

publicintAge{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

  • 免费开源的程序员简历模板
  • 了解作者&获取更多学习资料
  • 程序员常用的开发工具软件推荐
  • 加入DotNetGuide技术社区交流群
  • C#/.NET/.NET Core推荐学习书籍
  • C#/.NET/.NET Core学习视频汇总
  • .NET/.NET Core ORM框架资源汇总
  • ASP.NET Core开发者学习指南路线图
  • C#/.NET/.NET Core面试宝典(基础版)
  • C#/.NET/.NET Core优秀项目和框架推荐
  • C#/.NET/.NET Core学习、工作、面试指南

学习是一个永无止境的过程,你知道的越多,你不知道的也会越多,在有限的时间内坚持每天多学一点,你一定能成为你想要成为的那个人。不积跬步无以至千里,不积小流无以成江海!返回搜狐,查看更多

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 (0)
大家都在看
我来说两句
0人参与, 0条评论
登录抢首评