码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ​一款开源的.NET程序集反编译、编辑和调试神器


    思维导航

    • 前言
    • dnSpyEx
    • 主要功能
    • 工具源代码
    • 工具下载安装运行
    • 创建测试项目并编译成dll程序集
    • 使用工具调试程序集中的代码
    • 使用工具编辑程序集中的代码
    • 使用工具编辑程序集中的IL指令
    • 项目源码地址
    • 优秀项目和框架精选
    • DotNetGuide技术社区交流群

    前言

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

    测试项目创建

    项目示例代码

    using Newtonsoft.Json;
    
    namespace TestSample
    {
        public class Program
        {
            static void Main(string[] args)
            {
                var personList = new List();
                personList.Add(new Person { Name = "张三", Age = 30 });
    
                string json = JsonConvert.SerializeObject(personList);
    
                Console.WriteLine("序列化后的 JSON 字符串:");
                Console.WriteLine(json);
    
                var deserializedPersonList = JsonConvert.DeserializeObject>(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

    DotNetGuide技术社区交流群

    • DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目框架推荐、求职和招聘资讯、以及解决问题的平台。
    • 在DotNetGuide技术社区中,开发者们可以分享自己的技术文章、项目经验、学习心得、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
    • 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台。无论您是初学者还是有丰富经验的开发者,我们都希望能为您提供更多的价值和成长机会。

    欢迎加入DotNetGuide技术社区微信交流群👨‍👩‍👦

  • 相关阅读:
    基于 Spring Boot 博客系统开发(一)
    机器学习实战——《跟着迪哥学Python数据分析与机器学习实战》
    A_02.Aosp11源码编译
    HTML5+CSS3+移动web 前端开发入门笔记(二)HTML标签详解
    力扣 1856. 子数组最小乘积的最大值
    Devart IBDac数据访问组件库
    独立站3大火爆类目推荐
    【保姆级】手把手Debug循环依赖的整体流程
    CentOS7环境下定时任务执行不成功的排查
    [BJDCTF2020]Mark loves cat
  • 原文地址:https://www.cnblogs.com/Can-daydayup/p/18205068
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号