Skip to Content
新しいバージョン 12 を公開しました 🎉

プロジェクトの実行

実行では、プロジェクトのすべてのターゲットを Babel Obfuscator のエンジンでフローの順に難読化し、保護されたアセンブリを入力の隣に書き出します。

実行の開始

ツールバー右上の「プロジェクトを実行」をクリックするか、Ctrl+Enter(macOS では Cmd+Enter)を押すか、「実行 > 難読化を実行」を選択します。

ターゲットが独自の出力パスを設定していないかぎり、難読化されたアセンブリは各入力アセンブリの隣の BabelOut フォルダーに書き出されます。実行を開始する前に、Babel Desktop は出力先を確認します。入力アセンブリ、キーファイル、プラグインを上書きすることはありません。以前の実行の出力ファイルが存在する場合は、それらを「既存の出力ファイルを置き換えますか?」の下に一覧表示し、「一覧の出力を上書き」または「キャンセル」が選択されるのを待ちます。

ターゲットは、フローの順に 1 つずつ実行されます。あるターゲットが失敗すると、それより後のターゲットは実行されません。「アクティビティ」パネルの「ジョブをキャンセル」、または「実行 > キャンセル」で実行を停止できます。

「アクティビティ」パネル

「アクティビティ」パネルは、実行が始まるとウィンドウの下部に開きます。ツールバー右上の「アクティビティ」ボタンでパネルの表示と非表示を切り替えられ、パネルの上端をドラッグすると高さを変更できます。

ヘッダーには、ジョブの状態(「実行中」、「完了」、「失敗」、「キャンセル済み」)、進行中のフェーズと処理中のターゲット、割合、時間が表示されます。エンジンの出力は 2 つのタブに表示されます。

  • 「ログ」には、エンジンがターゲットの「Verbose Level」に応じて出力するすべてのメッセージが一覧表示されます。表示されるのは最新の 5,000 件のメッセージで、ログの下の行にメッセージの総数が表示されます。各実行のエンジンの完全な出力テキストは、その実行結果と一緒に保存されます。
  • 「問題」には、警告とエラーが W00013 のようなコード付きでまとめられます。タブ名の横の件数を見れば、確認すべきものがあるかどうかがわかります。
BubbleBurst.exe の実行が完了した後の「Activity」パネル。件数 4 の「Problems」タブに、アセンブリ PresentationFramework、System.Xaml、PresentationCore を解決できなかったことを示す 4 件の W00013 警告が表示され、右側に 100% と実行時間が表示されていますBubbleBurst.exe の実行が完了した後の「Activity」パネル。件数 4 の「Problems」タブに、アセンブリ PresentationFramework、System.Xaml、PresentationCore を解決できなかったことを示す 4 件の W00013 警告が表示され、右側に 100% と実行時間が表示されていますBubbleBurst.exe の実行が完了した後の「Activity」パネル。件数 4 の「Problems」タブに、アセンブリ PresentationFramework、System.Xaml、PresentationCore を解決できなかったことを示す 4 件の W00013 警告が表示され、右側に 100% と実行時間が表示されています

「問題」タブに表示された実行の警告

実行中、各ターゲットの状態は、そのノードと、グリッドの「状態」列と「進行状況」列に表示されます。実行が終わると、ステータスバーにジョブの状態が表示され、警告があった場合は警告の件数も表示されます。件数をクリックすると「問題」タブが開きます。

実行後のキャンバス。ターゲットノード BubbleBurst.exe は completed と表示され、「Activity」パネルには「Completed」バッジ、「Log」タブと問題が 3 件ある「Problems」タブ、100 パーセントの表示、合計経過時間と 3 件の警告で終わるエンジンログの末尾が表示され、「Results」ボタンが有効になっています実行後のキャンバス。ターゲットノード BubbleBurst.exe は completed と表示され、「Activity」パネルには「Completed」バッジ、「Log」タブと問題が 3 件ある「Problems」タブ、100 パーセントの表示、合計経過時間と 3 件の警告で終わるエンジンログの末尾が表示され、「Results」ボタンが有効になっています実行後のキャンバス。ターゲットノード BubbleBurst.exe は completed と表示され、「Activity」パネルには「Completed」バッジ、「Log」タブと問題が 3 件ある「Problems」タブ、100 パーセントの表示、合計経過時間と 3 件の警告で終わるエンジンログの末尾が表示され、「Results」ボタンが有効になっています

「アクティビティ」パネルに表示された完了済みの実行

警告

警告があっても実行は停止せず、ターゲットは「警告ありで完了」になります。それでも警告には目を通してください。エンジンが見つけられなかった依存関係や、効果のなかった設定を示していることがよくあります。

  • コマンドパレットの「ツール: ジョブの警告」は、現在の実行の警告を一覧表示します。
  • 「ツール: 警告リファレンス」は、エンジンの警告コードとその説明を検索できるカタログを開きます。
エンジンの警告リファレンスのダイアログ。検索ボックスと、CF0001、CF0002、EI0001、EM0001 などの警告コードの一覧が表示されていますエンジンの警告リファレンスのダイアログ。検索ボックスと、CF0001、CF0002、EI0001、EM0001 などの警告コードの一覧が表示されていますエンジンの警告リファレンスのダイアログ。検索ボックスと、CF0001、CF0002、EI0001、EM0001 などの警告コードの一覧が表示されています

エンジンの警告リファレンス

先に示した「問題」タブの警告のように、エンジンがアセンブリを解決できなかったという警告は、通常、参照先のアセンブリが入力の隣にないことを意味します。グリッドの詳細の「検索フォルダー」タブにそのフォルダーを追加するか、そのアセンブリを参照の依存関係として追加してください。

出力と難読化されたアプリケーション

実行後は、「アクティビティ」パネル右上のボタンで、出力フォルダーを開いたり、難読化されたアプリケーションを起動したりできます。「ファイル > 出力ファイルの場所を表示」、ステータスバーの「出力を表示」、「実行 > 難読化されたアプリを実行」(Ctrl+F5、macOS では Cmd+F5)でも、選択したターゲットに対して同じ操作ができます。Babel Desktop は、Windows の実行可能ファイルは直接起動し、.NET アプリケーションは .runtimeconfig.json ファイルがある場合に dotnet 経由で起動します。ライブラリの場合、起動の操作は表示されません。

フローの並列実行

互いに参照しないライブラリのように、独立したフローが複数あるプロジェクトでは、それらを同時に難読化できます。「設定 > 難読化」で「独立したフローを並列実行する」をオンにし、同時に実行するフローの数を 2 から 4 の範囲で選択します。このオプションは既定ではオフです。

各フローは専用のエンジンプロセスで実行され、フロー内のターゲットはこの場合も順番に実行されます。Babel Desktop は、単一の実行のときと同じように、どのフローを開始するよりも前にプロジェクト全体を検査します。フローの実行中は次のようになります。

  • 進行状況インジケーターには、予定されているターゲットのうち完了した数が表示されます。ログの各行は、[Library1.dll] のようにアセンブリ名で始まります。
  • ターゲットが失敗すると、そのターゲットのフローが停止します。ほかのフローは続行され、実行は失敗として報告されます。
  • 「ジョブをキャンセル」は、すべてのフローを停止します。
  • 複数のターゲットが証明書のパスワードを必要とする場合、Babel Desktop は、必要としているアセンブリの名前を示して 1 つずつ入力を求めます。

エンジンプロセスの起動にはそれぞれ数秒かかるため、並列実行で時間を節約できるのはアセンブリが大きい場合です。小さなプロジェクトでは、ターゲットを 1 つずつ順に実行したほうが早く終わることがあります。フローティングライセンスの場合、Babel Desktop は一度に 1 つのフローだけを実行します。

実行後

実行が完了したら、各ターゲットの保護の度合いを確認したり、難読化されたアプリケーションが報告するスタックトレースを元の名前に戻したりできます。

  • 実行結果には、各ターゲットの難読化スコアと、その実行の保護の統計が表示されます。
  • スタックデコーダーは、実行で生成された XML マップファイルを使って、難読化されたスタックトレースを元の名前に戻します。
Last updated on