bwhitn/badlib
GitHub: bwhitn/badlib
badlib 是一个用于恶意软件样本存储和快速文件识别的 Python 库,提供压缩容器读写与文件签名识别功能。
Stars: 0 | Forks: 0
# badlib
`badlib` 是一个用于恶意软件样本存储工作流的 Python 库。
它旨在支持读取和写入压缩的恶意软件文件,
识别常见的归档和样本容器格式,并为受控的分析环境
保留有用的元数据。
本项目仅用于防御性研究、恶意软件处理和归档用途。它
不会执行样本。
## 计划实现的功能
- 读取和写入压缩的恶意软件样本容器
- 根据文件签名识别归档和压缩格式
- 保留原始文件名、哈希值和存储元数据
- 为常见的恶意软件归档约定提供安全的默认设置
- 提供轻量级的 Python API 和命令行界面
## 安装说明
从本地代码库检出的安装方式:
```
python -m pip install -e .
```
用于开发环境:
```
python -m pip install -e ".[dev]"
```
## 用法
初始 API 提供了对 BADD 压缩恶意软件容器的支持以及快速的文件
类型识别。
```
import badlib
print(badlib.__version__)
```
公共导入:
```
from badlib import (
COMMONTYPE,
CompressObj,
CompressReader,
CompressWriter,
OOXML_CONTENT_TYPES,
QuickID,
Type,
identify,
identify_path,
is_badd_obj,
is_trans_obj,
type_names,
)
```
## BADD 容器
`CompressWriter` 用于写入 BADD 压缩样本容器,而 `CompressReader`
用于读取它们。BADD 容器通过尾部标记进行识别,并
在容器尾部保留原始的 SHA-256。
```
from pathlib import Path
from badlib import CompressReader, CompressWriter, is_badd_obj
path = Path("sample.badd")
data = b"MZ" + (b"example" * 100)
with CompressWriter(path) as writer:
writer.write(data)
assert is_badd_obj(path)
with CompressReader(path, verify=True) as reader:
original = reader.read()
sha256_hex = reader.sha256_hex
```
`CompressObj` 也可作为 `rb` 和 `wb` 模式的兼容性包装器使用。
## 文件识别
`identify` 接受类字节串数据并返回一个 `Type` 位掩码。`identify_path`
对磁盘上的文件执行相同的操作,并使用内存映射读取。
```
from badlib import Type, identify, identify_path, type_names
file_type = identify(b"PK\x03\x04" + (b"\x00" * 32))
if file_type & Type.ZIP:
print(type_names(file_type))
disk_type = identify_path("sample.zip")
```
`QuickID` 仍然可用,适用于需要针对具有 `_filetype` 和可选 `_path` 属性的
对象进行识别的底层集成。
## 导入的代码
最初的压缩和识别实现复制自
本地的 `malarchive` 代码库:
- `malanalysis/base/badd_obj.py` -> `src/badlib/badd_obj.py`
- `malanalysis/base/quickid.py` -> `src/badlib/quickid.py`
复制的代码提供了当前的 BADD 读/写格式和基于签名的
文件类型检测。在将此代码库以 MIT 许可证发布之前,请确认这些
复制的文件可以在 MIT 许可证下重新分发;本地的 `malarchive` 代码库
目前包含一个专有许可证文件。
## 安全提示
- 将所有存储的文件视为具有恶意。
- 不要将样本解压到共享或生产系统上。
- 将样本存储目录与普通用户文件隔离。
- 在处理活跃恶意软件时,请使用专用的分析基础设施。
## 许可证
MIT
标签:GET 请求, 归档管理, 恶意软件存储, 文件解析, 文件识别, 逆向工具