这是一个功能完善的Rust花指令生成与添加工具,用于向PE文件(EXE)添加花指令以提高程序的反分析能力和抗逆向工程能力。
-
多种花指令生成类型:
- 随机无意义指令序列:生成大量无实际功能但会执行的指令
- 跳转混淆:通过添加复杂的跳转指令来混淆控制流
- 控制流平坦化:将程序的控制流转换为基于状态机的结构
- 虚假控制流:添加永远不会执行的代码路径
- 指令替换:用功能等效但更长的指令序列替换简单指令
-
用户友好的中文图形界面:
- 直观的操作布局
- 实时预览生成的花指令
- 文件拖放支持
- 响应式设计,支持窗口大小调整
-
完善的PE文件处理:
- 支持32位和64位PE文件
- 自动备份原始文件
- 智能识别代码节并安全添加花指令
- 处理前后文件哈希值对比
-
高度可配置性:
- 5个级别的花指令强度调节
- 可配置的寄存器选择
- 自定义代码长度和变换次数
- 灵活的显示选项
-
安全性保障:
- 异常捕获与错误处理机制
- 文件完整性校验(SHA256)
- 详细的操作状态提示
- Windows 10/11操作系统
- Rust编译环境
- Visual Studio Build Tools 2017或更高版本(必须包含Visual C++构建工具)
如果尚未安装Rust,请访问Rust官网下载并安装rustup。
重要:这是解决链接器错误的关键步骤
- 访问Visual Studio下载页面
- 下载并运行"Visual Studio Build Tools"
- 在安装界面中,确保勾选以下组件:
- 使用C++的桌面开发
- 至少包含"MSVC v142 - VS 2019 C++ x64/x86生成工具"或更高版本
- Windows SDK(推荐最新版本)
- 完成安装并重启计算机
打开命令提示符,运行以下命令验证是否安装成功:
rustc --version
cargo --version
where link.exe # 应该能找到link.exe的路径- 克隆或下载本项目
- 在项目目录下运行以下命令:
cargo build --release- 编译后的可执行文件位于
target\release目录下
如果遇到以下错误:
error: linker `link.exe` not found
解决方案:
- 确保Visual Studio Build Tools已正确安装
- 确保安装时勾选了"使用C++的桌面开发"组件
- 检查环境变量PATH中是否包含MSVC工具链路径
- 可以尝试使用开发人员命令提示符(Developer Command Prompt)来编译项目
如果无法安装Visual Studio Build Tools,可以尝试使用MinGW作为替代:
- 安装MinGW-w64
- 配置rustup使用GNU工具链:
rustup default stable-x86_64-pc-windows-gnu
- 然后重新尝试编译
-
启动程序:运行编译后的可执行文件
rust花指令生成添加器.exe -
选择目标文件:
- 点击"浏览..."按钮通过文件选择对话框选择EXE文件
- 或直接将EXE文件拖放到程序窗口中的拖放区域
- 程序会自动解析文件信息并显示在"文件信息"部分
-
配置花指令参数:
- 在"花指令类型"中选择所需的混淆方式
- 通过"强度级别"调整花指令的复杂度(1-5级)
- 设置"最大代码长度"和"变换次数"等参数
- 选择花指令中可以使用的寄存器
- 配置显示选项(内存偏移、机器码等)
-
生成花指令预览:
- 点击"生成花指令"按钮
- 在下方预览区域查看生成的花指令汇编代码
- 检查生成的代码量和行数统计
-
添加花指令到文件:
- 确认参数设置无误后,点击"添加到文件"按钮
- 程序会自动创建原始文件的备份(文件名_backup.exe)
- 处理完成后,会生成一个新的处理后文件(文件名_processed.exe)
- 程序会显示处理前后的SHA256哈希值供验证
-
选择合适的花指令类型:
- 对于简单混淆,推荐使用"随机指令"或"指令替换"
- 对于中等强度混淆,推荐使用"跳转混淆"
- 对于高强度混淆,推荐使用"控制流平坦化"或"虚假控制流"
-
强度级别选择:
- 级别1:适用于对性能要求高的程序
- 级别3:平衡安全性和性能
- 级别5:提供最高级别的混淆,但可能影响性能
-
寄存器选择:
- 默认已选中大多数寄存器,但ESP寄存器默认未选中以避免栈问题
- 根据目标程序的特性,可以选择性地启用或禁用特定寄存器
-
批量处理建议:
- 对于批量处理多个文件,建议先在单个文件上测试参数设置
- 处理完成后,务必测试处理后的程序功能是否正常
- 检查是否使用了过于复杂的花指令(尝试降低强度级别)
- 确认是否正确选择了寄存器(避免使用ESP寄存器)
- 可以使用备份文件(_backup.exe)恢复原始程序
- 支持标准的32位和64位Windows可执行文件(PE格式)
- 不支持受保护或加密的EXE文件
- 不支持.NET程序集(.NET程序需要使用专门的混淆工具)
- 是的,花指令会在一定程度上影响程序性能
- 影响程度取决于花指令的类型、强度和添加位置
- 建议根据实际需求平衡安全性和性能
- 程序会自动计算并显示处理前后的SHA256哈希值
- 可以使用第三方哈希工具验证文件完整性
- 处理前后的哈希值不同是正常的,因为文件内容已被修改
- 大型文件处理可能需要较长时间,请耐心等待
- 程序采用多线程处理,但仍建议关闭其他占用系统资源的程序
- 如果处理时间过长,可以尝试降低花指令强度或代码长度
-
备份重要文件:请务必在处理重要文件前自行备份
-
法律合规:请确保在合法授权的情况下使用本工具,遵守相关法律法规
-
性能影响:过于复杂的花指令可能显著影响程序性能,请谨慎使用高级别强度
-
兼容性问题:某些特殊程序可能与花指令不兼容,建议先在非关键程序上测试
如有任何问题或建议,请在项目仓库中提交issue,我们会尽快回复。
本项目采用MIT许可证。详情请参阅LICENSE文件。
- 处理后的文件会保存为
原始文件名_patched.exe - 请确保备份原始文件,以防止处理过程中出现意外
- 对于重要的系统文件或受保护文件,请谨慎操作
- 花指令过多可能会影响程序性能
- 使用egui和eframe构建GUI界面
- 使用goblin库解析PE文件格式
- 使用rand库生成随机花指令
- 使用sha2库计算文件哈希值
MIT