ドングルを使用して実行可能ファイルを保護しています。ドングルは、次の 2 つの方法でソフトウェアを保護します。
- ドングル メモリの読み取り/書き込み (機能データの保存など) の呼び出しを含むコード内で、ドングルに常駐するアルゴリズムを使用してデータを暗号化/復号化します。暗号化キーは書き込みのみ可能です。
- EXE ファイルを暗号化し、ドングルを介して復号化するローダーを使用します。softice などのデバッガーが実行されている場合、ソフトウェアは終了するか、起動しません。
私のソフトウェアをクラックするよりもライセンスを購入する方がうまく機能し、安価になります。これが私の唯一の目標です。
問題は、もうシリアル化できないことです! 試してみると、次の例外が発生します。
SerializationException
Source = mscorlib
Message = Unable to find assembly 'MyApp, Version=1.0.0.3, Culture=neutral, PublicKeyToken=null'.
TargetSite = System.Reflection.Assembly GetAssembly()
Stack =
System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
データが永続的であるため、バイナリ シリアル化を使用する必要があります。
どうすればこの問題を解決できますか?