ConfuserExを使ってソースコードを難読化する


.NETツールの難読化手順紹介3つ目。

今回は「ConfuserEx」の使い方を解説していきます。

↓元記事

ツールのダウンロード

まずは以下のサイトにアクセスします。

https://yck1509.github.io/ConfuserEx/

画面をスクロールしていくと「Downloads」の項目があるので、「GitHub project page」のリンクをクリックします。

上記リンクをクリックするとGitHubのページへ移動します。

画面内に「ConfuserEx v1.0.0」というタイトルが表示されており、そのすぐ下にある「ConfuserEx_bin.zip」というリンクがファイル本体のダウンロードリンクとなります。

ダウンロードしたzipファイルは任意の場所に展開して下さい。

スポンサーリンク

使い方

ConfuserExはインストール不要で実行する事ができます。

対象ファイルの指定

まず展開したフォルダを開き、フォルダの中にある「ConfuserEx.exe」を起動します。

以下の画面が起動する事を確認して下さい。

 

この画面では難読化したい実行ファイル(exe拡張子のファイル)を選択します。

画面下部の「Drag input modules here」部分に実行ファイルをドラッグ&ドロップ。または右側の「」アイコンをクリックし、ダイアログから選択する事も可能です。

ファイル選択後の画面は以下の様になります。

 

出力先の場所は、デフォルトでは難読化対象ファイルの場所にある「Confused」というフォルダの中です。「Confused」フォルダが存在しない場合は自動的に作成されるので、特別用意する必要はありません。

出力場所を変更したい場合は、「Output Directory」のパスを修正して下さい。

難読化の設定

続いてSettingsタブに移動し、難読化の設定を行います。

操作は以下の順で行います。

 

①「<Global settings>」をクリック※1し、選択状態にする

②画面右の「+」アイコンをクリック
 ⇒ 左側の「Rules」スペースに「true」と文字が現れる事を確認する

③「+」アイコンの下にある編集(□とペンの)マークをクリックする

※1 このソフトでは複数の実行ファイルを一気に難読化する事が可能です。「<Global settings>」に値を設定すると、登録している全てのファイルに対して設定したルールが適用されます。簡単にいうと”共通ルール”。実行ファイル毎に個別にルールを適用したい場合は、該当のファイル名を選択してルールを設定します。(↑の場合では「NandokuTest.exe」)

上記③まで実行すると、以下のルールエディタが出現します。

 

画面上部にある「Preset」のプルダウンから、難読化レベルを選択します。

レベルの説明は以下の通り。


■None
 ⇒ 文字通り「無し」。難読化しないという意味。

■Minimum(最小)
 ⇒ 基本的なセキュリティを提供。最低限この設定は使用した方が良い。

■Normal(通常)
 ⇒ 一般公開の通常のセキュリティを提供。通常はこちらの使用を推奨。

■Aggressive(積極的)
 ⇒ セキュリティは向上するが、パフォーマンスは大幅に低下する可能性がある。

■Maximum(最大)
 ⇒ セキュリティ的に最も強いが、動作への影響もAggressive以上。


・個人的には「Minimum ~ Normal」を推奨。

・「Aggressive」以上にすると機能的に動作しなくなる箇所が出てくる可能性があるため、「難読化後の動作テスト」を別に行う必要が出てくる。

また、下の「Protection」のスペースには、右側の「+」アイコンから更に詳細な設定を追加する事が可能。

設定可能な項目は以下の通り。

■ Anti Debug Protection(アンチデバッグ保護)
■ Anti Dump Protection(アンチダンプ保護)
■ Anti IL Dasm Protection(アンチILダムプロテクション)
■ Anti Tamper Protection(アンチタンパープロテクション)
■ Constants Protection(定数の保護)
■ Control Flow Protection(制御フロー保護)
■ Invalid Metadata Protection(無効なメタデータ保護)
■ Name Protection(名前保護)
■ Reference Proxy Protection(参照プロキシ保護)
■ Resources Protection(リソース保護)

内容の詳細については以下のマニュアルページを参照。

https://github.com/yck1509/ConfuserEx/wiki/Protections

難読化

難読化の設定まで完了した後は、「Protect!」タブへ移動して「Protect!」ボタンを押下するだけでOK。

難読化が正常に終わった場合は、以下の様に緑色の文字で「Finished」と表示される。

難読化処理結果

では難読化前後の結果を比較してみたいと思います。

・・・と思ったのですが、ダミーコードが多すぎて割と本気で難読化後の場所が分かりませんでした。

難読化の結果は君自身の目で確かめてくれ!(攻略本風)」という事で!

※難読化後のコードが判明次第更新します。

感想

オープンソースで洗練されているだけあって、有料ソフトにも劣らないかむしろそれ以上のパフォーマンスを持っているソフトだと思います。

「インストール不要」、「難読化はレベルによる簡単設定」という手軽さでありながら難読化のレベルも十分という、個人的には一番おすすめのソフト。

一つ問題があるとすれば、一部のセキュリティソフトでは難読化後の状態を「ウイルス」と判定してしまい、隔離状態にしてしまう事がある点。私自身がカスペルスキーでその現象を確認しました。

具体的にどういった処理を難読化するとウイルス認定されるのかは分かりませんが、ランサムウェア(身代金要求型ウイルス)の難読化にも使われていたという事でちょっと警戒されているのかもしれませんね。

という事でConfuserExについては以上となります。

次回はまた別の難読化ソフトについて解説していきます。

関連記事と広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする