新しいバージョンで
新しいWPF難読化コア
- 現在、WPFに関係するクラスは除外されませんが、他のすべてのクラスとともに難読化されています。 WPFリソースは再構築されています
- WPFを含むアセンブリのリンクがサポートされています(ILMergeでは実行できません)
- PropertyPathなどの複雑な式を含む、名前の変更が許可されていないクラスおよびフィールドのスマートな自動除外
- BAMLリソースの名前が変更されました
(クリックして拡大)
Unity 3Dサポート
- すべての内部メソッド、フィールド、およびクラスの名前が変更されます。
- 文字列暗号化、外部メソッド呼び出しの非表示、分解など、すべてのモードがサポートされています
Unity 3Dアプリケーションを保護するには、管理フォルダーからユーザーコードを含むアセンブリを送信して難読化し、保護されたバージョンに置き換えれば十分です。
.NET Framework 4.5との完全な互換性
- 現在、難読化ツールは.NET 2.0、3.0、3.5、4.0、4.5でも同様に機能します。
- async / awaitを含むコードは正しく難読化されています
- Mono Cecilの最新バージョンに移行しました
自動インテリジェント難読化
- 階層ツリーと依存関係を分析するための新しい強力なメカニズム
- 大幅に改善されたコードアナライザー
- コード内の標準構造による直列化可能クラスの自動検出
- シリアル化に明示的または間接的に関連する型の名前変更から自動的に除外します(たとえば、シリアル化可能なクラスで使用される列挙型)
- プロジェクトは、Microsoft Unity Containerを使用して正しく処理されます
- 最も完全な一致の検索に基づいて適切な方法を選択するためのインテリジェントなアルゴリズム。 あいまいなオーバーロードを解決する場合の例:メソッド(int arg)およびメソッド<T>(T arg)、ここでT = int
- ExpressionsおよびLINQとの分解アルゴリズムの互換性の問題を修正
- 制約付きプレフィックスのサポート
- インターフェイス\タイプへの変換に応じたActivator.CreateInstanceおよびConstructorInfo.Invokeの自動タイプ認識。
- 改善された警告、今ではささいなことに発行される頻度が少なくなりました
スマート認識のいくつかの例
列挙型
string name = "Second"; var result = (Mode)Enum.Parse(typeof(Mode), name);
アナライザーは、列挙モードでは名前による値の定義が使用されていることを判別し、すべてのメンバーと一緒に名前変更の禁止としてマークします。
シリアライザー
var serializer = new XmlSerializer(typeof(RealySerializable)); var writer = new StringWriter(new StringBuilder()); serializer.Serialize(writer, new RealySerializable()); string res = writer.ToString(); public enum DataState { One, Two } public class RealySerializable { public int MyProperty { get; set; } public DataState State { get; set; } }
ご覧のとおり、RealySerializableとDataStateはSerializableAttribute属性でマークされていませんが、RealySerializable型のXmlSerializerの初期化を検出すると、コードアナライザーはそれを名前変更から除外します。 同様のアプローチは、他のシリアライザー(JSON、バイナリーなど)でも機能します。 列挙型DataStateがシリアル化可能な型に含まれていることがわかると、アナライザーはそれをシリアル化可能としてマークします。
インターフェイスごとのCreateInstance
var instance = Activator.CreateInstance(anyUnresolvedName); var work = instance as IRef;
名前が動的に形成されると仮定すると、アナライザーはanyUnresolvedNameが何であるかを理解できませんが、IRefインターフェイスへの明示的なキャストを見つけ、そのすべての子孫の名前変更を禁止します。
他のケースも同様に機能します。自分で試してください: appfuscator.com
まとめると
このバージョンでは、私たちの大切な目標にさらに近づきました-難読化についてまったく考えないで、プロジェクトの最終結果を得るだけです。
まもなく、ユーザーアカウントといくつかの快適で便利なイノベーションを開始する予定です。 ニュースをフォローしてください。
そしてもちろん、いつものように、私たちはあなたの願いと良いアイデアにとても満足しています。