日期:2014-05-18  浏览次数:21753 次

DLL反编译成CS后再编译回成DLL
本人一直没有接触过C#和.NET,近日公司买了一个.NET项目,但没有源代码.要修改一些功能,我用Reflector(加载Reflector.FileDisassembler.dll和FileGenerator.dll反编译的)反编译出源代码,是CS格式的,现在用VS编译回去,但出错啊,四百多个,错误摘录:大概就是这样的:

D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\_PrivateImplementationDetails_{EF129A25-7878-4C79-811E-71EDD86182A2}.cs(87,2): 错误 CS1513: 应输入 }
D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\_PrivateImplementationDetails_{EF129A25-7878-4C79-811E-71EDD86182A2}.cs(84,45): 错误 CS1519: 类、结构或接口成员声明中的标记“=”无效
D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\_CppImplementationDetails_\$ArrayType$$$BY0A@P6AXXZ.cs(9,32): 错误 CS1056: 意外的字符“$”
D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\_CppImplementationDetails_\$ArrayType$$$BY0A@P6AXXZ.cs(9,33): 错误 CS1056: 意外的字符“$”
D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\_CppImplementationDetails_\$ArrayType$$$BY0A@P6AXXZ.cs(1,11): 错误 CS1001: 应输入标识符
D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\_CppImplementationDetails_\$ArrayType$$$BY0A@P6AXXZ.cs(9,21): 错误 CS1001: 应输入标识符
D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\_CppImplementationDetails_\$ArrayType$$$BY0A@P6AXXZ.cs(9,21): 错误 CS1513: 应输入 }
D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\_CppImplementationDetails_\$ArrayType$$$BY0A@P6AXXZ.cs(9,14): 错误 CS0101: 命名空间“?”已经包含了“?”的定义
D:\Backup\我的文档\Visual Studio 2005\Projects\can2\can2\System.Data_Source\SNINativeMethodWrapper.cs(226,86): 错误 CS1646: 原义说明符 @ 之后应为关键字、标识符或字符串

但我看了一些代码,觉得没有用混淆器.请教高人:如何编译回去?十分感谢.

------解决方案--------------------
反光镜只能看部分代码,完全复原的话还是很有困难的。
------解决方案--------------------
你们买的东西被人家混淆过的,反编译就会有问题。为什么不直接买源码呢?另外,如果是想破解人家的限制,呵呵。那就是涉及版权的问题了。