如何从 Win32 可执行文件(最好在 C# 中)中提取 RT_RCDATA 部分?
我目前知道如何做到这一点的唯一方法是在 Visual Studio 中打开 EXE。如果可能的话,我希望能够完全在 C# 中做到这一点。
谢谢!
我假设您正在尝试从可执行文件中读取 RCDATA 类型的资源(请注意,“可执行部分”的含义不同——它指的是 PE 文件的 .text、.data、.rdata 等部分)。如果您想从当前程序集中读取它,这里有一个教程展示了如何:使用 GetManifestResourceStream 访问嵌入式资源,使用GetManifestResourceNames和GetManifestResourceStream方法。
如果您不想从当前可执行文件中读取它,可以使用类似于此处显示的方法。
与 PInvoke 相比,这些方法的优势在于它们是 100% .NET,您不必费心将参数编组到平台数据类型或从平台数据类型中提取,并确保验证了所有返回值。