ishusachan/File-scanner-with-Obfuscation-
GitHub: ishusachan/File-scanner-with-Obfuscation-
一款 Python 文件安全扫描工具,通过哈希比对和多种混淆检测技术帮助用户在执行前识别潜在的恶意或伪装文件。
Stars: 0 | Forks: 0
🛡️ 带有混淆检测的高级文件扫描器
一款全面的 Python 工具,用于扫描文件中的恶意软件、损坏情况以及用于伪装恶意文件的各种混淆技术。此扫描器通过分析多个安全层面,帮助您在安装/执行前识别危险文件。
https://img.shields.io/badge/python-3.6+-blue.svg
https://img.shields.io/badge/license-MIT-green.svg
https://img.shields.io/badge/platform-Windows%2520%257C%2520Linux%2520%257C%2520macOS-lightgrey.svg
✨ 功能
🔍 恶意软件检测
使用外部数据库基于哈希的恶意软件识别
实时后台进程监控
用于可执行文件的 Windows PE 结构验证
🕵️ 高级混淆检测
双扩展名检测 - 识别诸如 document.pdf.exe 的文件
RTL 混淆检测 - 查找 Unicode 从右至左覆盖字符
文件签名分析 - 比较文件头与扩展名
长文件名检测 - 标记旨在隐藏扩展名的文件名
异常 Unicode 检测 - 识别欺骗性字符的使用
伪装可执行文件 - 检测伪装成文档的可执行文件
📊 文件分析
文件大小验证和损坏检查
跨 Windows/Linux/macOS 的权限分析
基于扩展名的风险评估
文件签名验证(magic bytes)
📋 前置条件
Python 3.6 或更高版本
pip(Python 包管理器)
🚀 安装
克隆代码库:
bash
git clone https://github.com/yourusername/file-security-scanner.git &&
cd file-security-scanner
安装所需的包:
bash
pip install -r requirements.txt
可选:设置恶意软件哈希数据库:
bash
# 下载或创建包含已知恶意软件哈希的 virus.txt
# 格式:每行一个 MD5 哈希
echo "d41d8cd98f00b204e9800998ecf8427e" > virus.txt
📁 项目结构
text
file-security-scanner/
├── file_scanner.py # 主扫描脚本
├── virus.txt # 恶意软件哈希数据库(可选)
🛠️ 用法
基本用法
bash
python file_scanner.py
出现提示时,输入您要扫描的文件的完整路径。
🔧 依赖项
该脚本需要以下 Python 包:
txt
psutil>=5.8.0
pefile>=2021.5.24 # 仅限 Windows,可选
使用以下命令安装所有依赖项:
bash
pip install psutil pefile
注意:pefile 仅在 Windows PE 文件分析时需要,在其他平台上可以跳过。
📊 检测能力
检测到的混淆技术
技术 示例 检测方法
双扩展名 invoice.pdf.exe 扩展名模式匹配
RTL 混淆 gpj.exe(显示为 exe.jpg) Unicode RTL 字符检测
文件类型不匹配 带有 .exe 头的 .jpg 文件 Magic byte 分析
长文件名 This_is_a_very_long_filename...exe 长度阈值
空格填充 document .exe 空格分析
Unicode 欺骗 documenṭ.exe(带特殊字符) 非 ASCII 字符检测
风险等级
🚨 高风险:恶意软件哈希匹配、危险扩展名或检测到混淆
⚠️ 中等风险:具有可疑特征但不确定
✅ 低风险:未检测到明显威胁
🧪 测试示例
扫描器可以检测各种欺骗性文件模式:
双扩展名攻击
text
文件:important_document.pdf.exe
检测:“DOUBLE EXTENSION TRICK: File appears as 'pdf' but is actually 'exe'”(双扩展名欺骗:文件显示为 'pdf' 但实际上是 'exe')
RTL 混淆
text
文件:gpj.exe(带有 RTL 字符)
检测:“RTL OBFUSCATION DETECTED: File may use Right-to-Left override”(检测到 RTL 混淆:文件可能使用从右至左覆盖)
文件签名不匹配
text
文件:vacation_photo.jpg
检测:“FILE SIGNATURE MISMATCH: File signature suggests .exe”(文件签名不匹配:文件签名表明其为 .exe)
⚙️ 配置
自定义检测规则
您可以修改脚本中的以下列表:
危险扩展名(DANGEROUS_EXTENSIONS):
python
DANGEROUS_EXTENSIONS = {".bat", ".cmd", ".vbs", ".js", ".scr", ".pif", ".com"}
常见双扩展名(COMMON_DOUBLE_EXTENSIONS):
python
COMMON_DOUBLE_EXTENSIONS = {".pdf.exe", ".doc.exe", ".jpg.exe"}
恶意软件哈希数据库:
编辑 virus.txt 以添加/删除已知的恶意文件哈希
每行一个 MD5 哈希
添加文件签名
要添加对更多文件类型的支持,请扩展 signatures 字典:
python
signatures = {
b'\x00\x00\x01\x00': ['.ico'], # ICO 文件
b'\x1A\x45\xDF\xA3': ['.mkv'], # Matroska 视频
# 根据需要添加更多签名
}
🚨 局限性
不能替代杀毒软件:此工具是对完整杀毒解决方案的补充,但不能替代它们
基于哈希的检测:需要更新的恶意软件哈希数据库
启发式分析:某些检测基于模式,可能会出现误报
专注于 Windows:某些功能(PE 分析)是 Windows 专有的
提交 Pull Request
改进领域
添加更多文件签名模式
实现用于异常检测的机器学习
创建 GUI 界面
添加自动化的哈希数据库更新
标签:DNS 反向解析, DNS 解析, Python, 指令注入, 文件分析, 无后门, 混淆检测, 逆向工具