一款基于 Rust 开发的模块化免杀框架,支持 GUI 可视化与灵活的二次开发,内置多种 Shellcode 伪装与反沙箱策略。
- 静态链接和零依赖:Rust 程序可以静态链接所有依赖库,生成单一的独立二进制文件,减少外部库的特征签名,降低被杀毒软件检测到的概率。
- 高效编译优化:通过 LTO(链接时优化)、strip(移除符号表)和 codegen-units=1 等配置,生成更紧凑和混淆的二进制代码,特征更难被逆向分析。
- 无运行时开销:Rust 编译为原生机器码,无需虚拟机或解释器运行,避免了像 .NET 或 Java 那样的明显运行时特征。
- 高级混淆特性:利用 Rust Nightly 的特性,如路径修剪(trim-paths)、panic immediate-abort 和重新编译标准库,彻底移除调试信息、路径字符串和 panic 消息,进一步增强隐蔽性。
- 条件编译和模块化:利用 Cargo features 实现条件编译,用户可根据需要选择启用特定加密方式、运行模式或检测策略,只编译必要的代码模块,显著减少二进制文件大小和特征签名,
- 用户友好:基于 PyQt5 的图形界面让用户无需掌握命令行知识,即可轻松配置参数和生成加载器,降低了使用门槛。
- 集成化操作:将 Shellcode 选择、加密方式配置、图标设置、反沙箱检测勾选、运行模式选择、签名伪造和文件捆绑等所有步骤集成在一个界面中,实现一键生成,简化工作流程。
- 直观可视化:提供下拉菜单、复选框和文件选择器等控件,直观展示选项,避免手动输入错误,提高配置准确性。
- 实时反馈:界面显示配置状态和生成进度,用户能即时了解操作结果,便于调试和调整。
- 跨平台兼容:支持Windows、Linux 和 macOS跨平台兼容,确保在不同操作系统上的一致体验。
- 插件化扩展:GUI 基于配置文件动态加载功能模块,支持添加新加密方式、运行模式或检测策略,无需修改代码即可扩展。
- 插件化架构:基于
config/plugins.json配置文件动态加载功能模块,新插件只需实现特定接口(如name和process函数),即可自动被 GUI 和命令行工具识别,无需修改核心代码。 - 模块化设计:加密方式、运行模式和 VM 检测等功能模块独立存放(如
encrypt_lib/、src/decrypt/、src/exec_shellcode/、src/guard/),便于单独开发和维护。 - 灵活的 Cargo features:通过 Cargo features 控制编译内容,用户可选择性启用所需功能,减少不必要代码,优化二进制大小和性能。
- 易于二次开发:提供详细的二次开发指南,支持添加新加密方式、运行方式或检测策略,只需在相应目录添加代码并注册到配置文件中。
- RC4 - 流加密算法
- IPv4 - 将 Shellcode 转换为 IPv4 地址格式
- IPv6 - 将 Shellcode 转换为 IPv6 地址格式
- MAC - 将 Shellcode 转换为 MAC 地址格式
- UUID - 将 Shellcode 转换为 UUID 格式
- AES - 高级加密标准(AES-256-CBC)
- 可拓展...
- VirtualAlloc - 使用系统 API 分配 RWX 内存
- GlobalAlloc - 使用全局内存分配函数
- LocalAlloc - 使用本地内存分配函数
- HeapAlloc - 使用堆内存分配函数
- MemoryMappedFile - 使用内存映射文件分配内存
- 可拓展...
- Tick 检测 - 时间差异分析
- 鼠标轨迹检测 - 通过多点轨迹特征判断真实鼠标活动
- 桌面文件检测 - 检查桌面文件数量以识别虚拟环境
- C盘容量检测 - 检查 C 盘剩余容量以识别虚拟环境
- 可拓展...
- CreateThread 直接执行 - 传统线程创建方式
- GDI 家族变种注入 - 利用 GDI 函数进行注入
- EnumUILanguagesW 回调执行 - 通过回调函数执行 Shellcode
- Early Bird APC 注入 - 利用 APC 机制进行注入
- CreateRemoteThread 远程注入 - 通过远程线程创建执行 Shellcode
- 可拓展...
RustSL/
├── gui/ # PyQt5 图形界面与组件
├── src/ # Rust 核心代码
│ ├── main.rs # Rust 主程序入口
| ├── thunk.rs # Windows 7 兼容性支持模块
│ ├── alloc_mem/ # 内存分配相关模块
│ ├── decrypt/ # Shellcode 解密模块
│ ├── exec/ # Shellcode 执行模块
│ ├── forgery/ # 资源伪造与混淆
│ ├── guard/ # 反沙箱/反虚拟机检测
│ └── utils/ # 工具函数
├── config/
│ └── plugins.json # 插件与功能配置
├── encrypt_lib/ # Python 加密插件目录
├── sign/ # 签名相关
├── encrypt.py # Shellcode 加密脚本
├── main.py # GUI 启动入口
├── Cargo.toml # Rust 项目配置文件
├── build.rs # Rust 构建脚本
├── requirements.txt # Python 依赖列表
├── input/ # Shellcode 输入目录
├── output/ # 生成的可执行文件输出目录
├── static/ # 静态资源(如图片、截图)
├── icons/ # 额外图标资源
└── rust-toolchain.toml # Rust 工具链配置
- Python 3.7+
- Rust Nightly (需配合 rustup 使用)
- PyQt5
- Cargo (Rust 包管理器)
pip install -r requirements.txt依赖说明:
PyQt5- 图形界面框架pycryptodome- 加密库(ChaCha20, AES-GCM, RC4 等)
本项目依赖 Rust Nightly 版本及 build-std 特性以优化体积和去除特征。
-
安装 Rustup
- 下载并运行 rustup-init.exe
-
配置 Nightly 工具链 项目根目录已包含
rust-toolchain.toml,进入目录后 Rustup 会自动检测。你需要手动安装 Nightly 工具链及源码组件:# 安装 nightly 工具链 rustup install nightly # 安装 rust-src 组件(用于 build-std 重新编译标准库) rustup component add rust-src --toolchain nightly # 添加 Windows MSVC 目标(通常默认已安装) rustup target add x86_64-pc-windows-msvc --toolchain nightly
-
验证环境
cargo +nightly --version
-
MSVC 编译环境
- 确保已安装 Visual Studio,并包含 "使用 C++ 的桌面开发" 工作负载,以提供必要的编译工具链。
-
安装 Rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env
-
配置 Nightly 工具链
rustup install nightly rustup component add rust-src --toolchain nightly rustup target add x86_64-pc-windows-gnu --toolchain nightly
-
安装交叉编译工具
- Ubuntu/Debian:
sudo apt update sudo apt install gcc-mingw-w64
- Arch Linux:
sudo pacman -S mingw-w64-gcc
- macOS (使用 Homebrew):
brew install mingw-w64
- Ubuntu/Debian:
-
验证环境
cargo +nightly --version
python main.py在 GUI 界面中选择需要的配置选项
点击 "一键生成" 按钮,程序将自动完成:
- Shellcode 加密
- Rust 编译(带特性选择)
- 文件复制到
output/目录 - 签名伪造(如启用)
要启用 Windows 7 兼容性构建,您需要下载并配置以下两个兼容性库:
VC-LTL5 是一个轻量级的 Windows 运行时库,提供了对 Windows 7 的向下兼容支持。
下载地址:https://github.com/Chuyu-Team/VC-LTL5/releases
推荐版本:VC-LTL-5.2.2-Binary.zip
YY-Thunks 提供了对较新 Windows API 的向下兼容 thunk 实现。
下载地址:https://github.com/Chuyu-Team/YY-Thunks/releases
推荐版本:YY-Thunks-1.1.7-Binary.zip
下载并解压上述两个库后,需要设置以下环境变量:
- 右键点击"此电脑" → "属性" → "高级系统设置"
- 点击"环境变量"
- 在"系统变量"中添加:
- 变量名:
VC_LTL,变量值:C:\path\to\VC-LTL5 - 变量名:
YY_THUNKS,变量值:C:\path\to\YY-Thunks
- 变量名:
然后就可以使用Win7兼容模式编译加载器了。
config/plugins.json 控制所有功能模块:
{
"encryption": [
{ "id": "ipv4", "label": "ipv4", "encrypt_arg": "ipv4", "feature": "decrypt_ipv4" }
],
"alloc_mem_modes": [
{ "id": "alloc_mem_va", "label": "VirtualAlloc", "feature": "alloc_mem_va" }
],
"run_modes": [
{ "id": "create_thread", "label": "CreateThread 直接执行 (create_thread)", "feature": "run_create_thread", "pattern": 1 }
],
"vm_checks": [
{ "id": "tick", "label": "Tick检测", "feature": "vm_check_tick" }
],
"defaults": {
"encryption": "ipv4",
"run_mode": "create_thread",
"alloc_mem_mode": "alloc_mem_va"
}
}也可以单独使用加密脚本:
python encrypt.py -i input/calc.bin -o src/encrypt.bin -m rc4 -e base64参数:
-i, --input- 输入的二进制文件-o, --output- 输出的加密文件-m, --method- 加密方式-e, --encode- 编码方式
encrypt.py已重构为插件化:所有加密/编码方式都以插件形式放在encrypt_lib/目录下。- 每个插件应导出
name字符串和process(data, args)函数,encrypt.py会自动扫描并加载它们。
若想添加新插件:
- 在
encrypt_lib/中新增.py文件。 - 在文件中导出
name和process(data, args),也可以提供add_arguments(parser)来扩展 CLI 参数。 - 重新运行
encrypt.py,新插件会自动被发现。
使用 Cargo features 控制编译功能:
# 示例:启用 IPv4 解密 + CreateThread 运行 + Tick 检测 + 鼠标检测 + 桌面文件检测
set "RSL_ICON_PATH=icons\avp_0000.ico" && cargo build --release --no-default-features --features=decrypt_ipv4,base64_decode,run_create_thread,alloc_mem_va,vm_check_tick,vm_check_mouse,vm_check_desktop_files- 在 encrypt_lib/ 中添加加密插件脚本
- 在 src/decrypt/ 中添加对应的解密模块
- 在 Cargo.toml 中添加 feature
- 在 config/plugins.json 中注册
- 在
src/exec/中实现执行逻辑 - 在
Cargo.toml中添加 feature - 在
config/plugins.json中注册
- 在
src/alloc_mem/中实现分配逻辑 - 在
Cargo.toml中添加 feature - 在
config/plugins.json中注册
- 在
src/guard/中实现执行逻辑 - 在
Cargo.toml中添加 feature - 在
config/plugins.json中注册
本工具仅供安全研究和教育目的使用。使用者需遵守当地法律法规,不得用于非法用途。作者不对任何滥用行为承担责任。
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
- JoJoLoader by @Pizz33
- sigthief - 签名伪造工具
- felixmaker/thunk - Windows 7 兼容性支持
- VC-LTL5 - Windows 7 兼容性支持
- YY-Thunks - Windows 7 兼容性支持
- Rust 社区
- PyQt5 开发团队
⭐ 如果这个项目对你有帮助,请给一个 Star!
- 重构加密模块:将
encrypt.py重构为插件化架构,支持动态加载加密插件。 - 新增插件目录:添加
encrypt_lib/目录,包含示例插件(ipv4, ipv6, mac, uuid, rc4)。 - 重构decrypt模块:将具体解密函数拆分到子文件中
- 重构并新增alloc_mem模块:新增alloc_mem_global和alloc_mem_local实现内存分配
- 重构并新增exec模块:新增EnumUILanguagesW 回调注入和GDI 家族变种注入
- 完善跨平台兼容性: 修复 Linux 和 macOS 下的编译和运行问题
- 新增编译目标选择功能:在 GUI 中添加编译目标下拉菜单,支持多种 Windows 目标架构。
重构并增加远程注入支持
- 更新
decrypt函数,返回原始长度和指针。 - 引入
create_remote_thread实现远程线程注入。 - 添加
early_bird_apc注入方法。 - 将鼠标移动和滴答检测模块化为独立文件。
- 更新主执行流程以处理不同的执行模式。
- 添加了针对目标程序和 PID 处理的模板。
- 新增Windows 7兼容性支持:
- 参照felixmaker/thunk写了src/thunk.rs用于Win7兼容性支持。如果要启用请按照教程配置环境,详细查看Windows 7 兼容性配置。
- 添加GUI复选框控制Win7兼容模式(需要按照环境要求配置VC-LTL5和YY-Thunks)
- 重构构建系统:
- 将
target.rs生成逻辑从GUI移至build.rs,通过feature环境变量控制 - 将
icon.rc生成逻辑从GUI移至build.rs,通过环境变量控制
- 将
- 新增MapViewOfFile内存分配方式:
- 在
src/alloc_mem/mapview.rs中实现MapViewOfFile内存分配。
- 在
- 新增HeapAlloc内存分配方式:
- 在
src/alloc_mem/heapalloc.rs中实现HeapAlloc内存分配。
- 在
- 新增XchaCha20加密方式:
- 在
encrypt_lib/xchacha20.py中实现XChaCha20加密插件。 - 在
src/decrypt/xchacha20.rs中实现对应的解密模块。
- 在
- 将加解密与编解码解耦,可以组合出更多可能性
- 优化编码方式拓展方式
- 将GUI中读取编码方式的逻辑改为从配置文件读取,方便拓展和维护
- 新增 hex 编码方式
- 新增 urlsafe_base64 编码方式
- 添加ECC加密方式
- 在
encrypt_lib/ecc.py中实现ECC加密插件。 - 在
src/decrypt/ecc.rs中实现对应的解密模块。
- 在



