Shredder-RS
一个用于 x86_64 二进制文件的多态变形引擎。
概述
Shredder-RS 实现了指令级别的碎片化以对抗静态分析。通过打破代码的线性流程并注入随机化的垃圾节点,它迫使反汇编器跟随一个由 JMP 链接指令构成的复杂图。
核心机制:指令碎片化
与仅添加垃圾代码的基本混淆器不同,Shredder-RS 将原始指令流解构为独立的功能节点。
- 解码: 使用
iced-x86 进行完整的 x86_64 反汇编。
- 碎片化: 每条指令被封装在一个“变形节点”中。
- 熵注入: 节点在一个新的 PE 节区中进行物理随机打乱。
- 控制流链接: 节点通过相对跳转重新连接,创建一个“意大利面条式”的 CFG(控制流图),从而破坏线性扫描反汇编器。
主要特性
- 上下文感知变形: 通过上下文夹层(Push/Popfq)保护 EFLAGS 和易失寄存器。
- 非线性布局: 随机化的物理指令放置以对抗模式匹配。
- PE 支持: 自动节区注入(
.shred)和入口点劫持。
文档
有关深入技术细节,请参阅 ARCHITECTURE.md。
免责声明
本项目仅用于教育和研究目的。其目标是探索多态技术和二进制加固。作者不对任何滥用此工具的行为负责。
构建要求
- Rust 1.70+(稳定版)
- MSVC 工具链(需要用于稳定的 Windows 构建和 PE 处理)