我花了自由职业者程序员的钱来调教我的诊所。他完成了大约95%的项目,但随后又在其他地方找到了一份工作,并随我的源代码消失了……因此,我有一个半工作程序,需要完成它。如何将源代码(Visual Studio,C#)恢复到可以完成所需的工作,然后再次重新编译的源代码?这可能吗?我愿意购买/付款...

评论

.NET Reflector是最好的。我以前也曾使用ILSpy取得了类似的成功。

您是否考虑过要求他提供源代码?我知道你说过他在稀薄的空气中消失了,但是根据你同意他建造的条件,你可能有机会考虑付给他。

不,他不在事列。我什至找不到他或电话号码。

我的问题:使用Reflector,我是否可以完成遗失项目的编码并再次重新编译的方式来获得原始源代码?

您无法恢复“原始源代码”(例如,注释和变量名经常在编译过程中完全丢失),但对于C#,应该可以恢复“等效代码”,这应该使您自己添加缺少的功能。

#1 楼

至于免费和开源工具,我建议dnSpy。这是我用于.NET逆向工程的最佳工具。

您可能还想尝试一下ILSpy,它也是免费和开源的。

评论


我的问题:使用Reflector,我是否可以完成遗失项目的编码并再次重新编译的方式来获得原始源代码?

–劳尔·莫拉莱斯(Raul Morales)
16年6月20日在6:33

dnSpy允许您编辑代码。因此,您应该能够添加所需的内容。不过,我从未尝试将整个源文件作为文件。

–TMR232
16年6月20日在9:18

#2 楼

还考虑免费的JetBrains dotPeek,将.NET 1.0-4.5程序集反编译为C#。

支持.dll,.exe,.zip,.vsix,.nupkg和.winmd文件。

#3 楼

要回答您的问题“我是否可以以某种方式完成原始项目的源代码,然后再重新编译?”:如果它在您的系统上运行,则意味着您具有所需的所有依赖项,并且能够将其反编译为可以随意编辑和重新编译的状态。

我不知道Reflector,但是使用ILSpy,您可以在“文件”菜单中选择“另存为。 ..”,则可以保存.csproj或.vbproj(之所以可以这样做,是因为.Net的中间语言可以往返两种语言;因此,即使编码是C#,也可以根据需要往返于VB。 )。

#4 楼

那里有许多免费的付费实用工具,旨在反编译.NET应用程序。

我个人使用.NET Reflector-这是具有14天免费评估版的商业应用程序。

评论


我的问题:使用Reflector,我是否可以完成遗失项目的编码并再次重新编译的方式来获得原始源代码?

–劳尔·莫拉莱斯(Raul Morales)
16年6月20日在6:33

是的,假设代码没有打包或混淆。 (可能不是)

–雅各布·珀西(Jacob Persi)
16年6月20日在12:49

#5 楼

有多种免费/试用工具
我个人使用.NET Reflector和JustDecompile,而JustDecompile也可以编辑源代码。