6

一个客户与他们以前的开发人员建立了桥梁,我正试图从他们的工资单可执行文件中提取源代码,不幸的是,作为一名网络开发人员,我对 .NET 框架没有太多经验。

编辑:我们的客户合法拥有该软件,但没有要求源代码,开发人员没有回应我们的通信。我在 SO 上提出这个问题的意图不是为了法律建议(我们已经有人处理),而是为了任何可用于反编译的选项。

我之前用 JetBrains dotPeek 成功地反编译了可执行文件,但是它们都运行了.Net Framework v2.0/v4.5框架。我目前正在使用的客户工资单可执行文件运行.Net Core v4.5,它无法被 dotPeek、ILSpy 或我作为 .NET 程序集文件运行的其他 C# 反编译软件识别。

经过一番研究,我相信.Net Core它最近是开源的......但是我不确定如何继续进行反编译过程,或者此时是否有可能。有什么建议吗?

注意:我将接受“无法反编译,但您是否先尝试过 X、Y、Z?”的答案。我需要让客户知道是否可以完成,因为我们的日程安排很紧。

我所做的一些澄清:program.exe在dotPeek中打开,右键单击属性给了我这个:

在此处输入图像描述

它声称“不是 .NET 程序集文件”,但我可以正常运行可执行文件。

编辑:是否可以从可执行文件中提取更多信息,以便我可以缩小另一种反编译方法?

我怀疑.NET 反编译器在这里没有帮助。

4

2 回答 2

7

开发人员在开发网站上提出了一个合法的编程问题,应该得到有根据的回答。不是不需要的法律建议。反编译 dll 有很多正当理由。

当 dotnetpeak 建议使用“.Net Core v4.5”开发文件并且没有 MVID 时,它会建议该文件缺少 CLR 标头。

如果您将文件反编译回程序集,您可能会发现文件是在 VB6 中开发的标识标记。

找到一个好的 VB6 反编译器,您可能能够毫无问题地反编译该程序。不幸的是,您无法将 vb6 完全反编译回源代码,但您可以很好地了解应用程序是如何构建的。

于 2015-01-23T11:08:00.770 回答
0

.net 核心 .net 的开源版本,目前正在进行中。你可以在微软公共 github 页面corefx上看到每天的进展

我对.net core在问题中的含义有点困惑,但据我了解,还没有最终的 .net core 4.5,即使它确实可用但不完整,为什么有人会在生产代码中使用它?

有关更多信息,请阅读此博客文章

于 2015-01-03T14:07:51.320 回答