Print3M/ByteCaster
GitHub: Print3M/ByteCaster
一站式Payload加密混淆工具,支持多种算法和14种编程语言输出格式。
Stars: 212 | Forks: 27
# ByteCaster
用于 Payload 加密、混淆和转换为字节数组的“瑞士军刀”——单条命令即可完成!
它支持 3 种加密算法、4 种编码/混淆算法和 14 种输出格式。

## 安装
[下载编译好的二进制文件](https://github.com/Print3M/ByteCaster/releases/latest) 或编译 Go 源代码。
## 使用说明
示例:
```
# 使用 XOR encryption 和 IPv4Fuscation 将 .bin 文件转换为 C 字节数组
./ByteCaster -i shellcode.bin -f c -x xor -k 'Test123' -e ipv4
# 使用 XOR encryption 将 .bin 文件转换为 base64 字符串
./ByteCaster -i shellcode.bin -x xor -k 'Test123' -e base64
```

**`-i / --input `** [必填]
二进制输入文件。
**`-f / --format `** [可选,默认值:`raw`]
处理后数据的输出格式。这会将最终数据生成为所选编程语言中的字节数组。输出始终发送到 STDOUT。
若要避免应用任何格式化输出,请使用 `raw` 值(默认)。
可用值:`raw`、`hex`、`c`、`go`、`powershell`、`php`、`js`、`rust`、`csharp`、`nim`、`zig`、`ruby`、`python`、`java`
**`-x / --enc-alg ` + `-k / --enc-key `** [可选]
数据加密。必须同时提供加密算法和密钥字符串这两个参数。
可用值:`xor`、`aes256`、`rc4`
所有支持的加密算法详情如下。
**`-e / --encoding `** [可选]
数据编码。通常用作混淆,以干扰分析或改变数据的熵水平。
可用值:`base32`、`base64`、`ipv4`、`mac`
所有支持的编码算法详情如下。
## 支持的加密算法
#### **`xor`** [0% 开销]
典型的简单 XOR 加密(`a^b`)。每个字节与密钥中的字节进行异或操作。
#### **`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` ...
#### **`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`
## 鸣谢
- [HellShell](https://github.com/NUL0x4C/HellShell) - 启发我实现了 _IPv4Fuscation_ 和 _MACFuscation_。
## 待办事项
- 添加 base32 编码
标签:AES-256, Base64, DNS 反向解析, EVTX分析, Golang, IPv4混淆, MAC混淆, RC4, Shellcode, Swiss Army Knife, XOR加密, 中高交互蜜罐, 二进制处理, 代码生成, 免杀辅助, 多语言输出, 字节转换, 安全编程, 恶意软件开发, 技术调研, 文档结构分析, 日志审计, 混淆, 渗透测试工具, 漏洞评估, 熵值调整, 载荷加密