entropykit/entropia
GitHub: entropykit/entropia
Entropia 是一种面向 Windows x86-64 的编译型语言,将 shellcode 和 Beacon Object File 的构建流水线整合为单一编译器并内置 OPSEC 多态混淆能力。
Stars: 1 | Forks: 0
- ` 启用。构建种子
(默认为 `--seed=random`)驱动每一个随机化选择。
| 标志 | 作用 | 模式 |
|---|---|---|
| `poly` | 在 codegen 后重写指令。`xor` 变 `sub`,`mov MR` 变 `RM` 再变 `lea`,`test` 变 `or` 再变 `and`,NOP run 重新分解。 | 两者皆有 |
| `nop_sled` | 使用随机多字节 NOP 填充每个函数入口。移动所有下游的字节偏移量,从而使整个二进制文件的模糊哈希值在构建之间产生漂移。 | 两者皆有 |
| `strings_xor` | 使用每次构建的随机密钥对 `.rdata` 和 `.data` 进行 XOR 加密。解密器在用户代码之前运行。 | shellcode |
| `stack_strings` | 在栈上而非 `.rdata` 中实现字符串常量实例化。从产出物中消除明文字符串。 | 两者皆有 |
| `direct_syscalls` | 自动导入 HellsGate 风格的 stub。每个 `Ntdll.X(...)` 都在我们代码区域内的 `syscall` 中进行派发。 | 两者皆有 |
| `indirect_syscalls` | 自动导入间接系统调用 stub。每个 `Ntdll.X(...)` 都跳转到 ntdll 自身内部的 `syscall;ret` gadget。 | 两者皆有 |
| `hashed_imports` | 移除 BOF 中所有的 `__imp_LIB$Func` 外部符号。Win32 导入在运行时通过 PEB 遍历加上 LoadLibraryA 加上 GetProcAddress 解析。 | BOF |
栈欺骗(Draugr 风格的合成调用帧)和操作员可选的
sleep masks 可通过显式的 `use opsec_stack_spoof;` 和
`use opsec_sleep_mask;` 导入使用。
## 包含哪些组件
| 二进制文件 | 作用 |
|---|---|
| `entc` | 编译器。接收 `.etpy` 源文件,生成 `.bin` shellcode 或 `.x64.o` BOF。 |
| `bof-runner` | 用于 BOF 的本地测试工具。应用重定位,填充 Beacon API stub,并调用 `go(args, len)`。 |
| `entc-debug` | Debug Adapter Protocol 服务器。支持 VS Code 的 F5 和 F9 功能。 |
| `entc-win32gen` | 从 Microsoft 的 win32metadata 生成类型化的 C 头文件。 |
| VS Code 扩展 | 语法高亮、F5 构建并运行、F9 在内联汇编中设置断点。位于 `tools/vscode-entropykit/`。 |
## 从源码构建
### 前置条件
- Rust 1.75 或更高版本 ([rustup.rs](https://rustup.rs))。
- Windows x86-64,用于运行生成的二进制文件。编译器本身也可以
在 Linux 和 macOS 上构建并运行,但输出目标为 Windows。
### 构建所有内容
```
cargo build --release
```
三个二进制文件会存放在 `target/release/` 下:
```
target/release/entc.exe
target/release/bof-runner.exe
target/release/entc-debug.exe
```
### 构建单个二进制文件
```
cargo build --release -p entropykit # entc only
cargo build --release -p bof-runner # local BOF harness only
cargo build --release -p entc-debug # DAP server only
```
### 安装 VS Code 扩展
```
python tools/vscode-entropykit/build.py install
```
重新加载 VS Code(通过命令面板执行 "Developer: Reload Window")以使其生效。
其他操作(`uninstall`、`status`、`vsix`)详见
[docs.entropykit.com/getting-started/installation](https://docs.entropykit.com/getting-started/installation)。
即将登陆 VS Code marketplace
## 文档
参考文档和指南位于
**[docs.entropykit.com](https://docs.entropykit.com)**。
| 章节 | 涵盖内容 |
|---|---|
| [入门指南](https://docs.entropykit.com/getting-started/installation) | 安装、项目配置、第一个程序、CLI 参考、每个编译器标志。 |
| [语言](https://docs.entropykit.com/language/overview) | 类型、控制流、结构体、指针、索引、类型转换、try 和 catch、内联汇编、内置函数、垃圾回收器。 |
| [模块和标准库](https://docs.entropykit.com/modules/use) | `use` 和 `use_c`,标准库中包含的内容。 |
| [Win32](https://docs.entropykit.com/win32/calling-apis) | `Lib.Function(...)` 调用如何端到端运行。自定义解析器。 |
| [BOF 模式](https://docs.entropykit.com/bof/overview) | `go(args, len)`、Beacon API、自动生成的 Aggressor 脚本、本地测试、F5 调试。 |
| [OPSEC](https://docs.entropykit.com/opsec/overview) | 通过示例和权衡解释每个标志。 |
| [高级功能](https://docs.entropykit.com/advanced/overrides) | `[Override(Slot)]`、`[Hook(...)]`、生命周期阶段。 |
每个带标签的发布版本都包含一份独立的 PDF 格式文档快照。
## 状态
Entropia 处于 1.0 版本之前的状态,其表层功能仍在不断变动。预期编译器内部结构在提交之间会发生变化;源码级别的语言表面已经足够稳定,因此预期此 README 中的示例能够继续正常工作。
以下是大致已完成和正在进行的工作:
| 领域 | 状态 |
|---|---|
| 编译器前端 (lexer、parser、type checker) | 稳定。 |
| Codegen 和 encoder | 稳定。根据需要添加新的助记符。 |
| BOF 模式 | 稳定。 |
| Shellcode 模式 | 稳定。 |
| OPSEC 栈 (poly、syscalls、sleep masks、hashed imports) | 稳定。 |
| VS Code F5 / F9 流程 | 稳定。 |
| 垃圾回收器 | 稳定。对于对体积敏感的构建,建议默认使用手动模式。 |
| Linux / macOS 工具链支持 | 仅支持构建。生成的产出物始终面向 Windows x86-64。 |
| 测试 | 待实现。 |
| ARM64 后端 | 未开始。 |
## 授权与负责任的使用
Entropia 是一种双重用途的安全工具。示例 BOF 实现了有据可查的攻击性原语(进程枚举、token 模拟、远程注入、LSASS 转储、静默 AMSI 和 ETW),你可以在主流技术参考(如 nanodump、mimikatz、TrustedSec 的 CS-Situational-Awareness-BOF 集合以及 Cobalt Strike 的标准 BOF 库)中找到这些内容。
仅在经过授权的红队交战、CTF 环境和安全研究中使用 Entropia。作者不对滥用行为承担任何责任。
标签:SCP, Shellcode, Subfinder, 位置无关代码, 可视化界面, 客户端加密, 技术调研, 端点可见性, 编译器