nohuto/b64rev
GitHub: nohuto/b64rev
b64rev 是一款 PowerShell 脚本混淆工具,通过 Base64 编码反转、字符混淆和随机变量名生成来提高脚本代码的可读难度。
Stars: 1 | Forks: 0
# Base64 反转与字符混淆
使用 B64 编码,将其反转(参见 [reversal-example.md](https://github.com/nohuto/b64rev/blob/main/reversal-example.md))并构建解码部分。随后对所有反转后的 B64 命令进行字符混淆。它会自动检测每个编码字符串正确的行数。变量名及其他所有内容要么使用预设的混淆方案,要么通过随机大写字母生成。`Input File` 是必填项,如果未设置 `Output File` 路径,它将使用当前文件名并添加 `NV-` 前缀。
预览:
https://github.com/user-attachments/assets/2b876ac2-29f6-4321-a372-91f595ae02ae
1. 将字符串编码为 B64,例如 `Tm92ZXJzZQ==`
2. 将其反转为 `==QZzJXZ29mT`
3. 为其构建解码命令(包含反转部分):
```
[system.text.encoding]::utf8.getstring([system.convert]::frombase64string(-join(...)
```
4. 对包含该编码字符串的所有行进行字符混淆
该字符串的具体形式取决于该行是否为代码块的起始行:
```
$bracket = if ($line -match '\{') { '{' } else { '(' }
$closing = if ($bracket -eq '{') { '}' } else { ')' }
```
它会跟踪嵌套的括号,并将整个块作为字符串处理;否则,每一行都将被单独编码。
## GUI 按钮
| 按钮 | 描述 |
| --- | --- |
| `Detailed Logging` | 显示块的起始/结束或行。 |
| `Add Dead Branches`| 添加无意义的 `if` 块,且每个 `FromBase64String` 方法都会拥有自己独立的块。 |
| `One Invoke` | 启动速度最快且安全性最低(通过单次 `ToBase64String` 操作一次性解码所有内容) |
标签:AI合规, Base64, DNS 反向解析, IPv6, Libemu, PowerShell, 代码混淆, 多人体追踪, 编码转换