如何从.NET程序集的反编译创建的.resources文件中提取图像?

Bru*_*ill 5 .net c# resources decompiling visual-studio

我正在为我的客户恢复应用程序的源代码.我已设法使用.NET Reflector恢复应用程序代码.但现在我想整理代码并重新创建各个表单,以便我为每个表单提供codebehind,designer和resx文件.问题是所有图像都位于".resources"文件中.如何从Reflector生成的这些".resources"文件中提取图像?

我宁愿使用一些工具,而不是必须以编程方式提取图像,但如果我找不到合适的应用程序,我将使用代码.所以在这里我希望有人在此之前做过这个或者知道一个查看器(最好是免费的!),这些资源文件可以让我提取图像.否则,代码也很好; 然后,我可以编写自己的小应用程序来提取图像.

小智 26

您可以保存.resources文件,然后使用resgen工具(VS2010工具的一部分)将其转换回.resx文件,使用如下命令行:

resgen foo.resources bar.resx
Run Code Online (Sandbox Code Playgroud)

然后.resx可以将其添加到C#项目中.完成此操作后,如果您尝试打开单个图像,VS2010将提供将它们提取到独立的图像文件中.


sep*_*lka 10

该程序可以帮助您 http://www.codeproject.com/KB/dotnet/Extracting_Embedded_Image.aspx

  • 谢谢,塞普卡.我测试了你在这里链接的程序,它运行良好.:)我也找到了我用过的这个程序,http://jasonhaley.com/blog/post/2005/10/09/Resource-File-Extractor.aspx.感谢您的帮助. (2认同)

pou*_*pou 7

ILSpy应该完成这项工作 - 请参阅http://wiki.sharpdevelop.net/ILSpy.ashx上的功能和下面的屏幕截图.

截图

  • 这仅允许您将资源保存为 .resources 文件。据我所知,它不允许您从资源文件中提取位图图像。 (2认同)
  • 嗨波普。感谢您尝试提供帮助。是的,该屏幕截图具有欺骗性,并且看起来像是可以的,但实际上它不允许您保存 _.resources_ 文件中包含的图像。在我的例子中,如果我像截图一样选择 _resources_ 文件夹,我会得到一个资源文件列表,就像图像中的第一个条目。所以就我而言,列出的条目都不是实际的 BMP 文件,而是包含位图的资源文件。如果我在 Reflector 中查看资源文件,我可以看到每个文件包含的位图列表,但无法将这些单独的位图保存到磁盘。 (2认同)