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, 二进制修改, 二进制分析, 云安全运维, 云资产清单, 免杀对抗, 加壳检测, 反病毒, 启发式分析, 恶意软件分析, 文件处理, 无后门, 样本分析, 混淆去除, 脱壳, 逆向工程