Dotfuscator

PreEmptive Solutions


Dotfuscator for .NET/Xamarin

新規導入相談 参考情報
      【動画公開中】
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  

.NET アプリケーションの難読化と堅牢化のための機能概要

アプリの堅牢化には、難読化とアプリケーションの自己保護機能が含まれています。階層化された難読化機能があなたのアプリケーションを保護いたします。詳細は以下の各セクションを参照ください。

機能概要

名前変更

難読化により名前を変更すると、メソッドや変数などの名前が変更され、ソースコードの理解が難しくなります。Dotfuscator は、PreEmptive Solutions 社によって開発され特許を取得した、オーバーロード誘導(Overload Induction™)と呼ばれるより強力な難読化技術を使用します。オーバーロード誘導は、名前ごとに1つの新しい名前を使用するのではなく、できるだけ多くのメソッドの名前を同じ名前に変更します。この強力な難読化の後、ロジックは破壊されないが、理解できなくなります。以下の簡単な例は、オーバーロード誘導技術の効果を示しています。

制御フローの難読化

従来の制御フロー難読化では、逆コンパイラを混乱させたり停止させるために、条件文や誤解を招くような誤った構文が挿入されていました。このプロセスは、正しく実行可能なロジックを生成する分岐、条件付分岐および繰り返し構文を合成しますが、逆コンパイルが試行されるときに決定できない結果をもたらします。制御フローの難読化は、人間が分析するのに非常に難しいスパゲティロジックを生成します。

Dotfuscator は、従来よりもさらに高度な制御フロー難読化技術を採用しております。Dotfuscator は、コードを追加するだけでなく、逆コンパイラがソースコードを復元するために使用するコードパターンを破棄させることによって機能します。最終的な結果は、元のコードと意味的には同じですが、元のコードが記述された内容の手掛かりは含まれていません。高度な逆コンパイラが開発されても、その出力は推測になります。

文字列暗号化

Dotfuscator を使用すると、アセンブリに含まれるユーザーの文字列を非表示にすることができます。一般的な攻撃者のテクニックは、バイナリ内の文字列を検索して重要なコードセクションを特定することです。例えば、アプリケーションがセキュリティでロックがかかった場合、タイムアウトしてメッセージが表示されることがあります。攻撃者は、逆アセンブルまたは逆コンパイルされた出力の中でこのメッセージを検索し、見つけたときに、あなたのセキュリティアルゴリズムに非常に近いでしょう。

Dotfuscator は、アプリケーションのこれらの重要な部分の文字列を暗号化し、攻撃から防御します。文字列の暗号化には、復号にわずかな処理(時間)が発生するため、指定した部分を除いて文字列の暗号化は実行されません。

ウォーターマーク

ウォーターマーク(電子透かし)は、著作権情報や固有の識別番号などのデータを実行時の動作に影響を与えずに .NET アプリケーションに埋め込むことにより、ソフトウェアの不正コピーをつきとめるのに役立ちます。Dotfuscator のウォーターマークアルゴリズムは、アプリケーションのサイズを増やすことも、アプリケーションに影響を与える余分なメタデータが生成されることもありません。詳細はこちら

不要コードの除去

小規模なアプリケーションは、ダウンロード速度、インストール速度、読み込み速度、実行速度が速くなります。Dotfuscator のプルーニング機能は、コードを静的に解析して、未使用の型、メソッド、およびフィールドを見つけ出し、それらを削除します。また、Dotfuscator は、MSIL ファイルを処理する際にデバッグ情報と重要でないメタデータを削除し、アプリケーションを小さくし、攻撃者が利用できるデータを減らします。

アセンブリのリンク

Dotfuscator は、複数の入力アセンブリを1つまたは複数の出力アセンブリにリンクできます。アセンブリリンクを使用すると、特に名前変更とプルーニングで使用するアプリケーションをさらに小さくすることができ、展開されるリンクシナリオを簡素化できます。

例えば、アセンブリ A、B、C、D、E を入力した場合は、アセンブリ A、B、C をリンクして名前Fのアセンブリを出力します。また同時に、D と E をリンクして、名前 G のアセンブリを出力します。唯一の制限は、同じ入力アセンブリを複数の出力アセンブリにリンクすることができないことです。詳細はこちら

改ざん検出と防御

Dotfuscator は、アプリケーションの整合性を検証するコードを挿入します。実行時に改ざんが検出された場合、アプリケーションをシャットダウンしたり、ランダム的にクラッシュさせたり(クラッシュが改ざんチェックの結果であることを隠すため)、またはその他のユーザー定義したコードの実行が可能です。データ解析サービスを使用しているお客様は、改ざんが検出されたことを示すメッセージをこれらサービスに送信することもできます。

デバッガ検出と防御

PreEmptive Solutions 社は、Application Insights、HockeyApp、Microsoft TFS、Google Analytics、Twitter、New Relic、およびその他の主要な解析サービスに、ほぼリアルタイムのアラートおよびアナリティクスを直接提供しながら、アプリケーションとそのデータを保護する強力なデバッガ検出ソリューションを提供します。

Shelf Life(アプリケーション実行管理)

Shelf Life は、アプリケーションの在庫管理機能であり、期限切れ、または非アクティブ化、および通知ロジックをアプリケーションに組み込むことができます。Dotfuscator は、アプリケーションを終了したり、PreEmptive Analytics Service メッセージを送信することによって、アプリケーションの有効期限により動作するコードを挿入します。この機能は、ベータ版や評価版アプリケーションで有用です。ユーザーは、特定の日付のアプリケーションの有効期限/非アクティブ化をスケジュールできます。また、オプションで、特定の日数内にアプリケーションが期限切れ/期限切れになることをユーザーに警告することもできます。

例外監視と使用分析

PreEmptive Analytics Service を使用すると、ユーザーによる実際の使用状況のフィードバックやインシデントレポートを得ることが可能になります。Dotfuscator は、ソースコードを変更することなく、アプリケーションに使用状況レポートと例外監視機能を追加するために必要なツールを提供しております。

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

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