正如标题所说,在使用 themida 保护我的应用程序后,反序列化失败,但有以下例外:
无法生成临时类(结果=1)。错误 CS0009:元数据文件 'c:\Path\to\protected.exe' 无法打开 -- '试图加载格式不正确的程序。'
这是我用于反序列化的代码(它在 exe 不受保护时工作):
MyClass myClass;
try
{
using (var stream = new MemoryStream(Data))
{
var serializer = new XmlSerializer(typeof(ComSec.MyClass));
myClass = serializer.Deserialize(stream) as MyClass;
}
}
catch (Exception e)
{
return null;
}
奇怪的是,代码 + themida 保护在我的机器上运行良好,但在虚拟机和同事的机器上却失败了
我正在使用(与我的同事相同的配置):
- VS2012 专业版
- Windows 7 x64 终极版
- Themida 2.1.2.0 x86(支持.Net)
VM 是全新安装的 Windows 7 x86。