Skip to main content

在(编码)二进制数据中搜索数据模式的工具

项目描述

MetExt:元数据提取器

MetExt(元数据提取器)是一个 Python 库和 CLI 实用程序,允许处理不同格式的数据并提取感兴趣的数据模式。

安装

MetExt 需要 Python v3.5+。

您可以从 PyPi 安装 MetExt。

$ python -m pip install metext

或者您可以克隆存储库在本地安装项目。

$ git clone https://github.com/espoem/MetExt.git
$ cd MetExt
$ python -m pip install -e .

也可以从requirements.txt文件中安装依赖项。

$ python -m pip install -r requirements.txt

命令行界面

帮助

metext --help

用法

metext [-h] [-i INPUT] [-f FILE] [-r] [-o OUTPUT]
        [-d [{quopri,yenc,base58ripple,base64url,pem,base58btc,base85,hexdump,base91,binhex,percent,ascii85,base64,mime,base32,hex,z85,raw,base32crockford,gzip,uu,base32hex} [{quopri,yenc,base58ripple,base64url,pem,base58btc,base85,hexdump,base91,binhex,percent,
  ascii85,base64,mime,base32,hex,z85,raw,base32crockford,gzip,uu,base32hex} ...]]]
        [-e [{bch,xrp,sha256,bip32-xkey,url,ipv4,pem,sha512,ltc,email,chainlink,md5,uuid,btc-wif,sha1,urn,issn,eth,isbn,json,base64,ada,usdt,base32,doi,magnet,sha224,ipv6,uri,data_uri,btc,mac,dot,sha384} [{bch,xrp,sha256,bip32-xkey,url,ipv4,pem,sha512,ltc,email,
  chainlink,md5,uuid,btc-wif,sha1,urn,issn,eth,isbn,json,base64,ada,usdt,base32,doi,magnet,sha224,ipv6,uri,data_uri,btc,mac,dot,sha384} ...]]]
        [-F {text,csv,json}] [--version]

输入路径支持通配符。如果没有提供输入,则处理标准输入,即输入可以通过管道传输到metext。MetExt 尽最大努力处理输入数据,即,如果已编码,它会尝试对数据进行解码。可以通过参数设置要考虑的解码范围-d。要搜索的模式列表由参数设置-e。如果未设置,则搜索所有模式。

如果不想应用解码,请设置-d raw.

API

列出支持的模块

from metext import list_decoders_names, list_extractors_names, list_printers_names

if __name__ == "__main__":
    print(list_decoders_names())
    print(list_extractors_names())
    print(list_printers_names())

分析数据的模式

from metext import analyse, print_analysis_output

if __name__ == "__main__":
    # file-like object
    with open("filepath", "rb") as fp:
        result = analyse(fp, "raw")  # without decoding, find all supported patterns
        print(result)
        print_analysis_output(result)  # by default prints to STDOUT in JSON format
        print_analysis_output(
            result, "output_filepath", "csv"
        )  # prints to "output_filepath" in CSV format

    # input is list of filepaths
    # consider either no, or base64 encoding
    # extract ipv4 patterns
    result = analyse(["filepath"], ["raw", "base64"], "ipv4")

    # input is string
    # limit decoding to provided decoders with custom kwargs
    # limit patterns to extractors with custom kwargs
    input_data = "some string"
    result = analyse(
        input_data,
        [
            (
                "base64",
                {
                    "charset": "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"
                },
            )
        ],
        [("base64", {})],
    )

    # input is bytes
    # decode data in best effort
    # extract all patterns
    input_data = "some byte string"
    result = analyse(input_data)

模块

该工具的功能分为特定类型的单个模块(插件)。可以通过从plugin_base.py文件中的插件库之一继承来创建新模块。插件必须定义了一个唯一的对 PLUGIN_TYPE, PLUGIN_NAME。

支持的解码器

解码器 描述
十六进制 十六进制值,可选带分隔符或前缀
十六进制转储 工具生成的 Hexdump 格式hexdumpxdd
base32 RFC 4648 中定义的base32编码
base32hex RFC 4648 中定义的base32hex编码
base32crockford Crockford 的 Base 32 编码
base58btc 使用比特币字母表的 Base 58 编码
base58波纹 使用波纹字母表的 Base 58 编码
base64 RFC 4648 中定义的base64编码。
base64url RFC 4648 中定义的base64url编码
基地85 RFC 1924 中定义的base85编码
ascii85 Ascii85 编码
z85 Z85 编码
基地91 Base 91 编码
二进制十六进制 BinHex 4.0 编码
佩姆 以 PEM 格式解码 Base 64 数据
压缩包 解压 GZIP 数据
哑剧 解码 MIME 消息正文
百分 RFC 3986 中定义的 URL 编码
夸普里 RFC 2045 中定义的可引用打印编码
UUE编码
呸呸呸 yEnc 编码

支持的模式提取器

提取器 描述
base32 base32编码的数据
base64 base64编码数据
比特币 比特币 P2PKH、P2SH 和 Bech32 主网地址
btc-wif 钱包导入格式(WIF)的比特币私钥
bip32 键 BIP32 中定义的扩展私钥和公钥
伦理 以太坊地址
有限公司 莱特币遗产和 Bech32 地址
xrp XRP(瑞波币)经典地址
美元 系绳(Omni,以太坊)地址
bch 比特币现金遗产和 CashAddr 地址
链环 Chainlink(以太坊)地址
阿达 卡尔达诺地址
波卡地址
电子邮件 电子邮件地址
uuid 通用唯一标识符(UUID、GUID)
md5 MD5 十六进制摘要
沙1 SHA-1 十六进制摘要
sha224 SHA-224 十六进制摘要
sha256 SHA-256 十六进制摘要
sha384 SHA-384 十六进制摘要
sha512 SHA-512 十六进制摘要
IPv4 IPv4 地址
IPv6 IPv6 地址
伊斯本 ISBN 标识符
issn ISSN 标识符
土井 DOI 号
json JSON 非空对象或数组
苹果电脑 MAC地址
佩姆 PEM 格式的数据
乌里 具有注册方案的通用 URI
网址 带有 http(s) 或 ftp 方案的 URL
data_uri 数据 URI
磁铁 BitTorrent 磁力链接

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

metext-0.0.3.tar.gz (51.9 kB 查看哈希)

已上传 source

内置分布

metext-0.0.3-py2.py3-none-any.whl (74.4 kB 查看哈希

已上传 py2 py3