Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Codecepticon — .NET/PowerShell/VBA 向けの攻撃的セキュリティ用難読化ツール | Kitploit
ツール/GitHubGitHub/sadreck/codecepticon
防御ツール静的分析コード分析IDS/IPS回避スクリプトと自動化ペネトレーションテストレッドチーミングペイロード開発
GitHubsadreck/codecepticon

Codecepticon

.NET/PowerShell/VBA 向けの攻撃的セキュリティ用難読化ツール

リポジトリを見る
225292年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Codecepticon version

目次

  • はじめに
  • まずはこれを読んでください
  • 前提条件
    • Visual Studio
    • Roslyn コンパイラ
    • 動作確認
  • Codecepticon の使い方
    • C#
    • VBA/VB6
    • PowerShell
    • コマンドライン引数の難読化
    • 機能の詳細
    • ヒント
    • 既知の問題
    • 実行ファイルへの署名
  • FAQ
  • トラブルシューティング
  • コントリビューション
  • 参考文献 / クレジット

はじめに

Codecepticon は、C#、VBA/VB6(マクロ)、および PowerShell のソースコードを難読化できる .NET アプリケーションであり、Red/Purple Team などのオフェンシブセキュリティエンゲージメント向けに開発されています。Codecepticon が他の難読化ツールと異なる点は、コンパイル済みの実行ファイルではなくソースコードを対象としていることであり、AV/EDR の回避を目的として特別に開発されました。

Codecepticon ではコードの難読化と書き換えが可能ですが、さらにコマンドラインの書き換えなどの機能も提供しています。

まずはこれを読んでください

! 始める前に !

  • このドキュメントは Codecepticon のインストールと使用方法のみを扱っています。Rubeus や SharpHound などのツールのコンパイル、使用方法、サポートは提供されません。詳細については各プロジェクトのリポジトリを個別に参照してください。

  • Codecepticon は VS2022 で活発に開発・テストされていますが、VS2019 でも動作する_はず_です。VS2019 以下向けに作成されたチケット/イシューは、VS2022 で問題が再現しない限り調査されません。したがって、最新かつ最高の VS2022 を使用してください。

  • 以下のパッケージは v3.9.0 でなければなりません。新しいバージョンには以下の未解決のイシューがあるためです: https://github.com/dotnet/roslyn/issues/58463

    • Microsoft.CodeAnalysis.CSharp.Workspaces
    • Microsoft.CodeAnalysis.Workspaces.MSBuild

    Codecepticon は実行時にこれらのパッケージのバージョンをチェックし、v3.9.0 と異なる場合は通知します。

  • これはいくら強調してもしすぎることはありません: 難読化したコードは必ず最初にローカルでテストしてください。

前提条件

Visual Studio Pro/Community 2022

VS2022 .NET

Roslyn コンパイラ

VS2022 Roslyn

開いてコンパイルする

Codecepticon を開き、すべての NuGet パッケージがダウンロードされるまで待ってからソリューションをビルドします。コンパイル済みの Release をダウンロードすることもできます。

Codecepticon の使い方

Codecepticon の使用方法は 2 通りあり、すべての引数をコマンドラインに指定するか、単一の XML 設定ファイルを渡すかのいずれかです。サポートされているカスタマイズのレベルが高いため、--help の出力を手動で確認してどのパラメータをどのように使用するかを把握することは推奨されません。CommandLineGenerator.html を使用してコマンドを素早く生成してください:

Command Line Generator

コマンドジェネレーターの出力形式は、好みに応じて Console または XML のいずれかを選択できます。コンソールコマンドは次のように実行できます:

Codecepticon.exe --action obfuscate --module csharp --verbose ...etc

XML 設定ファイルを使用する場合は、次のようになります:

Codecepticon.exe --config C:\Your\Path\To\The\File.xml

Codecepticonの機能を詳しく知りたい場合は、こちらのドキュメントを参照してください。

活用できるヒントについては、こちらのドキュメントを参照してください。

C#

C#プロジェクトの難読化は簡単で、対象とするソリューションを選択するだけです。なお、ソリューション自体のバックアップは取得されず、現在のものが難読化の対象となる点に注意してください。Codecepticonを実行する前に、対象プロジェクトを単独でコンパイルできることを確認してください。

VBA/VB6

VBAの難読化は、Microsoft Officeドキュメントではなくソースコード自体に対して機能します。つまり、doc(x)やxls(x)ファイルをCodecepticonに渡すことはできません。モジュール自体のソースコードを渡す必要があります(Alt-F11を押して、そこからコードをコピーしてください)。

PowerShell

PowerShellスクリプトの複雑さに加え、スクリプトの記述方法に自由度があることから、すべてのエッジケースを網羅し、難読化された結果が完全に機能することを保証するのは困難です。Codecepticonは単純なスクリプトや機能に対しては問題なく動作することが期待されますが、PowerViewのような複雑なものに対して実行しても動作しません。これは現在進行中の課題です。

コマンドライン引数の難読化

アプリケーションやスクリプトを難読化した後は、コマンドライン引数も名前が変更されている可能性が非常に高くなります。これを解決するには、HTMLマッピングファイルを使用して新しい名前を確認します。例えば、次のコマンドラインを変換してみましょう:

SharpHound.exe --CollectionMethods DCOnly --OutputDirectory C:\temp\

各引数をHTMLマッピングファイル内で検索すると、次のようになります:

Mapping One

Mapping Two

Mapping Three

そして、すべての文字列を置き換えた結果は次のとおりです:

ObfuscatedSharpHound.exe --AphylesPiansAsp TurthsTance --AnineWondon C:\temp\

ただし、一部の値は複数のカテゴリに存在する場合があります:

Mapping Four

そのため、必ず最初にローカル環境で結果をテストすることが重要です。

実行ファイルへの署名

Codecepticonを使用して、実行ファイル(コンパイル済みの出力)にデジタル署名することも可能です。Codecepticonは署名証明書を生成するだけでなく、それ(または提供された任意の証明書)を使用して対象ファイルに署名することもできます。

FAQ

Releasesにダウンロードできるコンパイル済みバージョンがないのはなぜですか?

コンパイル済みの出力には多数の依存DLLが含まれており、ライセンス要件により書面による同意なしでは再配布できません。

Codecepticonは、サポート対象のプロファイルを既に持つC#プロジェクトでのみ動作しますか?

いいえ、Codecepticonはあらゆるものに対して動作するはずです。プロファイルは、対象プロジェクトをより信頼性が高く扱いやすくするために行われる、ちょっとした追加調整にすぎません。

しかし、すべてのコードは固有であるため、プロジェクトを難読化すると1つか2つのエラーが発生し、コンパイルや実行ができなくなる場合があります。その場合は新しいプロファイルが必要になるかもしれません。そのような場合は、新しいissueを起票してください。

同じ原則がPowerShell/VBAコードにも当てはまります。現時点ではCodecepticonに付属するプロファイルはありませんが、必要であれば追加するのは簡単な作業です。

貢献できますか?

バグの報告や新機能の提案については、issueを作成してください。

プルリクエストの提出については、Contributionsセクションを参照してください。

トラブルシューティング

CodecepticonをC#プロジェクトに対して実行すると動作するものの、その後対象プロジェクトをコンパイルできません。

Codecepticonを実行する前に、対象プロジェクトのクリーンなバージョンをコンパイルできることを確認してください。この問題が発生する場合、多くの場合Codecepticonではなく、対象ソリューションの依存関係の不足が原因です。それでもコンパイルできない場合は:

  • 公開プロジェクトですか? issueを作成し、できるだけ詳細にリンクを貼り付けてください。ツールがSharpCollectionの一部であれば、なおさら良いです。
  • 非公開プロジェクトですか? Codecepticonを改善する趣旨から、スクリーンショットやエラー/デバッグメッセージを通じて可能な限りサポートを提供するよう努めます。ただし、非公開リポジトリなどを通じてクリーンなコードや難読化されたコードにアクセスしたり実行したりすることはありません。

上記と同じですが、PowerShell/VBAスクリプトです。助けてもらえますか?

最善を尽くしますが、PowerShellスクリプトは非常に複雑になる可能性があり、PSParserはC#向けのRoslynほど高度ではないため、約束はできません。VBA/VB6についても同様です。

次のエラーが繰り返し発生します: "Method not found: 'System.Collections.Immutable.ImmutableArray"

ある時点で、次のエラーに遭遇するかもしれません:

Method not found

この問題の根本原因の解明に引き続き取り組んでいますが、簡単な修正方法は、NuGetパッケージマネージャーからSystem.Collections.Immutableパッケージをアンインストールして再インストールすることです。

コントリビューション

タイポ、バグ、新機能のいずれであっても、以下の点に同意いただける限り、Codecepticonはコントリビューションを非常に歓迎します:

  • 本プロジェクトのMITライセンスに同意いただけること。
  • プルリクエストを作成する前にissueを作成し、作業を始める前に議論できるようにすること。内部開発は公開GitHubリポジトリでは追跡されていないためです。そうしない場合、例えば同じ/類似の機能に既に取り組んでいる場合やその他の理由により、プルリクエストが拒否されるリスクがあります。

参考文献 / クレジット

ツールをダウンロード