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 请求, 归档管理, 恶意软件存储, 文件解析, 文件识别, 逆向工具