介绍两个C# dll/exe反编译工具,【ILSpy】和【JustDecompile】,都是免费的
首先新建一个Winform Solution
一、新建一个ClassLibrary Project命名为【FormLibraryForDecompileTest】
1、新建Form,desinger 拖放一些控件,图片等添加到 Resource, 界面示例如下:
![](https://img.haomeiwen.com/i13169203/9360fff1c8653822.png)
然后安装 nuget 包【Newtonsoft.Json】,新建一个Model类,编写一个UserControl,传入Model类,调用Json转换为字符串并显示在界面上,Form中点击按钮打开Dialog显示控件
2、工程目录大致如下:
![](https://img.haomeiwen.com/i13169203/e99e92a42b1bc055.png)
二、新建一个Winform app Project,引用刚才的工程,Main方法中直接run刚才的FormTest
![](https://img.haomeiwen.com/i13169203/cc3a82fd6d776527.png)
三、运行 ILSpy, 打开bin目录下编译出的dll:
![](https://img.haomeiwen.com/i13169203/7128ade3befd94b8.png)
因为是基于Framework 3.5的程序,所以C#版本尽量选低一点,默认是7,生成的代码solution编译会有问题
打开后,File --> Save Code 可以将dll的代码保存为工程文件.csproj
保存好后,新建Solution,添加存在的两个工程,修复引用,目录结构如下:
![](https://img.haomeiwen.com/i13169203/cd6be3c8b34f67d2.png)
四、运行 JustDecompile,打开dll
![](https://img.haomeiwen.com/i13169203/010428f3c0adb909.png)
按图所示创建一个工程文件,打开其中自动生成的 sln 文件,可以看到工程目录结构如下:
![](https://img.haomeiwen.com/i13169203/188e4abe7672a311.png)
可见其相比 ILSpy 更贴合实际
这两种方式生成的 solution 编译运行都和原始程序相同
网友评论