py-amsi 是一个使用 Windows 反恶意软件扫描接口 (AMSI) API 扫描字符串或文件以查找恶意软件的库。AMSI 是 Windows 原生接口,允许应用程序请求系统上安装的防病毒软件分析文件/字符串。AMSI 不依赖于 Windows Defender。防病毒供应商实现 AMSI 接口以接收来自应用程序的调用。此库利用该 API 在 Python 中执行防病毒扫描。了解更多关于 Windows AMSI API 的信息,请点击此处。
通过 pip
pip install pyamsi
克隆仓库
git clone https://github.com/Tomiwa-Ot/py-amsi.git
cd py-amsi/
python setup.py install
from pyamsi import Amsi
# 扫描文件
Amsi.scan_file(file_path, debug=True) # debug 是可选的,默认为 False
# 扫描字符串
Amsi.scan_string(string, string_name, debug=False) # debug 是可选的,默认为 False
# 两个函数都返回一个字典,格式如下
# {
# 'Sample Size' : 68, // 字符串/文件大小(字节)
# 'Risk Level' : 0, // 防病毒软件建议的风险等级
# 'Message' : 'File is clean' // 响应消息
# }
| 风险等级 | 含义 |
|---|---|
| 0 | AMSI_RESULT_CLEAN (文件是干净的) |
| 1 | AMSI_RESULT_NOT_DETECTED (未检测到威胁) |
| 16384 | AMSI_RESULT_BLOCKED_BY_ADMIN_START (威胁已被管理员阻止) |
| 20479 | AMSI_RESULT_BLOCKED_BY_ADMIN_END (威胁已被管理员阻止) |
| 32768 | AMSI_RESULT_DETECTED (文件被视为恶意软件) |