.NET-C#程序的简单反编译
写这篇文章的初衷一开始只是为了水文 分享我在C#反编译方面的一些知识, 以备不时之需, 还有防止我老年痴呆忘记怎么做.
准备工作
一些你需要进行反编译的二进制文件*(这些文件建议是用C#编译的, 其他语言不知道行不行)
DnSpy软件的安装(Github)
注意要反编译文件的版权信息
版权信息是很容易踩的坑, 因为如果你用到并反编译了某些公司或团队, 个人制作编译的二进制文件, 还把用反编译后生成的源码分发扩散, 很容易让你陷入版权纠纷, 通常来讲, 哪怕是GNU这种开源级别的协议都需要非常谨慎寻得作者同意, 更别提ARR(All Right Reserved版权所有)这种协议了.
如何使用DnSpy
DnSpy算是很常用的反编译工具了, 尤其是它可以快速集成到Visual Studio中(生成解决方案).
打开DnSpy
在窗口的左上角点击文件, 选择打开
选择你需要反编译的文件, 可以按住Ctrl键多选
(这里用的是我自己制作的缺氧Mod)
我们可以看到导入后的文件信息, 这时候去边栏找到你导入的文件
我们可以寻找我们想要查看的内容, 最常用的便是函数
(实际Visual Studio内看到的)
其实到这一步就算没什么可讲的了, 但是DnSpy还有挺多小功能, 例如:
快速跳转
函数和类, 以及一些东西是可以把鼠标移上去点击的, 然后可以快速进入到定义这个函数或类所在的位置, 这对于想要了解函数传参或是打Patch都是十分重要的. 当然前提是你导入了这个函数或类所在的文件.
导出到工程
这可以让你把所选的二进制文件打包反编译到项目目录中, 然后Visual Studio可以直接使用反编译的内容作为解决方案.
搜索
这里可以搜索内容, 如果你实在找不到或者想省点力气可以用这个, 可以配置使用正则匹配, 还是蛮方便的