タイトルにあるように、次の例外を除いて、themidaでアプリケーションを保護した後、逆シリアル化は失敗します。
一時クラスを生成できません(result = 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保護は私のマシンでは正常に機能しますが、VMと同僚のマシンでは失敗します
私が使用しているのは(同僚と同じ構成):
- VS2012プロフェッショナル
- Windows 7 x64 Ultimate
- Themida 2.1.2.0 x86(.Netサポート付き)
VMは、Windows7x86の新規インストールです。