用于载荷加密、混淆和转换为字节数组的瑞士军刀——一切尽在一条命令中!
它支持 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 字节开销]AES-256-GCM,使用从 SHA-256 哈希函数派生的 32 字节密钥。
密文格式:nonce || ciphertext。Nonce 存储在前 12 个字节中,后面是加密数据和认证标签(标签由 GCM 自动附加在密文中)。
AES 加密的标准 Go 实现:crypto/aes
SHA-256 密钥派生的标准 Go 实现:crypto/sha256
rc4 [0% 开销]RC4 加密的标准 Go 实现:crypto/rc4
base32 [60–65% 开销]Base32 编码的标准 Go 实现:encoding/base32
base64 [33%-37% 开销]Base64 编码的标准 Go 实现:encoding/base64
ipv4 [100%-300% 开销]这被称为 IPv4Fuscation 技术。每个输出字节都会转换为 IPv4 地址中的一个十进制八位组。
示例数据:
{ 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 地址中的一个十六进制八位组(小写)。
示例数据:
{ 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 地址都以一个空字节结尾!
- 十六进制数字为小写。
- 如果字节数不能被 6 整除,则添加到最后一个 MAC 地址的缺失字节为 255(
ff)。