使用Reflector反编译exe或dll文件都可能无法进行编译(这里指已经对目的文件进行了脱壳处理),主要原因有以下几点:
1、如果对方使用了混淆技术,我们再反汇编会非常棘手,我常用的做法是把某个乱七八糟的名称使用自己的命名规范重新批量重命名,这样便于分析程序的结构。
2、Reflector对枚举类型的支持不是很好,它往往会把枚举当做整数进行处理,这个需要你手动更正过来。
3、对于自动属性,你需要把不符合编译语法的地方更正过来。自动属性的私有字段一般都含有<>等,需要手动更正一下。
4、对于Winform,你需要重新编译一下相关的资源文件,如果编译过程提示找不到资源的话。
5、对于静态变量或者静态类,这个你更要注意。举个例子:假如静态变量A,和B,而B又用到了A,这时候你要检查他们的初始化设置是否是先初始化的A,然后再初始化B,否则编译通不过。
有可能的,但是首先你要知道,对方可能对代码进行了混淆处理,其次,反编译后的代码,还是要自行加工一下的。如果没有混淆处理过,那应该很简单的。比如你反编译的是一个winform.exe,那么你可以新建一个winform项目,把反编译的东东拷贝到该项目下。
具体的很多东西要说,估计不是一下子能说玩的。
请编译