Skip to content

Fredhardycnm/Junk-code-Tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust花指令生成添加器

这是一个功能完善的Rust花指令生成与添加工具,用于向PE文件(EXE)添加花指令以提高程序的反分析能力和抗逆向工程能力。

功能特点

  1. 多种花指令生成类型

    • 随机无意义指令序列:生成大量无实际功能但会执行的指令
    • 跳转混淆:通过添加复杂的跳转指令来混淆控制流
    • 控制流平坦化:将程序的控制流转换为基于状态机的结构
    • 虚假控制流:添加永远不会执行的代码路径
    • 指令替换:用功能等效但更长的指令序列替换简单指令
  2. 用户友好的中文图形界面

    • 直观的操作布局
    • 实时预览生成的花指令
    • 文件拖放支持
    • 响应式设计,支持窗口大小调整
  3. 完善的PE文件处理

    • 支持32位和64位PE文件
    • 自动备份原始文件
    • 智能识别代码节并安全添加花指令
    • 处理前后文件哈希值对比
  4. 高度可配置性

    • 5个级别的花指令强度调节
    • 可配置的寄存器选择
    • 自定义代码长度和变换次数
    • 灵活的显示选项
  5. 安全性保障

    • 异常捕获与错误处理机制
    • 文件完整性校验(SHA256)
    • 详细的操作状态提示

系统要求

  • Windows 10/11操作系统
  • Rust编译环境
  • Visual Studio Build Tools 2017或更高版本(必须包含Visual C++构建工具)

环境配置详细指南

1. 安装Rust

如果尚未安装Rust,请访问Rust官网下载并安装rustup。

2. 安装Visual Studio Build Tools

重要:这是解决链接器错误的关键步骤

  1. 访问Visual Studio下载页面
  2. 下载并运行"Visual Studio Build Tools"
  3. 在安装界面中,确保勾选以下组件:
    • 使用C++的桌面开发
    • 至少包含"MSVC v142 - VS 2019 C++ x64/x86生成工具"或更高版本
    • Windows SDK(推荐最新版本)
  4. 完成安装并重启计算机

3. 验证环境配置

打开命令提示符,运行以下命令验证是否安装成功:

rustc --version
cargo --version
where link.exe  # 应该能找到link.exe的路径

编译项目

  1. 克隆或下载本项目
  2. 在项目目录下运行以下命令:
cargo build --release
  1. 编译后的可执行文件位于target\release目录下

常见编译问题解决

链接器错误(link.exe not found)

如果遇到以下错误:

error: linker `link.exe` not found

解决方案:

  1. 确保Visual Studio Build Tools已正确安装
  2. 确保安装时勾选了"使用C++的桌面开发"组件
  3. 检查环境变量PATH中是否包含MSVC工具链路径
  4. 可以尝试使用开发人员命令提示符(Developer Command Prompt)来编译项目

替代方案

如果无法安装Visual Studio Build Tools,可以尝试使用MinGW作为替代:

  1. 安装MinGW-w64
  2. 配置rustup使用GNU工具链:
    rustup default stable-x86_64-pc-windows-gnu
  3. 然后重新尝试编译

使用说明

基本操作步骤

  1. 启动程序:运行编译后的可执行文件rust花指令生成添加器.exe

  2. 选择目标文件

    • 点击"浏览..."按钮通过文件选择对话框选择EXE文件
    • 或直接将EXE文件拖放到程序窗口中的拖放区域
    • 程序会自动解析文件信息并显示在"文件信息"部分
  3. 配置花指令参数

    • 在"花指令类型"中选择所需的混淆方式
    • 通过"强度级别"调整花指令的复杂度(1-5级)
    • 设置"最大代码长度"和"变换次数"等参数
    • 选择花指令中可以使用的寄存器
    • 配置显示选项(内存偏移、机器码等)
  4. 生成花指令预览

    • 点击"生成花指令"按钮
    • 在下方预览区域查看生成的花指令汇编代码
    • 检查生成的代码量和行数统计
  5. 添加花指令到文件

    • 确认参数设置无误后,点击"添加到文件"按钮
    • 程序会自动创建原始文件的备份(文件名_backup.exe)
    • 处理完成后,会生成一个新的处理后文件(文件名_processed.exe)
    • 程序会显示处理前后的SHA256哈希值供验证

高级使用技巧

  1. 选择合适的花指令类型

    • 对于简单混淆,推荐使用"随机指令"或"指令替换"
    • 对于中等强度混淆,推荐使用"跳转混淆"
    • 对于高强度混淆,推荐使用"控制流平坦化"或"虚假控制流"
  2. 强度级别选择

    • 级别1:适用于对性能要求高的程序
    • 级别3:平衡安全性和性能
    • 级别5:提供最高级别的混淆,但可能影响性能
  3. 寄存器选择

    • 默认已选中大多数寄存器,但ESP寄存器默认未选中以避免栈问题
    • 根据目标程序的特性,可以选择性地启用或禁用特定寄存器
  4. 批量处理建议

    • 对于批量处理多个文件,建议先在单个文件上测试参数设置
    • 处理完成后,务必测试处理后的程序功能是否正常

常见问题解答

1. 处理后的程序无法运行怎么办?

  • 检查是否使用了过于复杂的花指令(尝试降低强度级别)
  • 确认是否正确选择了寄存器(避免使用ESP寄存器)
  • 可以使用备份文件(_backup.exe)恢复原始程序

2. 支持哪些类型的EXE文件?

  • 支持标准的32位和64位Windows可执行文件(PE格式)
  • 不支持受保护或加密的EXE文件
  • 不支持.NET程序集(.NET程序需要使用专门的混淆工具)

3. 花指令会影响程序性能吗?

  • 是的,花指令会在一定程度上影响程序性能
  • 影响程度取决于花指令的类型、强度和添加位置
  • 建议根据实际需求平衡安全性和性能

4. 如何验证处理后的文件是否被篡改?

  • 程序会自动计算并显示处理前后的SHA256哈希值
  • 可以使用第三方哈希工具验证文件完整性
  • 处理前后的哈希值不同是正常的,因为文件内容已被修改

5. 处理大型EXE文件时程序无响应怎么办?

  • 大型文件处理可能需要较长时间,请耐心等待
  • 程序采用多线程处理,但仍建议关闭其他占用系统资源的程序
  • 如果处理时间过长,可以尝试降低花指令强度或代码长度

安全注意事项

  1. 备份重要文件:请务必在处理重要文件前自行备份

  2. 法律合规:请确保在合法授权的情况下使用本工具,遵守相关法律法规

  3. 性能影响:过于复杂的花指令可能显著影响程序性能,请谨慎使用高级别强度

  4. 兼容性问题:某些特殊程序可能与花指令不兼容,建议先在非关键程序上测试

技术支持

如有任何问题或建议,请在项目仓库中提交issue,我们会尽快回复。

许可证

本项目采用MIT许可证。详情请参阅LICENSE文件。

注意事项

  1. 处理后的文件会保存为原始文件名_patched.exe
  2. 请确保备份原始文件,以防止处理过程中出现意外
  3. 对于重要的系统文件或受保护文件,请谨慎操作
  4. 花指令过多可能会影响程序性能

技术细节

  • 使用egui和eframe构建GUI界面
  • 使用goblin库解析PE文件格式
  • 使用rand库生成随机花指令
  • 使用sha2库计算文件哈希值

许可证

MIT

About

这是一个Rust编写的花指令生成与添加工具,用于向PE文件(EXE)添加花指令以提高程序的反分析能力和抗逆向工程能力。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages