
ペイロードの暗号化、難読化、バイト配列への変換をすべて単一のコマンドで実現するスイスアーミーナイフ(14の出力形式に対応)! ☢️
ペイロードの暗号化、難読化、バイト配列への変換を、たった 1 つのコマンドで実現するスイスアーミーナイフです!
3 つの暗号化アルゴリズム、4 つのエンコード / 難読化アルゴリズム、14 の出力形式に対応しています。

コンパイル済みバイナリをダウンロードするか、Go ソースコードをコンパイルしてください。
例:
# Convert .bin file into C bytes array with XOR encryption and IPv4Fuscation
./ByteCaster -i shellcode.bin -f c -x xor -k 'Test123' -e ipv4
# Convert .bin file into base64 string with XOR encryption
./ByteCaster -i shellcode.bin -x xor -k 'Test123' -e base64

注意: 処理の順序は常に同じです:
- 暗号化
- エンコード
- 出力フォーマット
-i / --input <path> [必須]
バイナリ入力ファイルです。
-f / --format <value> [オプション、デフォルト: raw]
処理済みデータの出力形式です。選択したプログラミング言語のバイト配列として最終データを生成します。出力は常に STDOUT に送信されます。
フォーマットによる出力を適用しない場合は、raw 値(デフォルト)を使用してください。
利用可能な値: raw, hex, c, go, powershell, php, js, rust, csharp, nim, zig, ruby, python, java
-x / --enc-alg <value> + -k / --enc-key <string> [オプション]
データの暗号化です。暗号化アルゴリズムとキー文字列の両方のパラメータを指定する必要があります。
利用可能な値: xor, aes256, rc4
対応しているすべての暗号化アルゴリズムの詳細は以下で説明します。
-e / --encoding <value> [オプション]
データのエンコードです。分析を妨げたりデータのエントロピーレベルを変更したりする難読化としてよく使用されます。
利用可能な値: base32, base64, ipv4, mac
対応しているすべてのエンコードアルゴリズムの詳細は以下で説明します。
xor [0% のオーバーヘッド]典型的な単純 XOR 暗号化(a^b)です。各バイトはキーのバイトと XOR 演算されます。
aes256 [28 バイトのオーバーヘッド]SHA-256 ハッシュ関数から導出された 32 バイト長のキーを使用する AES-256-GCM です。
暗号文の形式: nonce || ciphertext。nonce は最初の 12 バイトに格納され、その後に暗号化データと認証タグが続きます(タグは GCM によって暗号文内に自動的に追加されます)。
Go 標準実装の AES 暗号化: crypto/aes
Go 標準実装の SHA-256 キー導出: crypto/sha256
rc4 [0% のオーバーヘッド]Go 標準実装の RC4 暗号化: crypto/rc4
base32 [60〜65% のオーバーヘッド]Go 標準実装の Base32 エンコード: encoding/base32
base64 [33%〜37% のオーバーヘッド]Go 標準実装の Base64 エンコード: encoding/base64
ipv4 [100%〜300% のオーバーヘッド]これは IPv4Fuscation テクニックとして知られています。出力の各バイトは、IPv4 アドレスの 1 オクテットとして 10 進数に変換されます。
データ例:
{ 0xe9, 0x36, 0x17, 0xbb, 0xbd, 0x7f, 0x22, 0x10 }
出力(バイト配列)はメモリ上で正確に次のようになります:
233.54.23.187\0189.127.34.16\0 ...
注意:
- 各 IP アドレスの末尾はヌルバイトです!
- バイト数が 4 で割り切れない場合、最後の IP アドレスに追加される不足バイトは 255 です。
mac [200% のオーバーヘッド]これは MACFuscation テクニックとして知られています。出力の各バイトは、MAC アドレスの 1 オクテットとして 16 進数(小文字)に変換されます。
データ例:
{ 0xe9, 0x36, 0x17, 0xbb, 0xbd, 0x7f, 0x22, 0x10, 0x84, 0xA7, 0x6f, 0xcc }
出力(バイト配列)はメモリ上で正確に次のようになります:
e9:36:17:bb:bd:7f\022:10:84:a7:6f:cc\0
注意:
- 各 MAC アドレスの末尾はヌルバイトです!
- 16 進数は小文字です。
- バイト数が 6 で割り切れない場合、最後の MAC アドレスに追加される不足バイトは 255(
ff)です。