Dotfuscator

PreEmptive Solutions
「難読化技術」


Dotfuscator

新規導入相談 参考情報
      【動画公開中】
DashO 設定方法 動画ページへ

.NET アプリケーションの危険性から操作方法までわかりやすく解説しています。 「Dotfuscator による難読化のご紹介」

サポート 関連プロダクト


AG-TECH製品ライン


ご利用いただくお客様層に合わせた AG-TECH サポートサービスをご用意しております。



製品別FAQ参考資料
サポートサービスサポートフォーム

お問い合わせはこちら



*Dotfuscator、DashO、Overload-Induction、Runtime Intelligence、PreEmptive Analytics、PreEmptive Analytics for TFS、PreEmptive Solutions ロゴ、Dotfuscator ロゴ、および DashO ロゴは PreEmptive Solutions, LLC の商標です。
*その他、会社名、アプリケーション名、システム名などは一般に各メーカの登録商標または商標です。

Dotfuscator  

Dotfuscator 無料評価版 試用期間30日間お申込み  

機能概要

Dotfuscator は Visual Studio 2017 に完全に対応しており、最新の .NET Framework をサポートする難読化機能が多数含まれています。名前の変更を始め、文字列の暗号化、制御フローの難読化など、様々な難読化技術と付加機能を提供しています。各機能については、以下をご覧ください。

新しい機能(New)については、ソースコードに手を加えることなく、インテリジェンスなロジックをアプリケーションに埋め込み、プログラム実行時の動作を賢く制御できます。


改ざん検出と通知

アプリケーション実行時に改ざんが検出された場合の動作を制御できます。アプリケーションの実行を停止したり、アプリケーションの所有者に改ざん通知メーセージを送ったりすることができます。

Shelf Life

ベータリリース、評価版、サブスクリプションベースのアプリケーションの有効期限を設定したり、期限失効時の動作を制御したりすることができます。

エラー報告

リリース前や製品版のアプリケーションがどのように動作しているのかを知る方法は他にありません。 Dotfuscatorユーザーは既存のアプリケーションに素早く簡単に例外追跡機能を埋め込み、Runtime Intelligence ポータルサイト※ を利用してアプリケーションの例外報告を行うことができます。
(※ ポータルサイトの利用に関するサービスは、現在、国内ではお取扱いしておりません。)

Silverlight XAMLの難読化

XAML の難読化は XAML リソースの名前変更、Silverlight アセンブリのトリミング(不要部分の排除)と縮小化によるロードタイムやパフォーマンスの最適化、アセンブリの自動再署名を行います。これにより開発者は知的財産の保護や、改ざんの防止をすることができます。 合理的に自動化されたビルドプロセスの中で、Silverlight XAP ファイルの難読化やインストルメントを充分に行えます 。


WPF BAML の難読化

BAML に対しても名称の変更がサポートされました。BAML (バイナリXAML) の難読化では、今まで WPF の開発者が行っていた XAML 内で参照されている名前を排除するという作業に時間を費やす必要はありません。ベンチマークによると従来の難読化による WPF アプリケーションの適用範囲は 25-60% でしたが Dotfuscator の BAML 難読化では同じ WPF アプリケーションの適用範囲は 75-100% に達します。


ClickOnce に対応

ClickOnce の配置マニフェストを単一入力として処理し、更新されたマニフェストおよびアセンブリを出力することができます。


XML シリアル化準拠の名前変更オプション

XML シリアライザと互換性のある方法で型やメンバの名前を変更するように、名前の変更アルゴリズムをグローバルに変更することができます。


宣言による難読化のコマンドラインサポート

[難読化属性の使用] および [難読化属性の除去] のオプションは、コマンドラインから簡単に設定することができます。


Runtime Intelligence Service(アプリケーション分析)

アプリケーションがどのように使用されているかを追跡する新しいサービス。アプリケーションの開始・停止時にライフサイクルデータをアプリケーションから集め、ダッシュボードを使って統計情報の閲覧が可能となります。 (※ 本サービスに関して、現在、国内ではお取扱いしておりません。)


名前の変更

Dotfuscator には、米国で特許を取得した Overload-Induction™ (オーバーロード誘導)の名前変更 システムが組み込まれています。このシステムは、すべてのクラス、メソッド、およびフィールドの 名前を変更して、1 文字の名前に短縮します。Dotfuscator の名前変更システムは、標準の名前変更 システムよりもさらに優れた、固有の難読化特性も提供します。多くの"難読化による"名前の変更機能 は、逆コンパイルされた出力を妨害するため、印刷できない文字や複雑なシーケンスに名前を変更することに頼っています。このような試みとは異なり、Dotfuscator の名前変更システムは、 コンパクトで元に戻すことができない結果を提供します。



文字列の暗号化

アタッカーは、アプリケーション内の特定の文字列を検索して戦略的なロジックを探し出すことがよくあります。たとえば、登録と検証の処理を迂回しようともくろむ者は、プログラムがユーザーにシリアル番号を要求する文字列を検索することがあります。その文字列を見つけると、その文字列の周辺の命令を探して、ロジックを変更するのです。文字列の暗号化は、検索で文字列が見つからなくすることにより、この作業をより困難にします。元の文字列は、コードのどこにも見つかりません。暗号化されたコードだけが存在します。



制御フローの難読化

この処理は、有効なフォワード (実行可能) ロジックを作り出している分岐処理、条件処理、反復処理などの構成要素を合成し、逆コンパイルが試みられたときに、その意味を判断できないコードを生成します。制御フローの難読化によって、アタッカーによる解析が非常に困難な、スパゲッティのように複雑にからみ合うロジックが生成されます。次の例は、Dotfuscator Professional Edition の処理を示しています。→ 画面詳細はこちら



拡張オーバーロード誘導

Dotfuscator Professional Edition は、メソッドの戻り値の型またはフィールドの型を、メソッドまたはフィールドの一意性を判断するときの条件として使用できるようにすることによって、Overload-Induction™ (オーバーロード誘導) を拡張します。この機能は、メソッドとフィールドの名前の変更時に最大 15% まで、より冗長になることを許容します。さらに、(C#、VB などの) ソース言語では戻り値やフィールドの型でオーバーロードすることは通常は許可されないので、デコンパイルをいっそう困難にします。 → 「オーバーロード誘導」詳細はこちら


不要なコードの除去

小さいアプリケーションほど、インストール、読み込み、および実行速度がより高速になります。Dotfuscator Professional Edition の除去機能は、使用されていないコードを削除します。このマルチパスの反復処理によって、未使用の型、メソッド、およびフィールドが検出され、除去されます。アプリケーションで適切にデザインされた汎用目的のライブラリが使用されていることが明らかな場合、そのアプリケーションは不要なコードの除去を行う対象になります。コンピュータ処理リソースを節約したり、インスタンスの作成回数を減らすことで、驚くほどの領域を削減できます。


アセンブリのリンク

アセンブリのリンク (結合とも呼ばれます) は、複数のアセンブリを 1 つ以上の出力アセンブリに結合する機能です。これによってアプリケーションのサイズをさらに縮小することができ、シナリオの配置が簡単になります。アセンブリのリンクを難読化および不要なコードの除去と組み合わせると、.NET アプリケーションの強力なパッケージ化ソリューションが実現します。 → 詳細はこちら


ウォーターマーク

ウォーターマーク は、ソフトウェアの無許可コピーの出所を追跡する手法の 1 つです。Dotfuscator Professional Editionに PreMark™ を追加すると、.NET アセンブリのウォーターマーク作成機能がサポートされます。ウォーターマークは、著作権情報や一意な ID 番号などのデータを、実行時の動作に影響を与えることなく、.NET アプリケーションに目立たないように埋め込むために使用します。→ 詳細はこちら


スマート難読化

自動的に既知の API 使用パターンやアプリケーションの種類を識別して難読化規則を適応します。名前変更や除去などを適応すべきでない場合には、自動的に対象から外します 。


増分難読化

増分難読化は統合されたアプリケーション環境を保守する企業の開発チームとって特に関心の高い拡張機能です。難読化の実行時に名前の割り当て記録が生成されるため、以後の難読化においても、難読化された API 名には再び同じ名前が適用され維持されます。 アクセスポイントは以前のビルドと同じ名前に変更されるため、部分的なビルドが可能となり、既存のシステムにシームレスにパッチファイルをあてることができます。


難読化されたコードのデバッグ

難読化されたアプリケーションのデバッグ シンボル ファイルを、コンパイラが出力する元のシンボル ファイルに可能な限り一致させて (Microsoft の PDB 形式で) 出力する機能があります。これらのファイルを使用すると、難読化されたアセンブリのデバッガによるステップ スルーや、元のソース コードの確認が可能になります。