Crypto Obfuscator .Net v2013(インドをベースにしたLogicNP Softwareによって最近リリースされた)は、Portable Class Library, Windows 8, WinRT, Windows Phone 8をサポートしており、SQL CLRアセンブリの改善も行なっている。今回のリリースには、新しいログタブがあり、難読化中の完全なログと偽の名称変更スキームを表示する。このスキームによって、全てのクラス、フィールド、メソッドを転送された型のサポートを含めて、偽だが本当らしい名前に変更できる。
Crypto Obfuscator .Net v2013は、モジュールコンストラクタからユーザー定義のメソッドを呼ぶ機能を提供している。これは新しい例外レポートが生成された時にメールで通知し、自動的に主スクリーンの画面ショットを例外レポートに埋め込み、アセンブリを複数のアセンブリにCryptoライセンスする機能も持つ。
新方式の暗号化技術は、メソッド内のすべての中間言語 (IL)コード暗号化して隠し、直接例外ビューアダイアログから例外報告書に添付されたファイルを開く機能が持っている。また、例外レポートに画像、ファイル、バイナリ・データを追加する機能、すべての名前変更したシンボル用の接頭辞と接尾辞を指定する機能、PDBファイル内にローカル変数名を含む機能を提供している。
これは、難読化ルールに含まれているパターンを指定することも可能であり、ワイルドカードや正規表現パターンに似ている。最新リリースには、例外レポートにファイル、ログおよびスクリーンショットを添付するために必要な手順を示した、新しいサンプルアプリケーションが含まれている。
InfoQは難読化とまた、最近リリースされた Crypto Obfuscator .Net v2013 ついて詳しく知るために LogicNP Softwareのシニア開発者である Himangi Gと話をした。
InfoQ: 難読化の必要性は何ですか?
C#, VB.NET, マネージドC++, IronPythonのような.NETコンパイラは、MSIL (Microsoft Intermediate Language) 形式でコンパイルされたプログラムを吐き出します。この形式は、あなたのソフトウェアについて多くの高レベルの情報、例えばクラス、フィールド、メソッド、プロパティ、パラメータ名、実際のコードを明確に定義された構造で保持しています。従って、防御されていない.NETアセンブリは、ハッカー、クラッカー、競争相手の格好の標的で、以下のことができます。
- 簡単に.NETコードをリバースエンジニアリング。
- 文字列からパスワード、SQLクエリを抽出する
- 貴重な企業秘密 、アルゴリズムを探りだす
- セキュリティの脆弱性を見つける
- 製品の機能を変更する。
Crypto Obfuscator のような難読化ツールを使うと以下の助けになります。
- シンボル(クラス/メソッド/プロパティ/フィールド名)の名称変更、文字列/定数の暗号化、メソッド本体の暗号化、制御フローの難読化、メソッド呼び出しの隠蔽化などような 様々な難読化とコード防御技術使って、、ハッカー、クラッカー、競争相手からあなたのコードと知的財産を守る。
- あなたのソフトウェアに投資された時間とお金を守る-ビジネスのROIを増やす。
- 副作用として、いくつかの状況では、アプリケーションのパフォーマンスを向上させる。
InfoQ: .NET Frameworkの4.5には難読化するためのツールが含まれていますか?
.NET Framework 4.5にはいかなる難読化のツールも含まれていません。デプロイ前にアセンブリを難読化するのは開発者の責任です。
InfoQ:Crypto Obfuscator for .Net v2013が他の似たツールと違うのは何ですか?
標準の保護とシンボル名の変更、文字列の暗号化、制御フローの難読化のような難読化に加えて、Crypto Obfuscatorは、メソッド本体の暗号化、定数フィールド値の除去、メソッド呼び出しの隠蔽、改ざん防止、 デバッグ/トレースの防止、リフレクション防止などの幾つものユニークな防御を持っています。これらを組み合わせることで.NETアセンブリに強力なコード保護を提供しています。別の便利な機能は自動例外レポートです。この機能を使用すると、サポート時間の多くの時間を節約し、あなたのソフトウェアが実際にどのように動作するかについての有用な洞察を得ることができます 。
Crypto Obfuscatorの別のユニークな特徴は、難読化簿に示される警告です。これは、潜在的に難読化されたアセンブリを失敗させる原因となりえる、あなたのアセンブリ内のコードの全行を表示します。 他の難読化ツールでは、なぜ難読化されたアセンブリが動かないのかを解明しようとするのは、暗闇で銃を撃つようなものです。
Crypto Obfuscatorは非常に手頃な価格で、他の幾つかの同様な製品ように何千ドルもしません。我々は Crypto Obfuscatorは現時点で入手できる、フィーチャ、機能、価格の最高の組み合わせである、と信じています。
他のフィーチャとして、 Windows 8 ベースの WinRT/Metroアプリ、 Windows Phone 8/7アプリ、 Silverlightアプリの難読化サポート、自動コマンドラインサポート、オーセンティコード署名、MSBuild統合サポート、PDBファイルのサポート、直接XAP難読化、 XAML/BAML難読化などがある。
InfoQ: どのように自動例外レポートは動くのですか?
自動例外レポートは、難読化中にコードをインストゥルメントすることで動き、ソフトウェアで起きるあらゆる未処理の例外を捉え、更にソフトウェアのユーザーがボタン一つでこれらの例外をあなたにレポートできようにします。例外レポートには、全ての関連情報が含まれています。例えばあらゆるメソッドの引数値と一緒に完全なスタックトレース情報、更にシステム情報、例外の発生時間、ビルド番号、ログファイル、画面ショットなどのようなオプションの開発者が定義したカスタムデータです。
全ての例外レポートは、例外レポートサービスから自動的にダウンロードできCrypto Obfuscator内で見ることができます。各レポートとその関連データは明確に提示されるので、その情報を使って問題を修正できます。
InfoQ: もし私が Crypto Obfuscator For .Netを使ったら、あなたはどのようにパフォーマンス改善を主張しますか?
Crypto Obfuscatorにはパフォーマンス改善する設定があります。例えば、メタデータの削減、クラスを Sealedにする、定数フィールド値の削除などです。他の難読化が副次的にパフォーマンス改善を提供します。例えば、シンボル名の変更は、クラス/メソッド/プロパティ/フィールド名を劇的に短くし、ある程度のパフォーマンス改善を提供できます。
InfoQ: Visual Studio 2012内から Crypto Obfuscator For .Net v2013を使えますか?
はい、Crypto Obfuscator には Visual Studio Project Integrator Wizardが付いてますので、 Visual Studioプロジェクトのビルドプロセスに難読化を(MSbuildを使って)統合できます。これが済めば、 Crypto Obfuscatorを使って、アセンブリは自動的にプロジェクトのビルドプロセスの一部として難読化されます。
InfoQ:なぜ Windows Phone と WinRTプラットフォームをサポートしたのですか?
我々は、Windows Phone と WinRT/Metroプラットフォームは多くのポテンシャルを持ち、時間と共に人気が出てくると信じています。多くの顧客がこれらのプラットフォームをターゲットにしたアセンブリの難読化をサポートするように要求したので、迷いませんでした。
InfoQ: Android, iOSプラットフォームもサポートするのですか?
はい、もしアプリがMono for Androidや Mono Touchフレームワークを使って開発されているなら Crypto Obfuscatorは、これらのプラットフォームをサポートします。
InfoQ: Crypto Obfuscator for .Net v2013の将来のロードマップを教えてくれませんか?
数ヶ月で Crypto Obfuscatorにある新しい難読化と保護機能を追加するつもりです。更に既存の難読化も改善するつもりです。究極的に、これらすべての主要なゴールは、.NETアセンブリの逆コンパイルやリバースエンジニアリングをより難しくすることです。