c# - 在 dotPeek 中反编译 .NET Framework v4.5 可执行文件 "not .NET assembly file"但可执行文件运行正常

标签 c# .net decompiling ilspy dotpeek

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

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

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

经过一些研究,我相信 .Net Core 最近是开源的......但是我不确定我如何才能完成反编译过程,或者是否有可能在这个观点。有什么建议吗?

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

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

enter image description here

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

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

我怀疑 .NET 反编译器在这里无济于事。

最佳答案

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

当 dotnetpeak 提示文件是使用“.Net Core v4.5”开发的并且没有 MVID 时,它会提示该文件缺少 CLR header 。

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

找到一个好的 VB6 反编译器,您就可以毫无问题地反编译该程序。遗憾的是,您无法将 vb6 完全反编译回源代码,但您可以很好地理解应用程序的构建方式。

关于c# - 在 dotPeek 中反编译 .NET Framework v4.5 可执行文件 "not .NET assembly file"但可执行文件运行正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27754872/

相关文章:

c# - 编写条件语句的替代方法

c# - 通过Docker在IIS上部署经典ASP应用程序

c# - EntitySet - IList.Add 没有设置分配是否有合理的理由?

android - 你如何反编译,在eclipse中编辑并重新编译一个apk?一步步?

c# - EDMX 新列在 ToList() 调用时生成错误

Linux 上的 .NET,~/文件夹错误?

c# - 如何将 GUID 的一部分转换为长的?

c# - 从另一个表获取ID

c# - 是否可以将 C# 编译为 IL 并将生成的 IL 反编译为 F#?

c# - 反编译C#时出现"PrivateImplementationDetails"函数