在(编码)二进制数据中搜索数据模式的工具
项目描述
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 格式hexdump 和xdd |
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
查看哈希)
内置分布
metext-0.0.3-py2.py3-none-any.whl
(74.4 kB
查看哈希)