偶尔会遇到需要反编译.net软件的情况,有时是看对方的实现逻辑,有时纯粹是其它不合法的目的了。
我一般如下操作:
1. 在.Net Relflector7.0以上的版本中,查看exe或者dll, 在看源代码时,偶尔会提示引用的dll,可以在程序目录下,或者vs目录下查看,比如vs的在如下目录:C:\Program Files (x86)\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE
2. 选定exe或者dll,右键选择Export Assemlby Source Code,在弹出的对话框中,修改默认的导出目录,点Start进行导出
3. 导出时,偶尔还是会提示引用的dll,和第2步查找dll的方法一样,如果没有,可以skip
4. 打开导出的文件夹,用vs打开看一看,是否可行
5. 如果是 wince的项目,工程默认 PC端的,可以新建一个wince的智能设备工程,然后将.csproj拷贝到源代码文件夹下,打开这个工程,再不存在的文件排除掉,再点浏览所有的文件,将其它文件包含在内

6. 对于wince项目,如果是窗体内的,打开窗体还是会报错,有两行代码会报错,直接将报错的代码删除掉即可,这是pc界面与wince界面不一样的原因
7. 对于反编译的东西,资源类的需要人工处理了,特别是图片资源等,这个只能一个个界面进行处理了。
8. 尽量不要编译程序了,反编译后的通常都不太稳定