Snowykami's Blog
  • Home
© 2026 Snowykami's Blog · Powered by Neo Blog · Liteyuki ICP 114514

dotNET-C#程序的简单反编译

编程
Summary
本文介绍了如何使用DnSpy软件对由C#程序语言编写的.NET桌面程序进行反编译和源码查看.
|

.NET-C#程序的简单反编译

写这篇文章的初衷一开始只是为了水文 分享我在C#反编译方面的一些知识, 以备不时之需, 还有防止我老年痴呆忘记怎么做.

准备工作

  1. 一些你需要进行反编译的二进制文件*(这些文件建议是用C#编译的, 其他语言不知道行不行)

  2. DnSpy软件的安装(Github)

  3. 注意要反编译文件的版权信息

版权信息是很容易踩的坑, 因为如果你用到并反编译了某些公司或团队, 个人制作编译的二进制文件, 还把用反编译后生成的源码分发扩散, 很容易让你陷入版权纠纷, 通常来讲, 哪怕是GNU这种开源级别的协议都需要非常谨慎寻得作者同意, 更别提ARR(All Right Reserved版权所有)这种协议了.

如何使用DnSpy

DnSpy算是很常用的反编译工具了, 尤其是它可以快速集成到Visual Studio中(生成解决方案).

  1. 打开DnSpy

  2. 在窗口的左上角点击文件, 选择打开

    dnspy_open
  3. 选择你需要反编译的文件, 可以按住Ctrl键多选

dnspy_folder_with_dll_file

(这里用的是我自己制作的缺氧Mod)

  1. 我们可以看到导入后的文件信息, 这时候去边栏找到你导入的文件

dnspy_gui_1dnspy_gui_2
  1. 我们可以寻找我们想要查看的内容, 最常用的便是函数

dnspy_gui_3vs_gui1

(实际Visual Studio内看到的)

其实到这一步就算没什么可讲的了, 但是DnSpy还有挺多小功能, 例如:

快速跳转

dnspy_gui_4

函数和类, 以及一些东西是可以把鼠标移上去点击的, 然后可以快速进入到定义这个函数或类所在的位置, 这对于想要了解函数传参或是打Patch都是十分重要的. 当然前提是你导入了这个函数或类所在的文件.

导出到工程

dnspy_gui_5

这可以让你把所选的二进制文件打包反编译到项目目录中, 然后Visual Studio可以直接使用反编译的内容作为解决方案.

搜索

dnspy_gui_6

这里可以搜索内容, 如果你实在找不到或者想省点力气可以用这个, 可以配置使用正则匹配, 还是蛮方便的

Copyright:dotNET-C#程序的简单反编译

https://blog.sfkm.me/p/reverse-csharp-simple-program-with-dotnet
Author
Nanaloveyuki(Nanaloveyuki)
Posted at
1/23/2026
License
CC BY-NC-SA 4.0

Unless stated otherwise, articles are licensed under CC BY-NC-SA 4.0. Please credit the source.

Comment (1)

Load more

关于我
S

SnowyKami

A full-stack developer.

Tags cloud
A
Snowykami
B
balancetheworld
In love for 171 days
Misskey
Nanaloveyuki技术2026/1/239 minutes1141112247 chars
1 users liked