Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Codecepticon — .NET/PowerShell/VBA オフェンシブセキュリティ難読化ツール | Kitploit
ツール/GitHubGitHub/accenture/codecepticon
静的分析コード分析IDS/IPS回避スクリプトと自動化ペネトレーションテストコマンド&コントロールレッドチーミングペイロード開発Archived
GitHubaccenture/codecepticon

Codecepticon

.NET/PowerShell/VBA オフェンシブセキュリティ難読化ツール

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

人気

すべて見る →

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

すべてのツールを探索

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

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

[!CAUTION] このリポジトリはメンテナンスされていません。最新バージョンについては https://github.com/sadreck/Codecepticon をご覧ください。

Codecepticon version

目次

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

はじめに

Codecepticon は、C#、VBA/VB6(マクロ)、PowerShell のソースコードを難読化する .NET アプリケーションであり、レッドチームやパープルチームなどの攻撃的セキュリティ演習向けに開発されています。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 パッケージがダウンロードされるのを待ってからソリューションをビルドします。

Codecepticon の使い方

Codecepticon を使用する方法は2つあります。すべての引数をコマンドラインに指定するか、単一の XML 設定ファイルを渡すかです。高度なカスタマイズが可能なため、--help の出力を手動で参照してどのパラメータを使うべきか判断することはお勧めしません。CommandLineGenerator.html を使用して、素早くコマンドを生成してください。

Command Line Generator

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

root@kitploit:~
Codecepticon.exe --action obfuscate --module csharp --verbose ...etc

一方、XML 設定ファイルを使用する場合は、次のように実行します。

root@kitploit:~
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 マッピングファイルを使用して新しい名前を見つけることです。例えば、次のコマンドラインを変換するとします。

root@kitploit:~
SharpHound.exe --CollectionMethods DCOnly --OutputDirectory C:\temp\

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

Mapping One

Mapping Two

Mapping Three

すべての文字列を置き換えると、結果は次のようになります。

root@kitploit:~
ObfuscatedSharpHound.exe --AphylesPiansAsp TurthsTance --AnineWondon C:\temp\

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

Mapping Four

したがって、常にローカル環境で結果をテストすることが極めて重要です。

実行ファイルへの署名

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

FAQ

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

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

Codecepticon は、サポートされているプロファイルを持つ C# プロジェクトでのみ動作しますか?

いいえ、Codecepticon はすべてのプロジェクトで動作するはずです。プロファイルは、対象プロジェクトに対してさらに信頼性を高め、作業を容易にするための追加調整に過ぎません。

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

同じ原理が PowerShell/VBA コードにも当てはまります。現在 Codecepticon に付属するプロファイルはありませんが、必要であれば追加することは簡単です。

貢献できますか?

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

プルリクエストを送信する場合は、貢献 セクションを参照してください。

トラブルシューティング

C# プロジェクトに対して Codecepticon を実行したが、その後対象プロジェクトをコンパイルできない。

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 リポジトリで追跡されていないため、作業を行う前に議論が必要です。そうしないと、例えば同じ機能に既に取り組んでいる場合など、プルリクエストが却下される可能性があります。

参考文献 / クレジット

  • https://blog.xpnsec.com/building-modifying-packing-devops/
  • https://twitter.com/EmericNasi/status/1460640760928296966
  • https://github.com/MagicMau/ProceduralNameGenerator
  • https://github.com/uwol/proleap-vb6-parser
  • https://github.com/dwyl/english-words
  • https://github.com/Danielku15/SigningServer
ツールをダウンロード