Syn2Much/upx-stripper

GitHub: Syn2Much/upx-stripper

基于启发式检测的 UPX 壳特征抹除工具,用于替换二进制文件中的加壳指纹以规避签名检测。

Stars: 4 | Forks: 1

# NoMoreUPX! ## 功能 - **检测:** 28+ UPX 字符串/特征(魔术字节、节名称、URL、元数据、版本字符串) - **智能二进制检测:** 自动识别二进制文件并跳过文本文件以防止损坏 - **混淆:** 混合填充策略(看起来有效的 x86 字节、结构化噪声、真随机) - **备份:** 自动备份文件夹、哈希文件名、详尽的 `operation.log`、易于回滚 - **日志记录:** 可选的文件日志记录,包含调试信息,便于故障排查 - **CLI:** 支持文件/目录、`--dry-run`、`--verbose`、`--log`、内置帮助 ## 安装 ``` chmod +x noMoreUPX.py sudo cp noMoreUPX.py /usr/local/bin/nomoreupx # optional ``` **要求:** Python 3.6+(仅标准库) ## 用法 ``` # 单个文件 python3 noMoreUPX.py suspicious.exe # 目录 (递归) python3 noMoreUPX.py ./samples/ # 仅扫描 (dry run) python3 noMoreUPX.py target.bin --dry-run # 详细输出 python3 noMoreUPX.py ./samples/ --verbose # 带 debug logging python3 noMoreUPX.py target.bin --log debug.log # 组合选项 python3 noMoreUPX.py ./samples/ --dry-run --verbose --log scan.log ``` ## 命令行选项 ``` positional arguments: target File or directory to process optional arguments: -h, --help Show help message and exit -d, --dry-run Scan for UPX patterns without modifying files -v, --verbose Show detailed information during processing -l, --log FILE Write debug log to specified file ``` ## 功能简介(高层级) 1. **检测** 常见的 UPX 标记(字符串/节/URL 等) 2. **创建备份** 于带有时间戳的文件夹中(含哈希命名 + 详尽日志) 3. **替换** 检测到的标记为逼真的、高熵的填充内容(每次填充唯一) 4. **记录** 所有操作及详细信息以便调试 ## 高级功能 ### 二进制文件检测 该工具通过以下方式自动检测二进制文件: - 采样每个文件的前 8KB - 检查空字节和二进制指示符 - 分析 ASCII 可打印字符比例 - 防止意外修改文本文件 ### 详尽日志记录 使用 `--log` 选项启用调试日志记录: ``` python3 noMoreUPX.py ./samples/ --log operation_debug.log ``` 这将创建一个详细的日志文件,包含: - 时间戳信息 - 执行的所有操作 - 错误和警告 - 用于故障排查的调试消息 ### 错误恢复 该工具包含针对以下情况的健壮错误处理: - 权限被拒绝场景 - 内存不足情况 - 损坏的文件 - 中断的操作 ## 输出示例 ``` ============================================================== PROCESSING SUMMARY ============================================================== Files processed: 15 Files modified: 3 UPX patterns found: 5 Total replacements: 8 Backup location: /path/to/backup_samples_20260122_143022 Operation log: /path/to/backup_samples_20260122_143022/operation.log ============================================================== ``` ## 操作日志 备份目录中的 `operation.log` 文件包含: - 操作的日期和时间 - 处理的目标路径 - 统计摘要 - 单个文件详细信息,包括发现的模式和执行的替换 - 失败文件的错误信息 ## 注意事项 - 始终先运行 **`--dry-run`** 并在副本上进行测试 - 检查备份目录内的 `operation.log` 以获取详细结果 - 如果遇到问题,请使用 `--log` 选项进行调试 - 大文件(>100MB)会被自动跳过 - 修改前会自动创建备份 ## 版本历史 - **v2.0**(当前版本)- 增加了日志记录、类型提示、二进制检测、增强的错误处理 - **v1.0** - 初始版本,包含核心功能 ## 许可证 / 免责声明 **仅供教育用途。** 请负责任地使用,并仅在获得适当授权的情况下使用。 **作者:** Syn • **版本:** 2.0 (Improved) • **构建:** 2026-01-09
标签:DAST, Python, TLS配置检查, UPX, 二进制修改, 二进制分析, 云安全运维, 云资产清单, 免杀对抗, 加壳检测, 反病毒, 启发式分析, 恶意软件分析, 文件处理, 无后门, 样本分析, 混淆去除, 脱壳, 逆向工程